Skip to content

Conversation

@sgammon
Copy link
Member

@sgammon sgammon commented Oct 10, 2025

Ready for review Powered by Pull Request Badge

Summary

Fixes a whole bunch of bugs related to Elide's builder and installer, especially with regard to Kotlin and Java.

@sgammon sgammon added this to the Release R18: Beta milestone Oct 10, 2025
@sgammon sgammon self-assigned this Oct 10, 2025
@sgammon sgammon added bug Something isn't working lang:java Issues relating to Java language support lang:kotlin Related to Kotlin lang support tools:builder Stuff relating to Elide's builder labels Oct 10, 2025
@sgammon sgammon added this to Elide Oct 10, 2025
@sgammon sgammon added tools:install Things related to Elide's dependency installer module:tooling Changes and issues relating to the Elide `tooling` module labels Oct 10, 2025
@sgammon sgammon moved this to In Progress in Elide Oct 10, 2025
@sgammon sgammon force-pushed the fix/kotlinc-issues-beta9-pt2 branch from 2cb5918 to bf3a49d Compare October 10, 2025 20:51
@codecov
Copy link

codecov bot commented Oct 10, 2025

Codecov Report

❌ Patch coverage is 3.60360% with 749 lines in your changes missing coverage. Please review.
✅ Project coverage is 39.94%. Comparing base (e2e3abc) to head (5707092).
⚠️ Report is 33 commits behind head on main.

Files with missing lines Patch % Lines
.../elide/tooling/jvm/resolver/MavenAetherResolver.kt 0.00% 111 Missing ⚠️
...ooling/project/codecs/ElidePackageManifestCodec.kt 0.00% 91 Missing ⚠️
...n/kotlin/elide/tooling/jvm/JvmBuildConfigurator.kt 0.00% 84 Missing ⚠️
...ng/gvm/nativeImage/NativeImageBuildConfigurator.kt 0.00% 83 Missing ⚠️
...e/tooling/project/manifest/ElidePackageManifest.kt 8.95% 61 Missing ⚠️
...n/kotlin/elide/runtime/version/ElideVersion.jvm.kt 0.00% 46 Missing ⚠️
...n/elide/runtime/gvm/kotlin/KotlinCompilerConfig.kt 8.88% 40 Missing and 1 partial ⚠️
...ide/tooling/project/flags/ProjectFlagDefinition.kt 0.00% 33 Missing ⚠️
...n/elide/tool/cli/cmd/project/ToolProjectCommand.kt 0.00% 22 Missing ⚠️
...tooling/src/main/kotlin/elide/tooling/MultiPath.kt 0.00% 18 Missing ⚠️
... and 22 more
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1695      +/-   ##
==========================================
- Coverage   40.57%   39.94%   -0.64%     
==========================================
  Files         867      874       +7     
  Lines       40059    40743     +684     
  Branches     5697     5797     +100     
