Commit Graph

1611 Commits

Author SHA1 Message Date
eugene yokota 2488e973db
[2.x] Update sbtn to 2.0.0-RC14 for timeout fix (#9240) 2026-05-17 14:12:57 -04:00
eugene yokota 46f0b89642
[2.x] Add runner support for execution log (#9237)
**Problem/Solution**
This adds runner commandline option experimental_execution_log.
2026-05-17 03:01:12 -04:00
eugene yokota 63d5a1103b
[2.x] Improve --help (#9180)
**Problem**
Some runner options are not documented in --help.

**Solution**
Fix it.
2026-05-03 21:24:16 -04:00
eugene yokota 5b9553af9e
[2.x] Bump sbtn to 2.0.0-RC13 (#9140) 2026-04-27 01:03:42 -04:00
kenji yoshida d86587ad54
[2.x] hide JDK warnings if JDK 26 or later (#9068) 2026-04-11 21:47:48 -04:00
BrianHotopp 00632754ab
[2.x] fix: Add --fail to curl in launcher to prevent corrupt jars (#9003)
When the download URL returns an HTTP error (e.g. 404), curl without
--fail exits 0 and saves the error page HTML as the jar file. This
leaves a corrupt jar that causes confusing errors on subsequent runs.

With --fail, curl returns a non-zero exit code on HTTP errors and
does not write the response body to the output file.

Fixes #6654

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 01:31:52 -04:00
BitToby be305eb3a5
fix: Use sbt script in BSP config instead of hardcoded Java path (#8920)
**Problem**

sbt bspConfig writes the absolute path of the current Java binary into .bsp/sbt.json. When the user switches Java versions (via sdkman, cs java, etc.) or removes that JDK, the IDE fails to start the sbt BSP server because the hardcoded path is stale or gone.

**Solution**

When an sbt launcher script is available (via `sbt.script` system property or PATH lookup), generate:

"argv": ["/path/to/sbt", "bsp"]
2026-03-19 20:57:53 -04:00
Dream dc90f160df
[2.x] feat: Support --autostart=false and --no-server in sbtn client (#8895)
**Problem**
When sbtn (native thin client) can't find a running sbt server, it prompts
to start one. There was no way to opt out of server auto-start from the
client side, which is needed for CI environments and scripting (sbt/sbt#7079).

**Solution**
Reuse the existing sbt.server.autostart system property in NetworkClient
to control whether sbtn should attempt to start a server. When no server is
running and sbt.server.autostart=false, sbtn exits with an error instead
of prompting.

Support setting this property via:
- sbtn --no-server compile (sets sbt.server.autostart=false)
- sbtn --autostart=false compile (new flag following sbt conventions)
- sbtn -Dsbt.server.autostart=false compile (direct system property)
- sbt --autostart=false compile (bash runner and sbtw)

This follows sbt's naming conventions for properties/options: positive
property names with =false opt-out (like --color=false, --supershell=false).

Fixes sbt/sbt#7079

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 20:51:07 -04:00
PandaMan 1ab9411446
[2.x] Improve -help/--help and fix launcher test harness (#8879)
- sbt script: add 'Getting started' section to usage (create project, help commands)
- sbt script: handle -h/--help without starting JVM, exit 0
2026-03-09 23:11:05 -04:00
PandaMan 119aa4d1a7
[2.x] fix: handle -sbt-dir with spaces from .sbtopts (#8875)
**Problem**

When you pass -sbt-dir "/Users/a' dog" on the command line, the launcher correctly produces:

-Dsbt.global.base=/Users/a' dog

But when you put the same option into .sbtopts, the launcher previously split the line on spaces without respecting quotes, so the resulting -Dsbt.global.base was truncated (for example, -Dsbt.global.base=/Users/a'). This made .sbtopts behavior inconsistent with CLI behavior and broke setups where the global sbt directory path contains spaces and an embedded quote.
2026-03-05 00:41:30 -05:00
eugene yokota 2d583bfe65
[2.x] sbtn 1.12.5 (#8858) 2026-03-01 16:53:29 -05:00
eugene yokota 2d18eadd2c
[2.x] Comments in dot files (#8841)
**Problem**
Hash comments doesn't work in dot files.

**Solution**
This reapplies the comment removal sed,
with improved inline comment handling.
2026-03-01 02:54:12 -05:00
bitloi 58f34117ca
[2.x] perf: short-circuit --version from build.properties (#8822)
Avoid launching sbt just to render --version by reading sbt.version directly from project/build.properties in the shell script, batch script, and sbtw wrapper. Tighten launcher integration assertions to verify version output no longer depends on the sbtVersion command output.
2026-02-27 12:02:17 -05:00
Dream 28d877f633
[2.x] fix: Runner should fail on JDK < 17 for sbt 2.x (#8825)
**Problem**
Running sbt 2.x with JDK 8 produces a confusing "server was not
detected" error because the JDK version check only required JDK 8+
and only ran in the non-native-client path.

**Solution**
Move java_version detection before the native client decision and add
checkJava17ForSbt2 that requires JDK 17+ when sbt major version >= 2.

Fixes #8813

* [2.x] fix: Fail early when sbt 2.x is run with JDK < 17 (sbtw)

Move JDK version check before native client decision in sbtw and
require JDK 17+ when build.properties declares sbt 2.x.

* [2.x] fix: Fail early when sbt 2.x is run with JDK < 17 (sbt.bat)

Move checkjava before native client decision in sbt.bat and require
JDK 17+ when build.properties declares sbt 2.x.

* [2.x] test: Add minimumJdkVersion helper and unit tests for sbtw

Extract JDK version check logic into Runner.minimumJdkVersion for
testability. Add RunnerSpec with tests for sbt 1.x, 2.x, and 3.x
version detection.

* [2.x] test: Bump fake java to JDK 17 for integration tests

The fake java script used by launcher integration tests reported
JDK 8. Since sbt 2.x now requires JDK 17+, the citest2 (sbt 2.x)
integration tests would fail with the new JDK version check.

* Simulate JDK 9+ rt.jar handling in fake java script

Instead of silently ignoring --rt-ext-dir (which causes sbt.bat
to mkdir on an empty string), properly simulate JDK 9+ behavior
by creating a temp directory with java9-rt-ext- prefix and a
dummy rt.jar inside it.
2026-02-27 11:43:24 -05:00
eugene yokota 32c5637dc9
[2.x] test: Add Git Bash test on Windows (#8779) 2026-02-25 22:51:52 -05:00
fireXtract e007fcf6dc
fix: Refer to universal sbtn in detectNativeClient (#8810)
** Problem **
sbtn-x86_64-apple-darwin doesn't exist anymore

** Solution **
point to universal binary instead
2026-02-24 23:24:00 -05:00
eugene yokota 4b3c525c22
Revert "[2.x] fix: Handle JVM parameters with spaces in dot files (#8730)" (#8797)
This reverts commit 921efce541.
Ref https://github.com/sbt/sbt/issues/8767

**Problem**
On Git Bash on Windows, we get a cryptic error Invalid maximum heap size: -Xmx2G.

**Solution**
Revert.
2026-02-23 02:41:29 -05:00
eugene yokota 0eff5369d9
[2.x] fix: Remove global.base setting in runner script (#8795)
**Problem**
1. It's difficult to find out when Process fails.
2. global.base setting isn't needed in sbt runner script.

**Solution**
1. Forward to stderr as it happens.
2. Remove global.base setting in the runner script.
2026-02-23 01:39:15 -05:00
eugene yokota b1bfb6e627
[2.x] Fallback to HOME/.config/sbt (#8780)
**Problem/Solution**
When XDG_CONFIG_HOME is not defined, we should fallback to HOME/.config/sbt.
2026-02-22 00:02:30 -05:00
bitloi c6f67d706f
[2.x] feat: XDG directory standard (#8769)
- Add SysProp.defaultGlobalBaseDirectory: uses SBT_CONFIG_HOME,
  XDG_CONFIG_HOME/sbt (Unix), LOCALAPPDATA/sbt (Windows), else ~/.sbt
- BuildPaths.defaultGlobalBase delegates to SysProp for consistent default
- sbt script: inject -Dsbt.global.base from XDG when not already set;
  getPreloaded() fallback uses SBT_CONFIG_HOME/XDG_CONFIG_HOME
- sbt.bat: use LOCALAPPDATA/sbt when --sbt-dir not set
- Tests: BuildPathsTest (property + absolute path), RunnerScriptTest (XDG)
2026-02-20 23:32:48 -05:00
Lazz 02d9d4c699
[2.x] fix: Support inline comments in .jvmopts and .sbtopts files (#8758)
**Problem**
After PR #8730 (commit 921efce), inline comments in .jvmopts and .sbtopts files cause errors.
For example, `--add-opens=java.base/java.util=ALL-UNNAMED # comment` results in:
Error: Could not find or load main class #

The # and everything after it is now parsed as separate arguments instead of being stripped as a comment.

**Solution**
Update the sed command in outputConfigFileTokens() to strip inline comments (everything from # to end of line) before parsing tokens.

The new s/\s*\#.*// pattern matches optional whitespace + # + rest of line and removes it.

Generated-by: Claude Sonnet 4.5
2026-02-17 14:42:16 -05:00
PandaMan 921efce541
[2.x] fix: Handle JVM parameters with spaces in dot files (#8730)
**Problem**

The sbt launcher script used naive word splitting when parsing `.sbtopts` and `.jvmopts`, so arguments with spaces were split incorrectly. For example, `-J--add-modules jdk.incubator.concurrent` in `.sbtopts` and `-Dtest.key="value with spaces"` in `.jvmopts` were not passed to the JVM as intended.
2026-02-14 03:17:44 -05:00
Pluto 0cae58403f
[2.x] fix: handle --version in sbt 2.x project dirs (sbt#8717) (#8735)
**Problem**
`sbt --version` in sbt 2.x project directories was delegated to the native client, which could try to start/connect to a server instead of printing version info.

**Solution**
Skip native-client delegation when `--version` is requested, and add runner-script tests for sbt 1.x and 2.x project variants.
2026-02-13 09:10:51 -08:00
PandaMan de2c27abeb
[2.x] fix: handle --script-version sbt 2.x project dirs (#8715)
When in an sbt 2.x project directory, the script used to delegate to sbtn
before checking --script-version, so 'sbt --script-version' ran sbtn and
failed. Now we print the script version and exit before the native client
branch.
2026-02-07 22:16:21 -05:00
Pluto 12deebba2b
[2.x] fix: restore CLI precedence over .sbtopts
According to the issue, `.sbtopts` entries are appended after
CLI args in sbt 1.12.x, so `.sbtopts` JVM memory settings (e.g., `-Xmx2g`) override CLI `--mem`,
causing invalid JVM settings.
2026-02-05 18:04:55 -05:00
eugene yokota 5ba750059c
[2.x] Bump to sbtn 1.12.1 (#8683) 2026-02-03 02:05:50 -05:00
circlecrystalin 2f348a09b9
[2.x] fix: Fixes the handling of special characters in dot files (#8558)
- Replace 'eval echo $line' with 'printf "%s\n" "$line"' in loadConfigFile()
- Prevents shell expansion of special characters like |, *, &, etc.
- Fixes issue where properties with pipes, wildcards, and ampersands
  caused 'command not found' or 'unexpected' errors
- Add test to verify special characters are handled correctly on all platforms
2026-01-19 14:37:08 -05:00
SID bb02c3331c
[2.x] fix: Fix sbtopts files priority in sbt launch script (#8514)
* Fix sbtopts files priority in sbt launch script (fixes #7179)

- Change project .sbtopts from prepend to append so it appears last
2026-01-13 13:30:13 -05:00
MkDev11 d4570e3359
[2.x] fix: Skip native client for sbt new/init commands (#8512)
Fixes #7497
2026-01-13 05:18:05 -05:00
Angel98518 a0f5c83e79 Fix --sbt-version to expand to -Dsbt.version
Fixes #6645

The --sbt-version flag was incorrectly trying to download an sbt launcher
with the specified version, which doesn't exist for many sbt versions.

Changes:
- Modified --sbt-version handling to directly add -Dsbt.version property
- Removed sbt_version variable assignment that caused launcher mismatch
- acquire_sbt_jar now uses default launcher version instead

Now --sbt-version X.Y.Z correctly expands to -Dsbt.version=X.Y.Z without
affecting the sbt launcher version used to run the build.
2026-01-08 20:51:27 +01:00
Eugene Yokota e3f99d39cb Merge branch '1.12.x' into wip/merge-1.12.x 2026-01-05 00:08:21 -05:00
Eugene Yokota fcb4e0e43c sbt 1.12.0 2026-01-04 21:18:03 -05:00
Eugene Yokota 67e52c3006 sbt 1.12.0-RC1 2025-12-19 23:46:35 -05:00
Ondra Pelech 527989ee10 fix 2025-12-12 16:35:00 +01:00
Ondra Pelech d48895df85 Handle JDK_JAVA_OPTIONS 2025-12-12 15:44:25 +01:00
Eugene Yokota 5730383340 Merge branch '1.12.x' into wip/merge-1.12.x 2025-11-24 02:14:17 -05:00
Eugene Yokota 9d2a5f478b sbt 1.11.7 2025-10-05 14:57:23 -04:00
Eugene Yokota 51aa789346 Suppress JDK 25 warnings 2025-09-28 04:17:50 -04:00
Eugene Yokota 64dcdafc07 Merge branch '1.11.x' into wip/merge-1.11.x 2025-09-17 23:35:59 -04:00
Eugene Yokota 9186f23839 sbt 1.11.6 2025-09-06 18:42:39 -04:00
Eugene Yokota 9783cd092b Merge branch '1.11.x' into wip/merge-1.11.x 2025-08-25 02:29:12 -04:00
Eugene Yokota c432f19759 Set to 1.11.5 in the runner script 2025-08-24 15:52:49 -04:00
Eugene Yokota 94d20176d9 sbtn 1.11.5 2025-08-24 05:50:16 -04:00
Eugene Yokota 2de01a8a05 [1.x] --jvm-client
This adds --jvm-client to the runner script.
2025-08-24 00:32:37 -04:00
Eugene Yokota 7d00a2c51d Merge branch '1.11.x' into wip/merge-1.11.x 2025-08-09 13:47:36 -04:00
Eugene Yokota 1186515b1a sbt 1.11.4 2025-08-04 06:16:57 -04:00
Eugene Yokota b1a3ef3743 Merge branch '1.11.x' into wip/merge-1.11.x 2025-08-02 23:13:41 -04:00
Eugene Yokota 2293bddfef sbt 1.11.3 2025-07-05 15:17:39 -05:00
Eugene Yokota 0045c34d28 sbt 1.11.2 2025-06-07 16:19:15 -04:00
Eugene Yokota d004317458 sbt 1.11.1 2025-06-02 00:20:11 -04:00