Skip to content

Latest commit

 

History

History
56 lines (44 loc) · 3.19 KB

RELEASING.md

File metadata and controls

56 lines (44 loc) · 3.19 KB

Releasing

See the prerequisites if this is your first release.

Step 0: Create a new release tracking

  1. Click "new issue";
  2. Opening the raw RELEASING.md content; and
  3. Copying the following release checklist, up to "You are done!", into the new issue and create it.

Release checklist

  • Check CI passes against the latest Scala versions.
  • Draft a new release for the release, allowing GitHub to generate draft release notes automatically.
  • Run git tag -a -s 1.x.y -m 'Version 1.x.y'. The name of the tag should NOT have a v prefix.
  • In sbt run reload and show version to verify the version.
  • In sbt run clean, particularly if you've recently bumped scalaVersion.
  • In sbt run publishSigned. You should start seeing "published mima-.. to https://oss.sonatype.org/service/local/staging/deploy/maven2/..".
  • In sbt run ++2.13 coreJVM/publishSigned coreNative/publishSigned
  • In sbt run ++3.3 coreJVM/publishSigned coreNative/publishSigned
  • Find and close your staging repository. (See Sonatype's Releasing the Deployment guide.)
  • Switch to a branch (e.g. git checkout -b release-1.x.y)
  • In project/plugins.sbt update sbt-mima-plugin.
  • In project/MimaSettings.scala update mimaPreviousVersion & clear out mimaBinaryIssueFilters.
  • In sbt run testStaging WITHOUT reloading first (testStaging adds the staging resolvers & runs reload).
  • Update the version numbers in RELEASING.md
  • Run git add -p and git commit -am 'Update sbt-mima-plugin to 1.x.y' and PR it (gh pr create or hub pull-request). The PR won't pass CI until the release is available on Maven Central. You may poll repo1 directly (note the trailing slash in the URL).
  • Find and release your staging repository.
  • Switch back to the main branch and run git push --follow-tags to push the tag.
  • Find and merge your update PR.
  • Find and hit "Publish Release" on the draft GitHub release.

You are done!

Prerequisites

  • repo push rights
  • publishing credentials for Sonatype, typically in ~/.sbt/1.0/credentials.sbt:
    credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", <username>, <password>)

(Make sure you're not using an ancient version of sbt-pgp in ~/.sbt/1.0/plugins.)