Skip to content

Latest commit

 

History

History
71 lines (71 loc) · 4.14 KB

RELEASING.md

File metadata and controls

71 lines (71 loc) · 4.14 KB
  • Choose the right version number:
    • x.0.0 is reserved for incompatible changes and require a milestone cycle.
    • x.y.0 is reserved for compatible changes.
    • x.y.z is reserved for bugfixes that don't change the public API, the SemanticDB schema and major/minor versions of our dependencies.
    • For more details, consult versioning policy.
  • Tag the release:
    • The tag must be called vx.y.z, e.g. v3.0.0.
    • git tag -a vx.y.z -m "vx.y.z"
    • git push upstream --tags
    • Do not create a release on GitHub just yet. Creating a release on GitHub sends out a notification to repository watchers, and the release isn't ready for that yet.
  • Wait for the Travis CI job in Active Branches to build the binaries and stage them to Sonatype.
  • While waiting for Travis, update the milestones:
    • https://github.com/scalameta/scalameta/milestones
    • Close the milestone or milestones corresponding to the release. For example, for 3.3.0, we closed both 3.2.1 and 3.3.0 (we never released 3.2.1, so all its tickets went straight to 3.3.0).
    • Create the milestone or milestones corresponding to future releases. For example, for 3.3.0, we created both 3.3.1 and 3.4.0.
  • While waiting for Travis, draft a release on GitHub:
    • https://github.com/scalameta/scalameta/releases/new.
    • In the dropdown, pick the recently pushed tag.
    • In the release title, say Scalameta vx.y.z.
    • Write the release notes using 3.7.0 release notes as a template. In the future, we may automate this step.
    • Click "Save draft". The release is still not ready for an announcement, so we shouldn't "Publish release" just yet.
  • Finalize the release on Sonatype:
    • sbt sonatypeReleaseAll
    • Alternatively:
      • Go to Staging Repositories.
      • Close the repositories that have been created by the Travis CI job. There can be several respositories produced by the job.
      • Release the repositories.
  • Verify the Sonatype release:
  • Update the website:
  • Update the SemanticDB guide:
  • Publish the release on GitHub:
  • Verify the Maven Central release:
  • Upgrade the downstream projects: