You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the second library, after https://github.com/guardian/etag-caching, to adopt
https://github.com/guardian/gha-scala-library-release-workflow/blob/main/README.md .
The changes required to adopt the automated workflow:
* No need to set `sonatypeProfileName` or `ThisBuild / publishTo`,
that's now done by the workflow.
* Remove the sign, publish, release & push steps of sbt-release's `releaseProcess`
configuration, because the workflow does those now, and the workflow only
wants `sbt release` to create the versioning commits, and tag them appropriately.
The workflow does the rest itself.
* Remove `sbt-pgp` plugin because it's no longer used - the workflow does the signing
using `gpg` directly.
Additionally, we add **automatic version numbering** based on compatibility assessment
performed by `sbt-version-policy`:
* Add the `sbt-version-policy` plugin, to allow it to do the compatibility assessment.
This also sets the `versionScheme` for this library to `early-semver`, which is
the recommended versioning for Scala libraries, and `sbt-version-policy` and
correct sbt-eviction-issue-detection pretty much depend on the `versionScheme`
being `early-semver`. Thus we also need to switch to using a new semver version
number for our library version!
* Add the `releaseVersion := fromAggregatedAssessedCompatibilityWithLatestRelease().value`
sbt setting, which will intelligently set the release version based on `sbt-version-policy`'s
compatibility assessment, thanks to scalacenter/sbt-version-policy#187 .
* Use `publish / skip := true`, rather than other hacks like `publish := {}` or
`publishArtifact := false`, to tell sbt not to publish modules that we don't want published
(typically, the 'root' module) - this is important because `sbt-version-policy` won't
understand those hacks, but _will_ understand `publish / skip := true` means that it doesn't
need to assess compatibility there.
0 commit comments