Commit Graph

3154 Commits

Author SHA1 Message Date
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 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
Amina Adewusi 696a19f5d7 Virtualize Sync.sync so it can be cached remotely for resources dir syncing
An alternative to https://github.com/sbt/sbt/pull/6554.
2021-07-31 18:23:30 +01:00
eugene yokota 47117020ab
Merge pull request #6605 from ScalaWilliam/more-verbose-server-exception
Building on #6353 to help identify the issue of #6101 for Windows users.
2021-07-31 13:15:34 -04:00
Adrien Piquerez 120ccccaab Make BSP requests robust to some target failures
The request of the form buildTarget/* often take a sequence of build
targets as parameter. So far if there is an error on a single build
target, the entire request fails.
This is not the best because the client wants the result of the other
build targets anyway:
For example:
- workspace/buildTargets: if one build target has an invalid Scala
version we still want to import the other ones
- buildTarget/scalacOptions: if a dependency cannot be resolved we still
want to import the build targets that do not depend on it
- buildTarget/scalaMainClasses: if buildTarget does not compile we still
want the main classes of the other targets
...

The change is to respond to BSP requests with the successful
build targets and  to ignore the failed ones.
This is implemented the same in Bloop since before BSP in sbt.

In  https://github.com/build-server-protocol/build-server-protocol/issues/204,
I made a proposal to also add the failed build targets in the response.
2021-07-30 14:41:00 +02:00
William Narmontas febccde3e7 Building on #6353 to help identify the issue of #6101 for Windows users. 2021-07-24 19:59:00 +01:00
eugene yokota d4162cce04
Merge pull request #6566 from adpi2/fix-6010
[BSP] Send diagnostics and meaningful error message when reloading fails
2021-07-12 16:01:48 -04:00
Adrien Piquerez 5490385303 Remove topLoader hack for dotty 2021-07-08 10:03:47 +02:00
Adrien Piquerez 69795cbed7 Move jansiExclusionLoader to scalaInstanceTopLoader 2021-07-08 10:03:47 +02:00
Adrien Piquerez 63dcb1957b Move scalaInstanceTopLoader to compileBase settings 2021-07-08 09:27:20 +02:00
Adrien Piquerez a76e209dde [BSP] send diagnostics when evaluating build.sbt
Since build.sbt is compiled/evaluated in `sbt.compiler.Eval`,
this commit introduces a `BuildServerEvalReporter` to redirect
the compiler errors to the BSP clients.

A new `finalReport` method is added in the new `EvalReporter` base class
to reset the old diagnostics.
2021-07-08 09:25:01 +02:00
Adrien Piquerez 4804cc2fa4 Simplify bspReload cmd by calling doLoadProject
Fixes #6010: Send real error message when realod failed
2021-07-08 08:39:46 +02:00
Adrien Piquerez a825c115c2 [BSP] Ignore sbt target in resources request 2021-06-30 10:31:43 +02:00
Jason Zaugg 3d92827af3 Fix compilation error in test 2021-06-30 12:12:24 +10:00
Jason Zaugg fe046476b1 Refine and test SBT BSP target
- Pass source dirs and current list of files
  - Align display name and URI
2021-06-30 11:19:24 +10:00
Jason Zaugg 0bd736be2a Record build sources in PluginData for BSP 2021-06-28 23:27:33 +10:00