Conversation
Add a slimRuntimeClasspath configuration and a slimJar ShadowJar task that produce a minimal executable jar (key-*-slim-exe.jar) without the optional keyext extensions and without the bundled examples, alongside the existing fat shadowJar (key-*-exe.jar). Both jars are built as part of assemble, and the weekly build/release workflow as well as the Jenkins deploy script upload the slim jar, too. Also fix the dist project which referenced the removed key.core.rifl and key.removegenerics modules and was missing a description, which broke Gradle configuration of every build.
wadoon
requested review from
mattulbrich and
unp1
and removed request for
mattulbrich
September 26, 2026 18:35
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.
Summary
Adds a new configuration to
key.uithat produces a slim version of the shadow jar, complementing the existing fat jar:key-*-exe.jar— everything incl. the optionalkeyextextensions andexamples.zip.key-*-slim-exe.jar— a minimal executable jar without the optionalkeyextextension modules (testgen, caching, exploration, slicing, proofmanagement, isabelletranslation) and without the bundledexamples.zip.Implementation
slimRuntimeClasspathconfiguration inkey.ui/build.gradle: the fullruntimeClasspathminus the sixkeyextruntime extensions (and their transitive deps such as scala-isabelle/stringtemplate).slimJarShadowJartask: same wiring asshadowJar(mergeServiceFiles,Main-Class), but built from the slim configuration and excludingexamples.zip.slimJaris wired intoassemble, so a normal build produces both jars..github/workflows/nightlydeploy.yml) andscripts/jenkins/deployAll.shnow build/upload the slim jar as well.Fixes
The
:distproject referenced the removedkey.core.riflandkey.removegenericsmodules and was missing adescription, which broke Gradle configuration of every build. Both issues are fixed.Verification
./gradlew :key.ui:assembleproduces both jars:key-3.1.0-dev-exe.jar(fat, ~58 MB, 22 881 classes)key-3.1.0-dev-slim-exe.jar(slim, ~24 MB, 12 943 classes)examples.zip; service files merged with the built-in key.ui/key.core extensions only.java -jar key-*-slim-exe.jar --helpstarts KeY's CLI.