Repository navigation
feat: support elide 1.6.0 and make it the default - #90
Conversation
Release candidates and releases are tagged v<version>; map the version to its tag for downloads (and in the benchmark workflow). Restore the exec bit on lib/jspawnhelper, which the archive ships without, so subprocesses started from elide java work. Gate the kapt fallback's JDK 23+ flag on the fallback JDK (JAVA_HOME), not on the JVM running the shim. Signed-off-by: Sam Gammon <sam@elide.dev>
Add integrity rows for the v1.6.0 release (hashes verified against the published .sha256 files) and map 1.6.0 to its v-prefixed tag. Signed-off-by: Sam Gammon <sam@elide.dev>
There was a problem hiding this comment.
🟡 Changes recommended
Version resolution can prefer the RC over stable, and tag rewriting breaks custom version-based download URLs.
2 open issues
What changed in this PR
Adds Elide 1.6.0 as the default toolchain while retaining the 1.6.0-rc.2 pin.
Changes:
- Adds release integrity hashes and GitHub tag mapping.
- Restores subprocess helper permissions and gates fallback JVM flags on its JDK.
- Updates tests, documentation, and benchmark downloads.
| File | Description |
|---|---|
| tests/versions_test.bzl | Tests release tags and default integrity availability. |
| tests/kotlin_builder/FallbackTest.kt | Tests JDK version detection. |
| elide/private/versions.bzl | Adds release pins, tag mapping, and default. |
| elide/private/download.bzl | Maps download tags and restores helper permissions. |
| elide/kotlin/builder/Fallback.kt | Detects the fallback JDK version. |
| elide/extensions.bzl | Updates version attribute documentation. |
| docs/extensions.md | Refreshes generated version documentation. |
| .github/workflows/benchmarks.yml | Resolves release tags for benchmark downloads. |
Review effort: Balanced
Merging this PR will degrade performance by 26.4%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ❌ | test_javac_full[elide] |
22.8 ms | 51 ms | -55.34% |
| ❌ | test_incremental[integration] |
2 s | 2.4 s | -19.58% |
| ⚡ | test_kotlinc_abi_only |
202.7 ms | 182.6 ms | +11% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing feat/elide-1.6.0 (655c496) with main (878b242)
The elide 1.6.0 linux binary links glibc 2.34; the ubuntu 20.04 RBE image ships 2.31, so every remote elide action failed to load. Also sort the new version keys the way buildifier expects. Signed-off-by: Sam Gammon <sam@elide.dev>
select_version now ranks 1.6.0 above 1.6.0-rc.2 (the raw-string tiebreak put the RC first, so a dependency's RC pin beat the root's stable default). The GitHub release-tag rewrite now applies only to the built-in URL template; custom url_template values get the version exactly as pinned. Both helpers move to versions.bzl with unit tests. Signed-off-by: Sam Gammon <sam@elide.dev>
1.6.0 is out; nothing needs the release candidate. Signed-off-by: Sam Gammon <sam@elide.dev>

Adds a pin for the Elide
1.6.0release and makes itDEFAULT_VERSION. Supersedes #87; the1.6.0-rc.2pin is dropped.Commits
main: rc/release versions map to theirv-prefixed GitHub tag (release_tag()), the exec bit is restored onlib/jspawnhelper, and the kapt fallback's JDK 23+ flag is gated on the fallback JDK. 1.6.0 needs all of these.1.6.0integrity rows for linux-amd64, linux-arm64, macos-arm64, and windows-amd64, verified against the release's published.sha256files. Also maps1.6.0→v1.6.0, makes it the default, and regenerates the docs.Verified locally
bazel test //tests/...: 37/37 pass.e2e/integration:bazel build -- //... -//:native_appsucceeds with the real downloaded toolchain (elide --version→1.6.0+247436d0ab).Follow-up commits
3. RBE moves to BuildBuddy's Ubuntu 24.04 image: the 1.6.0 Linux binary links glibc dynamically and needs GLIBC_2.34, which the Ubuntu 20.04 image lacks. This raises the Linux host floor for 1.6.0 to glibc 2.34 (Ubuntu 22.04+ / RHEL 9+).
4. Review fixes:
select_versionranks1.6.0above1.6.0-rc.2, and the tag rewrite applies only to the built-in URL template. Both are now inversions.bzlwith unit tests.Known regression: one-shot
elide javacis about 1.6–2x slower in 1.6.0 than 1.3.6 (CodSpeedtest_javac_full[elide]). It looks likelib/libjvmtools.sois loaded on every call. Reported upstream via elide.help (reportr_hfryl3ki3ugvykde). Bazel builds with persistent workers aren't slower.