Skip to content

feat: support elide 1.6.0 and make it the default - #90

Merged
Sam Gammon (sgammon) merged 5 commits into
mainfrom
feat/elide-1.6.0
Oct 18, 2026
Merged

Sam Gammon (sgammon) merged 5 commits into
mainfrom
feat/elide-1.6.0

Conversation

@sgammon

@sgammon Sam Gammon (sgammon) commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Adds a pin for the Elide 1.6.0 release and makes it DEFAULT_VERSION. Supersedes #87; the 1.6.0-rc.2 pin is dropped.

Commits

  1. The commit from feat: support elide 1.6.0-rc.2 and make it the default #87, rebased onto current main: rc/release versions map to their v-prefixed GitHub tag (release_tag()), the exec bit is restored on lib/jspawnhelper, and the kapt fallback's JDK 23+ flag is gated on the fallback JDK. 1.6.0 needs all of these.
  2. Adds 1.6.0 integrity rows for linux-amd64, linux-arm64, macos-arm64, and windows-amd64, verified against the release's published .sha256 files. Also maps 1.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_app succeeds 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_version ranks 1.6.0 above 1.6.0-rc.2, and the tag rewrite applies only to the built-in URL template. Both are now in versions.bzl with unit tests.

Known regression: one-shot elide javac is about 1.6–2x slower in 1.6.0 than 1.3.6 (CodSpeed test_javac_full[elide]). It looks like lib/libjvmtools.so is loaded on every call. Reported upstream via elide.help (report r_hfryl3ki3ugvykde). Bazel builds with persistent workers aren't slower.

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>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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

Comment thread elide/private/download.bzl Outdated
Comment thread elide/private/versions.bzl
@codspeed

codspeed Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Merging this PR will degrade performance by 26.4%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 1 improved benchmark
❌ 2 regressed benchmarks
✅ 6 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

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)

Open in CodSpeed

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>
@sgammon
Sam Gammon (sgammon) merged commit a234522 into main Oct 18, 2026
15 of 17 checks passed
@sgammon
Sam Gammon (sgammon) deleted the feat/elide-1.6.0 branch October 18, 2026 16:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants