Skip to content

Latest commit

 

History

History
55 lines (43 loc) · 3.83 KB

RELEASING.md

File metadata and controls

55 lines (43 loc) · 3.83 KB

Release instructions.

(a) - denotes something that is a candidate for automation

Release announcement

In-progress release notes during the cycle of development should have been written in release-notes.md. Review these notes and edit as needed. You can use Markdown. The only truly mandatory requirement is to mention all contributors.

When you've got the release announcement set, copy it to the description of the GitHub milestone, but don't close the milestone yet.

Pre

  1. Ensure there is a next (version after what is being released) milestone on GitHub
  2. Check that there are no outstanding reviews for commits for the current versions, or at least that any issues don't block the release
  3. Check that there are no outstanding issues/pull requests for the development version (either implement or move them to next milestone)
  4. (a) Ensure that there are no -SNAPSHOT dependencies (or if there are, that there is good reason for them)
  5. Ensure the the build is passing (i.e. run ./gradlew clean build)

Go time…

  1. (a) Update the version property in ratpack.gradle (i.e. drop the -SNAPSHOT)
  2. Ensure the the build is still passing (i.e. run ./gradlew clean build) - really isn't needed, but doesn't hurt
  3. Commit with message “Version «number»”
  4. Tag commit with name “v«number»” (don't push yet)
  5. Build and upload the binaries: ./gradlew publishToSonatypeOss closeAndReleaseSonatypeOssStagingRepository - See below for credential requirements
  6. Publish to Gradle Plugin Portal: ./gradlew publishPlugins - See below for credential requirements.

Post

  1. (a) Update version property in ratpack.gradle (i.e. increment the patch number and add -SNAPSHOT)
  2. Update the manualVersions list in ratpack-site.gradle so the new manual is included in the site
  3. (a) Update release-notes.md to remove the content specific to the freshly-completed release (i.e. set it back to a fresh template)
  4. Commit with message 'Begin version «version»', and push (make sure you push the tag)
  5. Run ./gradlew clean publishToSonatypeOss
  6. Add the Due Date to the Milestone in GitHub and close it
  7. Copy the release announcement to the GitHub tag description on the GitHub releases page and publish the release
  8. Get a tweet out about the release
  9. For all example projects (example-ratpack-gradle-java-app, example-ratpack-gradle-groovy-app, example-books):
    1. Update master branch to use the latest released version
    2. Merge latest branch into master to pick up any fixes for breaking changes in the released version

Credentials needed

  1. Ability to edit milestones for the ratpack/ratpack GitHub project (it might be that only admins can do this, not sure)
  2. GPG credentials/config
    1. We use the Gradle Signing Plugin to sign the artifacts - See the Gradle docs for how to set this up
    2. One gotcha is forgetting to distribute your public key. See here for more info. If you don't do this you will get problems when syncing to Maven central.
  3. oss.sonatype.org credentials
    1. Create an account for oss.sonatype.org
    2. Add a comment to this JIRA ticket with your new account, asking for permission to publish to io.ratpack.
    3. Add to ~/.gradle/gradle.properties as ratpackOssrhUsername and ratpackOssrhPassword
  4. Gradle Plugin Portal config
    1. Access to the ratpack_team publish key and secret. (Ask John or Jeff)