build: add nebula.release versioning and dependency locking - #68
Open
soloturn wants to merge 1 commit into
Open
Conversation
Same setup as TerasologyLauncher:
- nebula.release 21.0.0 for git-tag-driven versioning. This project already
tags releases as vX.Y.Z (v5.1.0 latest), matching the plugin's default tag
convention, so no extra tagStrategy config is needed.
- buildscript-classpath dependency locking (activateDependencyLocking() on
the buildscript classpath), producing buildscript-gradle.lockfile.
- dependencyLocking { lockAllConfigurations() } on every subproject
(cr-core, cr-destsol, cr-terasology), each getting its own gradle.lockfile
- locking is per-project, so a single shared lockfile isn't how Gradle
does this for a multi-project build. Root project itself has no
resolvable configurations of its own beyond buildscript, so it only
gets the buildscript lockfile.
- Same -PnoLock escape hatch as the launcher: passing it skips
dependencyLocking{} entirely for that build, letting every range resolve
fresh against whatever satisfies it right now - useful for trying out an
update locally before committing to it via --write-locks.
Verified: ./gradlew build (minus test) succeeds with locking active,
lockfiles generated via ./gradlew dependencies --write-locks.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
2 tasks
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.
Adds the same versioning/locking setup TerasologyLauncher already uses.
nebula.release21.0.0 for git-tag-driven versioning. This project already tags releases asvX.Y.Z(v5.1.0latest), matching the plugin's default tag convention, so no extratagStrategyconfig is needed.activateDependencyLocking()on the buildscript classpath), producingbuildscript-gradle.lockfile.dependencyLocking { lockAllConfigurations() }on every subproject (cr-core,cr-destsol,cr-terasology), each with its owngradle.lockfile— locking is per-project, so a single shared lockfile isn't how Gradle does this for a multi-project build. The root project has no resolvable configurations of its own beyondbuildscript, so it only gets the buildscript lockfile.-PnoLockescape hatch as the launcher: passing it skipsdependencyLocking{}entirely for that build, letting every range resolve fresh against whatever satisfies it right now — useful for trying an update locally before committing to it via--write-locks.Test plan:
./gradlew build -x testsucceeds with locking active./gradlew dependencies --write-locks(root) and./gradlew :cr-core:dependencies :cr-destsol:dependencies :cr-terasology:dependencies --write-locks(subprojects)