Commit Graph

2465 Commits

Author SHA1 Message Date
eugene yokota fb011ecaa3
Merge pull request #7315 from xuwei-k/URL-constructor 2023-06-24 22:14:00 -04:00
xuwei-k 6c032b8283 some trivial refactoring
- remove unused type params
- use `withFilter` if possible
- use `collectFirst` instead of `collect` and `headOption`
- use `length` instead of `size` if `Array` or `String`
- use `foreach` instead of `map`
2023-06-25 08:57:41 +09:00
xuwei-k c7ec22cff8 avoid deprecated `java.net.URL` constructor
- https://bugs.openjdk.org/browse/JDK-8295949
- 4338f527aa
2023-06-25 08:23:09 +09:00
xuwei-k 3de0c92754 fix scaladoc warnings 2023-06-25 08:04:17 +09:00
xuwei-k 2edb4dcbb6 fix typo 2023-06-24 20:05:52 +09:00
Julien Richard-Foy 72bfb3f45a Transfer copyright to Scala Center 2023-06-20 16:39:07 +02:00
Eugene Yokota 5398f6e1aa Make sbt new extensible
Problem
-------
`sbt new` (`sbt init`) hardcodes the templates, which I think is ok,
but without changing much, we can make it extensible.

Solution
--------
This adds two new keys `templateDescriptions` and `templateRunLocal`,
which can customize the behavior for in-house usage etc.
2023-06-18 15:48:18 -04:00
Ondra Pelech 9ec7c4f027 Dependency graph with colors (based on the organization) (#7052) 2023-06-17 02:29:48 +02:00
Krzysztof Atłasik 118138a0c8
Add new template to text-based menu (#7300) 2023-06-15 05:14:40 -04:00
eugene yokota c6bc422ea3
Merge pull request #7298 from adpi2/fix-7297 2023-06-14 08:56:06 -04:00
Adrien Piquerez a209cf2700 Fix #7297: Convert OffsetPosition to BSP range 2023-06-14 10:35:54 +02:00
adpi2 f692583034
Merge pull request #7295 from adpi2/fix-7288
Fix #7288: `publish` should not fail if `publish / skip := true`
2023-06-13 09:54:45 +02:00
eugene yokota e0d88607a5
Merge pull request #7294 from ckipp01/semanticDbUpdate
deps: bump the default semanticdb version used
2023-06-12 13:03:53 -04:00
Adrien Piquerez 783a8e57db Fix #7288 and implement publisM2 / skip 2023-06-12 18:06:06 +02:00
eugene yokota cfa88f766f
Merge pull request #7290 from mkurz/sbtn-1.9.0
sbtn 1.9.0
2023-06-12 10:49:49 -04:00
Chris Kipp 05ac9c88d1 deps: bump the default semanticdb version used
This updates semanticdb from 4.5.13 to 4.7.8.
2023-06-12 16:44:20 +02:00
Alex Klibisz b9cc499ec3
Fix typo in exportPipelining Key description 2023-06-07 13:21:00 -04:00
Matthias Kurz 7256fb2725
sbtn 1.9.0 2023-06-06 17:12:41 +02:00
Adrien Piquerez dd00e143f2 Fix #7285: use legacy Maven style on publishLocal 2023-06-05 21:24:20 +02:00
Eugene Yokota 7c7576843a Fix sbt init menu
Problem
-------
sbt init menu doesn't pick the right template in the latter half.

Solution
--------
This fixes the mapping between the position and the letter.
2023-06-01 22:45:51 -04:00
Eugene Yokota 1f1ee778e3 Update Scala to 2.12.18
Fixes https://github.com/sbt/sbt/issues/7235
2023-06-01 12:13:40 -04:00
eugene yokota babbdaeaa0
Merge pull request #7264 from eed3si9n/wip/diagnostic
Forward ScalaDiagnostic
2023-05-26 09:49:59 -04:00
Arman Bilge dc79c592cf Update typelevel toolkit, config test artifact 2023-05-22 21:53:09 +00:00
Eugene Yokota 93bd66b673 Forward ScalaDiagnostic
**Problem**
Zinc added actions in Problem, but it's not yet forwarded to BSP
clients.

**Solution**
As discussed in
https://contributors.scala-lang.org/t/roadmap-for-actionable-diagnostics/6172,
the plan seems to be to use the `data` field with `actions` inside it,
so this implements that.
2023-05-22 00:33:46 -04:00
Jakub Kozłowski f8a29b748b
Add weaver-cats as a default test framework (#7263)
Add weaver-cats as a default test framework
2023-05-21 23:28:04 -04:00
Matthew de Detrich e3c7bc7d8f
Deprecate itSettings 2023-05-22 00:14:29 +02:00
eugene yokota 26e9af13ec
Merge pull request #7240 from eed3si9n/wip/bannar
sbt 1.9.0 bannar
2023-05-07 14:41:01 -04:00
Eugene Yokota b122e292e5 Bump Typelevel toolkit 2023-05-07 14:18:18 -04:00
Eugene Yokota 731af0173c Add init as an alias to new 2023-05-07 14:17:26 -04:00
Eugene Yokota 2664884f37 sbt 1.9.0 bannar 2023-05-07 14:05:05 -04:00
Eugene Yokota 86ecec8ac3 sbt-giter8-resolver 0.16.2 2023-05-07 01:28:46 -04:00
Eugene Yokota 51591bde5b Make new more interactive
If the terminal supports ANSI control sequence,
this displays the template list in an interactive way.
The focused template is rendered reversed,
and arrow key can be used to move the focus up/down.
2023-05-06 20:07:47 -04:00
eugene yokota 3d1349a37d
Merge pull request #7234 from adpi2/fix-7233
[1.9.x] Fix #7233: copy artifact files of sbt plugin
2023-05-04 12:47:28 -04:00
Adrien Piquerez bb0bb5ce58 Fix #7233
The sbt-reproducible-build fails if  two artifacts point to the same file.

When packaging the artifacts of an sbt plugin,
we copy each files to avoid this issue.
2023-05-04 10:46:21 +02:00
Eugene Yokota 4c96c087c0 Fix typo 2023-05-03 21:20:16 -04:00
eugene yokota d8725e245e
Merge pull request #7228 from eed3si9n/wip/new
sbt new, a text-based adventure
2023-05-01 00:27:47 -04:00
Eugene Yokota a033c37d6e sbt new, a text-based adventure
**Problem**
You want to get started with sbt, and you don't know
which template to get started with.

**Solution**
This implements an interactive menu on `sbt new` command
when invoked without an argument to list template candidates.

The first option is `scala/toolkit.local`, which locally creates
an sbt build without calling out to Giter8 (GitHub).
2023-04-30 23:36:06 -04:00
Eugene Yokota f98c4fff3b Update modules 2023-04-30 00:56:11 -04:00
eugene yokota df738abbbd
Merge pull request #7215 from dragos/expose/external-hooks-public
Expose RunProfiler to the build
2023-04-25 11:49:28 -04:00
Iulian Dragos 6dfebc689b
Add a key for Zinc listeners.
Expose what the incremental compiler is doing behind the scenes. The RunProfiler interface has been part of Zinc for a while, but this allows the build itself, or an Sbt plugin, to hook their own implementation.

We expose a list of such listeners to avoid plugins stepping on each other and replacing an existing listener.
2023-04-25 12:00:02 +02:00
Iulian Dragos 9301bc2589
Make externalHooks public
This key has been added in 4061dabf4d but it is only available to Sbt itself. Since ExternalHooks is a Java interface, defined in Zinc for a while and fairly stable, I think this should be safe to do.

My main  motivation is to allow installing an InvalidationProfiler from an Sbt plugin, thus gaining access to zinc recompilation decisions. See related PR https://github.com/sbt/zinc/pull/1181
2023-04-18 15:13:09 +03:00
adpi2 e1b0b25418
Merge pull request #7201 from adpi2/sbt-plugin-toggle
[1.9.x] Add `sbtPluginPublishLegacyMavenStyle` to publish to Artifactory
2023-04-12 09:55:13 +02:00
Adrien Piquerez 9e0a728c58 Add sbtPluginPublishLegacyMavenStyle to publish to Artifactory
Artifactory rejects the legacy artifacts of sbt plugin.
It is now possible to publish to Artifactory
by turning `sbtPluginPublishLegacyMavenStyle` off.
2023-04-11 16:56:24 +02:00
Adrien Piquerez 5436ed5ef8 Fix cross-publish sbt plugin to Maven 2023-04-11 11:43:44 +02:00
Eugene Yokota 72af500294 Subsume platform cross building
Problem
-------
In sbt 1, platform cross building is implemented using in the user-land
using `%%%` operator, which clevery handles both Scala cross building
and appending platform suffix like sjs1.
However, in general symbolic `%%%` is confusing, and hard to explain.

Solution
--------
In sbt 2, we should subsume the idea of platform cross building,
so `%%` can act as the current `%%%` operator.
This adds a new setting called `platform`, which defaults to
`Platform.jvm` by default.
When a subprojects sets it to `Platform.sjs1`, `ModuleID`s defined using
`%%` operator will inject the platform suffix `_sjs1` **in addition**
to the Scala binary suffix `_2.13` etc.

Note: Explicit JVM dependencies will now require `.platform(Platform.jvm)`.
2023-03-12 13:38:56 -04:00
Eugene Yokota dbaa34bdac Interpret bare settings are common settings
See https://eed3si9n.com/simplifying-sbt-with-common-settings/

Problem
-------
The behavior of bare settings is confusing in a multi-project build.
This is partly due to the fact that to use `ThisBuild` scoping
the build user needs to be aware of the task implementation,
and know if the task is already defined at project level.

Solution
--------
This changes the interpretation of the baresettings to be common
settings, which works similar to the way `ThisBuild` behaves in sbt 1.x,
but since this would be a simple append at project-level, it should
work for any tasks or settings.
2023-03-11 17:02:07 -05:00
eugene yokota 4a470dcd17
Merge pull request #7148 from armanbilge/feature/release-notes-url
Add `releaseNotesURL` setting
2023-03-07 10:37:46 -05:00
Matthew de Detrich 714e4175b3
Improve grammar on skip key description 2023-03-04 09:19:17 +01:00
Matthew de Detrich 2a332a56a9
Make skip work on publishLocal 2023-03-03 16:09:44 +01:00
Arman Bilge ed29e35f41 Bump lm, use release notes key 2023-02-28 06:08:13 +00:00
Adrien Piquerez 8020ec4d7c Smooth transition to valid Maven pattern of sbt plugin
For an sbt plugin, we publish two POM files, the legacy one, and the
new Maven compatible one. The name of the new POM file contains the sbt
cross-version _2.12_1.0. The format of the new POM file is also slightly
different, because we append the sbt cross-version to all artifactIds of
sbt plugins. Hence Maven can resolve the new sbt plugin POM and its
dependencies.

When resolving an sbt plugin, we first try to resolve the new Maven POM
and if it fails we fallback on the legacy one. When parsing the new POM
format, we remove the sbt cross-version from all artifact IDs so that
there is no mismatch between old and new format of dependencies.
2023-02-22 10:09:26 +01:00
Arman Bilge 11ea11e382
Fix
Co-authored-by: Marco Zühlke <mzuehlke@gmail.com>
2023-02-12 22:54:19 -08:00
Arman Bilge 3cde7f8e07 Missing comma 2023-02-12 23:27:14 +00:00
Arman Bilge 3ce8008ae7 WIP support for `releaseNotesURL` 2023-02-10 06:19:39 +00:00
Adrien Piquerez 9b4d5a5a5a Fix reporting Java diagnostics through BSP
Java diagnostics don't have a pointer but we should report them.
Copied implementation from Bloop to translate the position of an
xsbti.Problem to a BSP range.
2023-01-27 10:21:44 +01:00
Eugene Yokota a8213abb92 Add more keys to excludeLintKeys 2023-01-20 22:34:44 -05:00
Eugene Yokota 9821f5e1b4 def % support 2023-01-20 16:14:51 -05:00
Eugene Yokota 84a5fcb035 Use extension method to encode the syntax 2023-01-18 00:50:30 -05:00
Eugene Yokota e5dd518deb Adjust to changes in develop branch 2023-01-16 00:23:05 -05:00
Eugene Yokota e8223cc8be Fixes scripted tests 2023-01-15 23:50:31 -05:00
Eugene Yokota fc31bc3d15 Fix aggregation 2023-01-15 23:50:30 -05:00
Eugene Yokota a20d5205af Minor Scala 3 syntax change 2023-01-15 23:50:30 -05:00
Eugene Yokota e1c4fd5f1d Fix setting loading 2023-01-15 23:50:30 -05:00
Eugene Yokota 78bf095c44 Add convertion to ClasspathDep 2023-01-15 23:50:30 -05:00
Eugene Yokota d4dc90efd9 add Conversion from Project => LocalProject 2023-01-15 23:50:30 -05:00
Eugene Yokota 193b47b49b Fix taskDyn 2023-01-15 23:50:30 -05:00
Eugene Yokota ceb1ea8aad bump Zinc, which uses current util 2023-01-15 23:50:29 -05:00
Eugene Yokota fbc98ed72e Use ClassTag instead of Manifest 2023-01-15 23:50:29 -05:00
Eugene Yokota ecd59bd3e1 Scalafmt 3.6.0 2023-01-15 23:50:29 -05:00
Eugene Yokota d5d2ff05f0 Comment out tests 2023-01-15 23:48:13 -05:00
Eugene Yokota ad90590bc6 Fix project loading
Problem
-------
Given val root, currently both `root` and synthetic root gets loaded.
This might be caused by build.sbt being virtualized, and no longer
matching the build root directory.

Solution
--------
For now, comparing the canonical paths seems to fix the issue.
2023-01-15 23:48:13 -05:00
Eugene Yokota 54c12819df Adjust to the code changes 2023-01-15 23:48:13 -05:00
Eugene Yokota 9a2ca3c4da Fix compilation of the intrinsic Scala version 2023-01-15 23:48:13 -05:00
Eugene Yokota 4f85c11e01 Some minor tweaks to get things moving 2023-01-15 23:48:13 -05:00
Eugene Yokota cba7a0efc3 Refactor to build mainProj 2023-01-15 23:48:11 -05:00
Eugene Yokota 100f1ac09c Use flatMapTask instead of taskDyn 2023-01-15 23:47:41 -05:00
Eugene Yokota e9490e203b Use Type to compare types instead of TypeRepr 2023-01-15 23:45:35 -05:00
Eugene Yokota 0ee7d11afe Migrate updateTask via tuple syntax 2023-01-15 23:45:35 -05:00
Eugene Yokota 98302d7a13 Fix BSP 2023-01-15 23:45:35 -05:00
Eugene Yokota fe0de6ca30 Fix input task macro 2023-01-15 23:45:35 -05:00
Eugene Yokota 61d4fe2d30 Implement input task helper Def.input 2023-01-15 23:45:35 -05:00
Eugene Yokota 81a05430bd Split buildfile parsing to a subproject 2023-01-15 23:45:30 -05:00
Eugene Yokota 340721c4a1 KeyMacro 2023-01-15 23:43:57 -05:00
Eugene Yokota 781c0317f5 Format main 2023-01-15 23:43:19 -05:00
Eugene Yokota b0b7705739 Fixes Debian 11 compat
Fixes https://github.com/sbt/sbt/issues/7118

Problem
-------
sbtn 1.8.1 was built using ubuntu-latest, which meant picking up newer
glibc.

Solution
--------
This downgraded the ubuntu machine to build sbtn.
2023-01-04 17:19:29 -05:00
Matthias Kurz ac638a764d
Use latest sbtn 2023-01-03 16:02:18 +01:00
Matthias Kurz 5fa46859d2
Make use of sbtn aarch64 binary where possible 2023-01-03 12:41:49 +01:00
Eugene Yokota bb40e1bc87 Merge branch '1.9.x' into wip/merge-1.9.x 2022-12-31 16:28:47 -05:00
Chris Kipp 4a6832f281 fix: ensure sbt server says it's a debugProvider
I believe this was just an oversight that it's not marked as true since
sbt can handle `debugSession/start`. This change just ensures that
during the initialization process sbt says it's a `debugProvider` for
the same languages as `runProvider` and `testProvider`. It also
correctly marks the build targets as `canDebug`, unless they are sbt
targets.
2022-12-29 17:08:22 +01:00
Eugene Yokota 39dc13668f lm-coursier-shaded 2.0.12
https://github.com/coursier/sbt-coursier/releases/tag/v2.0.12
2022-10-30 18:25:04 -04:00
Ondra Pelech 01a501f4f7
Dependency graph with colors (based on the organization) (#7052) 2022-10-17 13:25:02 -04:00
Nabil Abdel-Hafeez e7a847615a
Add zio-test TestFramework to default test frameworks 2022-10-16 22:42:53 +02:00
frosforever d366b77b23 Protect against missing edges in graph by using map get vs apply 2022-10-02 14:04:50 -04:00
eugene yokota 666c2b69f4
Merge branch 'develop' into fix-modules-get 2022-10-02 13:44:05 -04:00
Eugene Yokota 2a61fb35f9 Fix /tmp/.sbt/ collision for domain socket
Problem
-------
Fixes https://github.com/sbt/sbt/issues/7013
In a shared environment, multiple users will try to create
`/tmp/.sbt/` directory, and fail.

Solution
--------
Append a deterministic hash like `/tmp/.sbt1234ABCD` based
on the user home, so the same directory is used for the given
user, but each user would have a unique runtime directory.
2022-10-02 12:45:30 -04:00
eugene yokota f0cb420fe2
Merge pull request #7031 from gontard/backport_6903_to_1.8.x
Backport #6903 to 1.8.x
2022-09-30 11:43:20 -04:00
gontard cc44169fe0 Fix testQuick on changed function in object
Fix https://github.com/sbt/sbt/issues/5504
2022-09-30 11:25:31 +02:00
gontard 89acd3eed1 Improve log for not found remote cache artifact
Before
remote cache not found for 0.0.0-7c40144bd1c774e6

After
remote cache artifact not found for org.gontard:sbt-test:0.0.0-7c40144bd1c774e6 Some(cached-compile)
2022-09-30 11:07:20 +02:00
Eugene Yokota b00792a3a7 Scala 2.12.17
This bumps up scala-xml to 2.x.
2022-09-17 04:09:52 -04:00
Eugene Yokota 573cd2de81 Giter8 0.15.0 by default 2022-09-11 13:03:43 -04:00
Eugene Yokota bbc91a4788 Merge branch '1.7.x' into fport/1.7.x 2022-08-10 21:53:50 -04:00
Devin Fisher 9f9b08edbd refactor printing error to an in-function function 2022-08-10 10:08:49 -04:00
Devin Fisher 5874ad920e add output when book server socket fails to create 2022-08-10 10:08:42 -04:00
eugene yokota ab59e4c6ba
Merge pull request #6998 from ckipp01/captureCodeBsp
feat: start forwarding diagnosticCode via BSP
2022-08-10 10:03:40 -04:00
Chris Kipp 15a45cb3c0 feat: start forwarding diagnosticCode via BSP
This change is a continuation of the work that was done in
https://github.com/sbt/sbt/pull/6874 to allow the Scala 3 compiler to
forward the `diagnosticCode` of an error as well as the other normal
things. This change in dotty was merged in
https://github.com/lampepfl/dotty/pull/15565 and also backported so it
will be in the 3.2.x series release. This change captures the
`diagnosticCode` and forwards it on via BSP so that tools like Metals
can can use this code.

You can see this in the BSP trace now for a diagnostic:

For example with some code that contains the following:

```scala
val x: Int = "hi"
```

You'll see the code in the BSP diagnostic:
```  "diagnostics": [
    {
      "range": {
        "start": {
          "line": 9,
          "character": 15
        },
        "end": {
          "line": 9,
          "character": 19
        }
      },
      "severity": 1,
      "code": "7",
      "source": "sbt",
      "message": "Found:    (\u001b[32m\"hi\"\u001b[0m : String)\nRequired: Int\n\nThe following import might make progress towards fixing the problem:\n\n  import sourcecode.Text.generate\n\n"
    }
  ]
```

Co-authored-by: Adrien Piquerez <adrien.piquerez@gmail.com>
Refs: https://github.com/lampepfl/dotty/issues/14904
2022-08-09 19:02:52 +02:00
Devin Fisher 157030212a refactor printing error to an in-function function 2022-08-08 11:21:43 -06:00
Devin Fisher 0d37a9eae2 add output when book server socket fails to create 2022-08-05 09:57:22 -06:00
Adrien Piquerez 634e8799e7 Catch ClosedChannelException in background job logger
We want the background job to stay alive even if its terminal
has been closed and we cannot write to it anymore
2022-08-05 14:45:38 +02:00
Adrien Piquerez 592086b889 Don't use ProxyTerminal in background job
If we use the ProxyTerminal in the background jobs, the logs
would be spread across different terminals, switching from active
client to active client. We want the logs to stick
to the client that started the job.
2022-08-04 16:48:13 +02:00
Adrien Piquerez 6bcda6684a Use BackgroundJobService context instead of MainLoop context
A new context is created and closed for each state of the MainLoop.
But the context of the backgroundJob must stay alive.
So we use a context that is owned by the BackgroundJobService.
It creates a new logger for each background job and cleans it when
the job stops.
2022-08-04 16:48:13 +02:00
Krzysztof Pado 2bffb2731e Add support for BSP's buildTarget/outputPaths method 2022-08-03 10:13:48 +02:00
Krzysztof Pado 58f0ff612c Add support for BSP's buildTarget/outputPaths method 2022-08-01 19:31:43 -07:00
Jason Pickens 5c933679fa
fix: change BSP JVM environment working directory to be a path 2022-07-27 11:56:27 +12:00
frosforever 1b21ecb1ce Protect against missing edges in graph by using map get vs apply 2022-07-19 09:55:45 -04:00
eugene yokota aad0464138
Merge pull request #6947 from eed3si9n/wip/banner
Banner
2022-07-02 19:20:11 -04:00
Eugene Yokota 31a6c60df3 Banner 2022-07-02 19:07:34 -04:00
Eugene Yokota 05d3d8689b Remove compatibility check from ++
Problem
-------
Since sbt-doge merger `++ <sv> <command1>` has used binary compatibility
as a test to select subproject, but it causes surprising situations like
sbt/sbt#6915, and it blurs the responsibility of YAML file and build
file as the version specified in the version can override the Scala
version test on local laptop.

Solution
--------
This removes the compatibiliy check (backward-only or otherwise),
and require that `<sv>` match one of `crossScalaVersions` using the new
Semantic Version selector pattern.
2022-07-02 18:38:04 -04:00
eugene yokota 6d0ef2093d
Merge pull request #6943 from raboof/more-appropriate-error-when-no-versions-match
Show a more appropriate message when no Scala versions matches
2022-06-28 09:26:06 -04:00
Arnout Engelen 697e3bce51
Show a more appropriate message when no Scala versions matches
When switching scala versions with a wildcard, and no subproject
has a matching version to switch to, show a more appropriate error
message
2022-06-28 14:43:06 +02:00
Arnout Engelen 6a79bdb461
Show a more useful log message when doing a flexible version switch
Suggested by @SethTisue in https://github.com/sbt/sbt/pull/6894#issuecomment-1168042209

Will show multiple lines when different versions are selected for different subprojects.

When no subprojects have a matching Scala version you will get a
'Switch failed' exception anyway, so in that case there is no
change in behavior.
2022-06-28 07:59:13 +02:00
Rui Gonçalves 705d3d58ce Filter incompatible Scala 3 projects in cross switch commands 2022-06-26 22:46:37 -04:00
Arnout Engelen 8973fce1fa
More flexible Scala version switch
By using SemanticSelector instead of custom globbing.

Follow-up on https://github.com/sbt/sbt/pull/6894,
fixes https://github.com/sbt/sbt/issues/6934
2022-06-26 12:43:41 +02:00
eugene yokota 1db7dd328a
Merge pull request #6935 from eed3si9n/wip/temp-directories
[1.7.x] Fix sbt trying to delete /tmp on ARM Macs
2022-06-25 20:23:39 -04:00
Eugene Yokota 87dc5da93a Fix sbt trying to delete /tmp on ARM Macs
Problem
-------
There's a bug in ipcsocket cleanup logic that effectively
tries to wipe out /tmp.

Workaround
----------
We should fix the underlying bug, but we can start by
explicitly configuring the temp directories ipcsocket uses.

Ref https://github.com/sbt/sbt/issues/6931
2022-06-25 18:58:19 -04:00
Kamil Podsiadlo 7921cab7e3 fix: publishing bsp diagnostics
* do not publish bsp diagnostics if there were and there are no problems
* publish diagnostics if problems needs to be updated
2022-06-25 11:14:51 +02:00
Adrien Piquerez d0b8982bf4
Merge branch 'develop' into bsp-diagnostics-fix 2022-06-24 14:08:56 +02:00
Arnout Engelen cd915845db Add support for wildcards in Scala version switch
Picking from the `crossScalaVersions`

As discussed in https://github.com/sbt/sbt/discussions/6893
2022-06-24 01:41:38 -04:00
Kamil Podsiadlo e8d60efbb4 fix: publishing bsp diagnostics
* do not publish bsp diagnostics if there were and there are no problems
* publish diagnostics if problems needs to be updated
2022-06-23 08:25:36 +02:00
Arnout Engelen 0d0a654c6f
Add support for wildcards in Scala version switch
Picking from the `crossScalaVersions`

As discussed in https://github.com/sbt/sbt/discussions/6893
2022-06-21 17:01:04 +02:00
Eugene Yokota 060a85f0d5 Merge branch '1.7.x' into wip/merge-1.7.x 2022-06-13 02:27:30 -04:00
eugene yokota 290925fd99
Merge pull request #6916 from eed3si9n/wip/revert-6814
[1.7.x] Revert "Add support for scala-output-version flag in Scala 3"
2022-06-13 01:57:48 -04:00
Eugene Yokota d9e43ecfdf Revert "Add support for scala-output-version flag in Scala 3"
This reverts commit 1e89d71311.
2022-06-13 01:28:37 -04:00
Eugene Yokota d5889d3ce3 Bump to Scala 2.12.16 2022-06-13 01:27:24 -04:00
Eugene Yokota c04b2a4f73 lm 1.7.0-M1
This removes OkHttp dependency.
This also removes an experimental feature to customize HTTP for Ivy called
CustomHttp we added in sbt 1.3.0.
Since LM got switched to Coursier in 1.3.0, I don't think we advertized
CustomHttp.
2022-06-13 00:52:32 -04:00
gontard 3c497addd1 Fix testQuick on changed function in object
Fix https://github.com/sbt/sbt/issues/5504
2022-05-24 10:56:25 +02:00
xuwei-k f6ff6996a5 fix typo 2022-05-23 07:37:34 +09:00
Eugene Yokota c4840ec473 Fix Main.scala referencing oldLastGrep 2022-05-01 03:07:17 -04:00
xuwei-k 45518c7f24 Update semanticdbVersion 2022-04-17 18:32:14 -04:00
Ethan Atkins ca7c872e27 Restore watchOnTermination
At some point the watchOnTermination callback stopped working. I'm not
exactly sure how or why that happened but it is fairly straightforward
to restore. The one tricky thing was that the callback has the signature
(Watch.Action, _, _, _) => State, which requires propagating the action
to the failWatch command. The easiest way to do this was to add a
mutable field to the ContinuousState. This is rather ugly and reflects
some poor design choices but a more comprehensive refactor is out of
the scope of this fix.

This commit adds a scripted test that ensures that the callback is
invoked both in the successful and unsuccessful watch cases. In each
case the callback deletes a file and we ensure that the file is indeed
absent after the watch exits.
2022-04-17 18:31:54 -04:00
eugene yokota f12a199a1a
Merge pull request #6769 from naferx/remove-old-lastgrep
Remove deprecated command last-grep
2022-04-17 14:24:26 -04:00
xuwei-k ec9c3f26c6 Update semanticdbVersion 2022-04-16 21:53:32 +09:00
Kamil Podsiadlo faf8dfde72 bsp: add JVM test/run env capabilities to BSP 2022-04-16 13:46:12 +02:00
Kamil Podsiadlo 6eb911ad15 refactor: simplify JVm environment requests
refactor: extract common logic to the `bspInputTask`
2022-04-12 20:09:35 +02:00
Kamil Podsiadlo ad4113caeb feat: implement BSP's JVM environment requests 2022-04-12 20:09:31 +02:00
Adrien Piquerez bf7e255e74
Merge branch 'develop' into feat/bsp-env-request 2022-04-12 17:49:52 +02:00
Ethan Atkins 379503a894 Restore watchOnTermination
At some point the watchOnTermination callback stopped working. I'm not
exactly sure how or why that happened but it is fairly straightforward
to restore. The one tricky thing was that the callback has the signature
(Watch.Action, _, _, _) => State, which requires propagating the action
to the failWatch command. The easiest way to do this was to add a
mutable field to the ContinuousState. This is rather ugly and reflects
some poor design choices but a more comprehensive refactor is out of
the scope of this fix.

This commit adds a scripted test that ensures that the callback is
invoked both in the successful and unsuccessful watch cases. In each
case the callback deletes a file and we ensure that the file is indeed
absent after the watch exits.
2022-04-09 15:49:10 -07:00
Kamil Podsiadlo 19b3ddb8e8 refactor: simplify JVm environment requests
refactor: extract common logic to the `bspInputTask`
2022-04-06 09:09:51 +02:00
Kamil Podsiadlo 5ea12485c6 feat: implement BSP's JVM environment requests 2022-04-06 09:09:51 +02:00
eugene yokota d065f38576
Merge pull request #6854 from eed3si9n/bport/6847
[1.7.x] Do not fire `build/publishDiagnostics` if there are (and were) no problems
2022-03-27 00:55:00 -04:00
Rikito Taniguchi 620c55d6ac Re-publish warnings on BSP server startup
Imitate 8aaf828b03
2022-03-27 00:12:23 -04:00
Rikito Taniguchi 862d373f02 Don't fire publishDiagnostic if there's no problems both in current and previous compilation 2022-03-27 00:12:14 -04:00
eugene yokota 878250e78e
Merge pull request #6847 from tanishiking/donot-publish-bsp
[BSP]Do not fire `build/publishDiagnostics` if there are (and were) no problems
2022-03-27 00:10:32 -04:00
Brice Jaglin 491f70cd30 includePluginResolvers should work for coursier resolutions 2022-03-27 00:06:55 -04:00
Michał Pałka 1e89d71311 Add support for scala-output-version flag in Scala 3 2022-03-24 15:35:57 +01:00
Brice Jaglin fb479efdf9 includePluginResolvers should work for coursier resolutions 2022-03-23 12:25:35 +01:00
Rikito Taniguchi f118d2d73b Re-publish warnings on BSP server startup
Imitate 8aaf828b03
2022-03-21 22:14:42 +09:00
Rikito Taniguchi 80e87531d3 Don't fire publishDiagnostic if there's no problems both in current and previous compilation 2022-03-21 22:14:04 +09:00
eugene yokota 2338bea9db
Merge pull request #6839 from sbt/1.7.x
Porting 1.7.x to develop
2022-03-18 12:17:26 -04:00
Kamil Podsiadlo ce978a19ed tests: add test case for framework field in scala test classes request 2022-03-10 19:56:49 +01:00
Kamil Podsiadlo 23b50688ba feat: add optional framework field to the bsp 2022-03-04 10:53:25 +01:00
gontard d25dfd06ab Improve log for not found remote cache artifact
Before
remote cache not found for 0.0.0-7c40144bd1c774e6

After
remote cache artifact not found for org.gontard:sbt-test:0.0.0-7c40144bd1c774e6 Some(cached-compile)
2022-02-25 16:14:53 +01:00
naf ff7384fced Remove deprecated command 2021-12-29 21:17:05 -05:00
Eugene Yokota 515993498d Use lazy val 2021-12-28 23:45:04 -05:00
Eugene Yokota 544a935534 Update banner 2021-12-26 01:48:14 -05:00
eugene yokota 450c87f576
Merge pull request #6726 from Nirvikalpa108/remove-log4j
Removes deprecated log4j
2021-12-20 01:09:02 -05:00
Amina Adewusi 97cdf21416 Remove log4j
WIP
2021-12-03 17:13:29 +00:00
Eugene Yokota 2f2ceeb9c9 Update banner 2021-11-29 05:32:33 -05:00
Eugene Yokota 5b179395ec Fixes fake position handling, take 2
Fixes #6720
Ref #5994

Problem
-------
Sometimes the compiler returns a fake position such as `<macro>`.
This causes this causes InvalidPathException on Windows if we try
to convert it into NIO path.

Solution
--------
Looks for less-than sign in the VirtualFileRef and skip those.
Since BSP requires the diagnostic info to be associated with
files, we probably can't do much.
2021-11-27 23:42:20 -05:00
Eugene Yokota e3afa845ec Extend supershell close timeout
Fixes #6592

Problem
-------
On Heroku there's timeout.

Solution
--------
This seems to be coming from supershell closing the executor.
Extend the timeout to 30s.
2021-11-27 21:26:52 -05:00
David Francoeur a448b1caab
Load credentials from SBT_CREDENTIALS (#6724)
Load credentials from SBT_CREDENTIALS
Prefer sys.env to System.getenv
2021-11-27 02:44:49 -05:00
Eugene Yokota 6c68b843d5 Fixes tab completion of global keys
Fixes #1373
Fixes #6715

Following my own PR #2855 around `ThisBuild`, this attempts to fix the
tab completion of globally scoped keys from the shell.
2021-11-16 19:23:25 -05:00
eugene yokota b3aae681bf
Merge pull request #6711 from xuwei-k/fix-scala-2-13-warn
fix Scala 2.13 warnings
2021-11-14 21:53:57 -05:00
xuwei-k 535b15b83e fix Scala 2.13 warnings 2021-11-14 22:59:34 +09:00
xuwei-k aa8b1141f8 Update scalatest 2021-11-14 22:03:59 +09:00
Amina Adewusi 3c81e08fa2 Migrates Treeview.scala to use Contraband
Migrates TreeView.scala to use Contraband from scala.util.parsing.json,
because this is now deprecated.
The TreeView logic is used in the dependencyBrowseTree task.
2021-11-12 16:52:12 +00:00
Adrien Piquerez c77d6dfb38 Fix #6698: Synchronize all RPC messages with systemOut notifications
`systemOut` notifications are buffered so that they are sent at most
once every 20 millisecond. Other RPC messages are not buffered.
As a consequence, some RPC messages can pass in front of some
systemOut notifications.
That's why `sbt --client run` can exit before it receives all the logs.

In general I think it is safer to maintain the order of all messages.
To do so we can force the flush of systemOut before each RPC message.
2021-11-03 10:21:02 +01:00
Adrien Piquerez 75d3bf2b5f [BSP] remove duplicated sources in sbt build target
Also remove the base directory (`./project/`) from the list of source directories
2021-10-29 15:40:00 +02:00
Adrien Piquerez e64c71dd58 [BSP] Support base source files 2021-10-29 15:40:00 +02:00
kijuky 890ecdc556 Overloaded without passing null. 2021-10-19 13:51:15 +09:00
kijuky 76c1b68516 Enable the asciiGraphWidth setting to the dependencyTree tasks. #5962 2021-10-19 02:15:31 +09:00
xuwei-k 9052c745b1 re-enable `dependency-graph` tests 2021-10-11 20:40:24 +09:00
kxbmap 59f178a4c4 Make javaHome that forks scripted tests configurable
Normally scripted tests are forked using the JVM that is running sbt.
If set `scripted / javaHome`, forked using it.

```
scripted / javaHome := Some(file("/path/to/jdk-x.y.z"))
```

Or use `java++` command before scripted.

```
sbt> java++ 11!
sbt> scripted
```
2021-10-05 00:35:56 +09:00
kxbmap 24e7398b5b Add Windows Java home selectors for some distributions that provides an installer
- Eclipse Temurin
- IBM Semeru Runtimes
- Microsoft Build of OpenJDK
- Amazon Corretto
- Azul Zulu Builds of OpenJDK
- Liberica JDK
2021-10-02 16:56:12 +09:00
Nima Taheri fcd7a3bef2 Handle cycles while rendering json dependency tree to json 2021-09-28 11:28:20 -07:00
eugene yokota 5532af17c7
Merge pull request #6629 from er1c/add-sbt-cache-arg
Add --sbt-cache argument and update localCacheDirectory key description
2021-09-19 14:02:34 -04:00
Eugene Yokota 0413727796 Drop TrapExit
Fixes https://github.com/sbt/sbt/issues/6558

Problem
-------
sbt uses SecurityManager feature of JDK to trap `sys.exit` call during
`run`-like tasks, since we emulate `run` and `console` as function calls.
JDK 17 deprecated SecurityManager and it's printing warnings.

Solution
--------
About 10 years go, `exit` was a convenient way of quitting both Scala
REPL and sbt shell. Scala 2.11 broke this by removing the `Predef.exit`.
We still need to worry about `run` potentially calling `sys.exit`
but that can be handled using fork feature.
In the long-run, it probably is better to be JDK 17 compatible.
2021-09-19 12:47:59 -04:00
Eugene Yokota 8b9cbb3311 Follow up on Scala 2.12.15 bump 2021-09-18 18:08:26 -04:00
Amina Adewusi 505492ed33 Add -Xsource:3 flag
Adding Scala 3 compatible mode for the compilation of build.sbt files.
2021-09-17 18:16:11 +01:00
Amina Adewusi c013d1180c Bump scala version to 2.12.15 2021-09-17 17:46:07 +01:00
Amina Adewusi ea67d3376b Fix for crossSbtVersions triggering lintBuild
Currently crossSbtVersions is incorrectly generating a warning that it
is an unused setting (see https://github.com/sbt/sbt/pull/5153). This
PR fixes this by adding it to the list of excluded lint keys.

Fixes #6571.
2021-09-12 04:42:01 +01:00
Igal Tabachnik 9986fb6eed Adding a test verifying task progress reports (task start/progress/finish) 2021-09-10 13:06:03 +03:00
Igal Tabachnik 2f589b6713 Extracting progress reporter to own class 2021-09-10 01:02:01 +03:00
Igal Tabachnik f209d0093c BSP tasks report progress during compilation 2021-09-09 23:25:06 +03:00
Igal Tabachnik 8fe769c41d
Merge branch 'develop' into buildTarget/cleanCache 2021-09-06 11:40:06 +03:00
Eugene Yokota 39bcfee937 Fix ClassCastException
Ref #6592
When there's an issue like timeout, currently it throws a
ClassCastException because I made some assumption about the underlying
error. This removes the unnecessary casting.
2021-09-05 01:02:37 -04:00
Igal Tabachnik 20fcab4651 Ensuring both "Rebuild Project" and "Rebuild module" work from IntelliJ 2021-08-28 13:50:12 +03:00
Igal Tabachnik c55880d795 Implementing `buildTarget/cleanCache` to support Rebuild operations from IntelliJ 2021-08-27 17:46:41 +03:00
Eric Peters 4dcae2cb73 Add --sbt-cache argument and update localCacheDirectory key description 2021-08-21 07:35:09 -07:00
Amina Adewusi 3c9826f4f4 Fixes shutdown hook error in timing report
This fixes the closed channel exception generated when running
sbt -timings help. This bug was introduced in sbt 1.4 where a wrapper
was created (Terminal.scala) around the terminal. This meant that the
shutdown hook which had been used previously was no longer working.

This has been fixed by avoiding the use of the JVM shutdown hook and
instead manually running the thunk at a place in the code where
the programme is still able to respond.
2021-08-20 17:45:14 +01:00
eugene yokota 8586e19f62
Merge pull request #6611 from Nirvikalpa108/remote-cache-again
Virtualize Sync.sync so it can be cached remotely for resources dir syncing
2021-07-31 14:56:29 -04:00