Package io.github.joke.conventionalversion
A settings plugin rather than a project plugin because isolated projects forbids cross-project
model access, so a project plugin would have to read git once per project with nowhere to share the
answer. Settings.gradle.lifecycle.beforeProject is the sanctioned replacement for
allprojects and gives one calculation for any number of projects.
Unit tested and mutation tested like any other package. Being wiring does not put it out of reach: the action this package hands to Gradle is a named type, instantiated and invoked directly by its spec, so what it does to a project is asserted here rather than inferred from a real build.
Nothing in this project executes a Gradle build under test. Configuration cache and isolated
projects compatibility rest on construction and review: git is read through a ValueSource
so the cache re-evaluates it, and AssignVersion declares
everything it captures. Neither property is verified by execution - see that class for what that
has already cost once.
-
ClassDescriptionAssigns each project the version of the package that claims it.Assigns every project in the build the version of the release-please package that claims it.Raises every member of a linked group to the highest version any member calculated.Every package's version, and the answer for anything no package claims.One package and what it resolved to.What the calculation concluded, readable from any project's build logic.Reads git and release-please's configuration, then calculates every package's version.