Add Jenesis candidate#775
Merged
Merged
Conversation
marc0der
previously approved these changes
May 18, 2026
## Onboards `jenesis` candidate Adds the `jenesis` candidate per the [vendor onboarding process](https://github.com/sdkman/sdkman-cli/wiki/Vendor-onboarding-process). No versions are inserted in this migration; releases will follow via the vendor API once credentials are provisioned. - Repository: https://github.com/raphw/jenesis - Homepage: https://jenesis.build - License: Apache-2.0 - Distribution: `UNIVERSAL` ## What Jenesis is Jenesis is a Java-native build tool focused on the Java module system. Three properties define it: 1. **Configured in plain Java.** There is no external DSL: no XML, Groovy, or Kotlin script. Build descriptors are regular Java code that compiles against the public `build.jenesis` API. 2. **Zero installation.** The launcher is itself a `.java` source file executed via the JVM's single-file launcher. A clone of the project plus a JDK is the entire setup: no wrapper script, lockfile, or pre-built binary required. 3. **Incremental and cache-friendly.** Builds are expressed as a step DAG with content-addressed inputs. Each step reruns only when its inputs change; unchanged steps are served from cache. Builds are reproducible from a clean clone. The default `Layout.AUTO` inspects the project root: a `module-info.java` selects the modular pipeline, a `pom.xml` selects the Maven-compatible one. The same `java build/jenesis/Project.java` invocation works for both. ## Archive shape The SDKMAN distribution is a well-formed `UNIVERSAL` zip: jenesis-<version>/ ├── bin/ │ ├── jenesis (Unix launcher, exec bit set) │ └── jenesis.bat (Windows launcher) ├── lib/ │ └── build.jenesis-<version>.jar └── LICENSE Both launchers prefer \`JAVA_HOME/bin/java\`, fall back to \`java\` on \`PATH\`, and require Java 25 or newer (printing a readable error otherwise). The bundled jar's module descriptor carries a \`main-class\` attribute, so launch is \`java -p lib -m build.jenesis "\$@"\`.
243aeeb to
8d14c0a
Compare
Contributor
|
Hey Rafael! 👋 Thanks for the PR — Jenesis looks great! Just spotted a quick formatting thing: the Scala code needs to be run through scalafmt to align with the project's style. Per the README, just run: It'll auto-format everything to spec. After that, you're all set! Cheers 🙂 |
Contributor
Author
|
Thanks for the quick feedback and your kind words. I spotted this as quickly as I pushed and force-pushed a fixed commit. |
marc0der
approved these changes
May 18, 2026
Contributor
|
Merged! Thanks for the PR, Rafael — Jenesis is now in the candidate roster. 🎉 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Onboards
jenesiscandidateAdds the
jenesiscandidate per the vendor onboarding process. No versions are inserted in this migration; releases will follow via the vendor API once credentials are provisioned.UNIVERSALWhat Jenesis is
Jenesis is a Java-native build tool focused on the Java module system. Three properties define it:
build.jenesisAPI..javasource file executed via the JVM's single-file launcher. A clone of the project plus a JDK is the entire setup: no wrapper script, lockfile, or pre-built binary required.The default
Layout.AUTOinspects the project root: amodule-info.javaselects the modular pipeline, apom.xmlselects the Maven-compatible one. The samejava build/jenesis/Project.javainvocation works for both.Archive shape
The SDKMAN distribution is a well-formed
UNIVERSALzip:Both launchers prefer
JAVA_HOME/bin/java, fall back tojavaonPATH, and require Java 25 or newer (printing a readable error otherwise). The bundled jar's module descriptor carries amain-classattribute, so launch isjava -p lib -m build.jenesis "\$@".