Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable basic plugins via cli toolchain #1251

Draft
wants to merge 31 commits into
base: master
Choose a base branch
from

Conversation

restingbull
Copy link
Collaborator

@restingbull restingbull commented Dec 23, 2024

This helps define the toochain api by separating the assembly of artifacts from the compilation.

  • Stacks on top of the 2.1.0 update.
  • Noves plugin machinery to the src/main/starlark. May consider moving the rules (e.g. artifact orchestration) back to kotlin and keeping the implementation in src. Either way, the plugins do not belong under jmv.

Suggestions requested.

Given that Kotlin 2.1.0 now has a version metadata check during compilation, the idea of bootstrapping kotlin by using the previous is pretty much dead. Probably not the worst thing, as bzlmod did not enjoy the shennanigans necessary to make it work.

This adds a new "cli" toolchain that invokes kotlinc via the established command line interface. Additionally, it sketches out a simpler, more contained toolchain api to build the more complex usecases (such as multiplex workers, jdeps, compiler plugins, etc.) on top of. the end goal is a more agile rule approach -- with the performance optimization (jdeps, class path reductions, etc) tucked behindthe simple api.Compiler plugins, linting, and the like should be able to live comfortably in the "production" rule and toolchain combinations.

It also introduces new "core" rules, while limited in scope, should be IDE friendly and generally easier to work with than the previous bootstrapping effort -- and since they use the common providers, they will interoperate with the existing rules.
Still some outstanding issues iwth the core rules test.
This helps define the toochain api by separating the assembly of artifacts from the compilation.
@restingbull restingbull marked this pull request as draft December 23, 2024 22:21
Base automatically changed from restingbull/bootstrap-again to master December 24, 2024 17:00
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.

1 participant