Skip to content

Latest commit

 

History

History
76 lines (64 loc) · 6.23 KB

RELEASING.md

File metadata and controls

76 lines (64 loc) · 6.23 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 with a date set (1st of next month)
  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 artifactoryPublish - See below for credential requirements
  6. Promote the binaries from oss.jfrog.org to Bintray and Maven Central
    1. Go to https://oss.jfrog.org/webapp/builds/ratpack/?6
    2. To log in use your Bintray username and Bintray API key
    3. Find the build you just uploaded (you should be able to tell by the version number). If you sort by "Time Built" desc it will be at the top of the list
    4. Take the buildNumber and run ./gradlew bintrayPublish -PbuildNumber=«buildNumber» -i
    5. Confirm the publish in Bintray - The link to the bintray page is given on the success page of the previous step. Just in case it's: https://bintray.com/ratpack/maven/ratpack/«version»/view/files/io/ratpack
    6. Publish to Maven central - click the 'Maven Central' tab on the Bintray package page
      1. Enter your user/pass - this is your oss.sonatype.org credentials
      2. Click “Close repository when done”
      3. Click “Sync”
  7. Publish Lazybones templates to Bintray: ./gradlew publishAllTemplates - See below for credential requirements.
  8. Publish to Gradle Plugin Portal: ./gradlew publishPlugins -i - See below for credential requirements.

If you run this task more than once you may need to delete the published templates in Bintray first.

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 artifactoryPublish (to push the new snapshot snapshot, so it can be resolved)
  6. Close the Milestone on GitHub
  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. Credentials for oss.jfrog.org
    1. This is your Bintray account - use the Bintray UI to ask for write permissions to the io.ratpack group in oss.jfrog.org
  3. GPG credentials/config
    1. We use the Gradle Signing Plugin to sign the artifacts (we don't let Bintray do this) - 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.
  4. oss.sonatype.org credentials
    1. The sync from Bintray to Central requires an account with oss.sonatype.org
    2. Create an account for oss.sonatype.org
    3. Add a comment to this JIRA ticket with your new account, asking for permission to publish to io.ratpack.
  5. Bintray credentials/config
    1. Lazybones templates are published to Bintray using your Bintray account. You need to be a member of the Ratpack organization with permission to publish to the Lazybones repo.
    2. You also need Bintray credentials to publish to the Gradle Plugin Portal repo. You need to be a member of the Ratpack organization with permission to publish to the gradle-plugins-meta repo.
    3. Create a gradle.properties file in the root of the Ratpack project and add properties for ratpackBintrayUser and ratpackBintrayApiKey with your Bintray details. This file does not get committed.
  6. Gradle Plugin Portal config
    1. Create a Gradle Plugin Portal account at https://login.gradle.org/user/register.
    2. Email [email protected] and ask to be allowed to publish artifacts for io.ratpack.ratpack-java and io.ratpack.ratpack-groovy, provide proof of team membership.
    3. From the Plugin Portal user page, e.g. https://plugins.gradle.org/u/$username, generate API key by click the Generate Publishing Key button.
    4. Copy the generated gradle.publish.key and gradle.publish.secret to ~/.gradle/gradle.properties.