==========================================
+ Hits        16255    16275      +20     
- Misses      21815    22478     +663     
- Partials     1989     1990       +1     
Flag Coverage Δ
jvm 39.94% <3.60%> (-0.64%) ⬇️
lib 39.94% <3.60%> (-0.64%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...main/kotlin/elide/tooling/kotlin/KotlinCompiler.kt 0.00% <ø> (ø)
.../main/kotlin/elide/tool/cli/cmd/deps/AddCommand.kt 50.00% <ø> (ø)
...n/kotlin/elide/tool/cli/cmd/deps/InstallCommand.kt 4.71% <ø> (ø)
...c/main/kotlin/elide/tool/cli/cmd/dev/LspCommand.kt 1.54% <ø> (ø)
...c/main/kotlin/elide/tool/cli/cmd/dev/McpCommand.kt 12.00% <ø> (ø)
.../kotlin/elide/tool/cli/cmd/info/ToolInfoCommand.kt 72.85% <ø> (ø)
...elide/tool/cli/cmd/project/ProjectAdviceCommand.kt 8.33% <ø> (ø)
...kotlin/elide/tool/cli/cmd/repl/ToolShellCommand.kt 31.04% <ø> (ø)
...otlin/elide/tool/cli/cmd/runner/ToolTestCommand.kt 0.00% <ø> (ø)
...n/elide/tool/cli/cmd/secrets/ToolSecretsCommand.kt 1.35% <ø> (ø)
... and 40 more

... and 1 file with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e2e3abc...5707092. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sgammon sgammon force-pushed the fix/kotlinc-issues-beta9-pt2 branch from abfb74e to 73fd45c Compare October 13, 2025 21:29
@sgammon sgammon marked this pull request as ready for review October 14, 2025 19:26
@sgammon sgammon requested review from a team, Copilot and melodicore October 15, 2025 00:50
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This pull request implements a comprehensive set of builder and installer improvements for Elide, focusing on Kotlin/Java tooling enhancements and project flag support. The changes add build state management, toolchain configuration, minimum version enforcement, and extensive new features for Maven dependency handling.

Key changes:

  • New Build Features: Adds project flags, build state management, and toolchain settings
  • Enhanced Maven Support: Implements modules, dev dependencies, compile-only dependencies, runtime-only dependencies, and exclusions
  • Version Management: Adds minimum Elide version enforcement and version comparison utilities
  • API Updates: Updates all manifest codecs to accept build state parameters for context-aware parsing

Reviewed Changes

Copilot reviewed 78 out of 79 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/tooling/src/main/pkl/*.pkl New Pkl modules for toolchain, state, flags, and builder configuration
packages/tooling/src/main/kotlin/elide/tooling/project/flags/*.kt Complete project flags system implementation
packages/tooling/src/main/kotlin/elide/tooling/project/codecs/*.kt Updated all manifest codecs to accept build state context
packages/base/src/commonMain/kotlin/elide/runtime/version/*.kt New version management and comparison system
packages/cli/src/main/kotlin/elide/tool/cli/cmd/project/ToolProjectCommand.kt Enhanced project info display with flags rendering
packages/builder/src/main/kotlin/elide/tooling/jvm/resolver/MavenAetherResolver.kt Extended Maven resolver with new dependency types and local JARs

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Signed-off-by: Sam Gammon <sam@elide.dev>
feat(tooling): add `includeRuntime` / `noStdlib` support for kotlin
feat(tooling): add `reflection` control for kotlin
feat(tooling): add initial `automodules` and jpms support infra
feat(tooling): add `devPackages` support to `maven`
feat(tooling): add `modules` support to `maven`
feat(tooling): add `compileOnly` support to `maven`
feat(tooling): add `runtimeOnly` support to `maven`
feat(tooling): add support for global `exclusions` in maven block
feat(tooling): add initial native image support for `exclusions`
feat(tooling): add native image `defs` block
feat(tooling): add native image support for `ldflags` and `cflags` blocks
feat(tooling): add initial support for dynamic build state in `elide.pkl`
fix(builder): exclude graalvm jars from native-image classpath
fix(builder): don't include optimization settings when pgo is active
fix(builder): runtime-native exports for graal reporter module
fix(builder): relock experimental native image hosted options
fix(builder): mounted codegen and main inputs for kotlinc and javac
fix(builder): wrong count of java/kotlin sources in build messages
fix(builder): kotlinc isn't receiving `-jvm-target` flag
fix(cli): ship svm macros with final dist
fix(cli): missing native image reflective types for kotlinc
fix: incorrect snakeyaml dependency

Fixes: #1692
Fixes: #1691
Fixes: #1688

Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
… minimum

Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
Signed-off-by: Sam Gammon <sam@elide.dev>
@sgammon sgammon force-pushed the fix/kotlinc-issues-beta9-pt2 branch from 2df7b12 to c1845f6 Compare October 17, 2025 17:09
Signed-off-by: Sam Gammon <sam@elide.dev>
@sgammon sgammon merged commit ed7eaf7 into main Oct 18, 2025
18 of 19 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in Elide Oct 18, 2025
@sgammon sgammon mentioned this pull request Oct 30, 2025
32 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working lang:java Issues relating to Java language support lang:kotlin Related to Kotlin lang support module:tooling Changes and issues relating to the Elide `tooling` module tools:builder Stuff relating to Elide's builder tools:install Things related to Elide's dependency installer

Projects

Status: Done

3 participants