Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adopt GHA Scala Library Release Workflow #44

Merged
merged 8 commits into from
Feb 21, 2024

Commits on Feb 20, 2024

  1. Adopt GHA Scala Library Release Workflow

    This replaces the old release process which had developers manually running
    `sbt release` on their own laptops - each developer had to obtain their own
    PGP key and Sonatype credentials, which was an elaborate & fiddly process.
    
    Now there's a single set of release credentials, available through GitHub
    Organisation Secrets, like we already have with NPM.
    
    The changes required to adopt the automated workflow:
    
    * No need to set these sbt configuration keys, as they're now taken
      care of by the workflow:
      * `scmInfo` & `pomExtra`
      * `homepage`
      * `developers`
      * `releasePublishArtifactsAction`
      * `publishTo`
    * Remove the 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.
    * Grant this repo access to the GitHub Organisation Secrets containing the Maven Release
      credentials with guardian/github-secret-access#21
    
    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` & 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 .
    
    This change also drops support for Scala 2.11 since it does not seem to support the -release:11 scalac option which is required to ensure that the Java 17 workflow produces Java 11 compatible bytecode.
    davidfurey committed Feb 20, 2024
    Configuration menu
    Copy the full SHA
    7bf5fce View commit details
    Browse the repository at this point in the history
  2. Link to screenshots and video

    Co-authored-by: Roberto Tyley <roberto.tyley@gmail.com>
    davidfurey and rtyley committed Feb 20, 2024
    Configuration menu
    Copy the full SHA
    1750825 View commit details
    Browse the repository at this point in the history
  3. More concise license

    Co-authored-by: Roberto Tyley <roberto.tyley@gmail.com>
    davidfurey and rtyley committed Feb 20, 2024
    Configuration menu
    Copy the full SHA
    8e0dfd3 View commit details
    Browse the repository at this point in the history
  4. Add Scala support badge

    Co-authored-by: Roberto Tyley <roberto.tyley@gmail.com>
    davidfurey and rtyley committed Feb 20, 2024
    Configuration menu
    Copy the full SHA
    b8e5176 View commit details
    Browse the repository at this point in the history
  5. Add missing permissions

    davidfurey committed Feb 20, 2024
    Configuration menu
    Copy the full SHA
    bddb8f2 View commit details
    Browse the repository at this point in the history
  6. Remove jcenter resolver

    davidfurey committed Feb 20, 2024
    Configuration menu
    Copy the full SHA
    5577f08 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a92ef29 View commit details
    Browse the repository at this point in the history
  8. Bump to latest sbt

    mainly to get license.apache2 constant
    davidfurey committed Feb 20, 2024
    Configuration menu
    Copy the full SHA
    5b7cc66 View commit details
    Browse the repository at this point in the history