Releasing Flyway (Committers only)
Prequesites
- GPG installed, available on the PATH and a key generated
(see the Sonatype OSS Maven Repository Usage Guide)
- A checkout of Flyway HEAD
- Maven settings.xml contains
- credentials for Sonatype OSS Repo Hosting
- credentials for Google App Engine
- the GPG passphrase key:
<settings>
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>myuser</username>
<password>XXX</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>myuser</username>
<password>XXX</password>
</server>
<server>
<id>flyway-sample-appengine</id>
<username>myemail@address.com</username>
<password>XXX</password>
</server>
</servers>
<profiles>
<profile>
<id>flyway-release</id>
<activation>
<property>
<name>releaseVersion</name>
</property>
</activation>
<properties>
<gpg.passphrase>XXX</gpg.passphrase>
</properties>
</profile>
</profiles>
</settings>
Required Steps
- Checkout the latest version of flyway/flyway-release
- Invoke release.cmd <<version>>
- Once the release completes, the artifacts must be promoted to Maven Central by logging in to https://oss.sonatype.org/
- We select Staging Repositories on the left and tick the checkbox in front of the open org.flywaydb repository
- We then close it (without message) and release it (without message)
- The site must be now be updated by putting the new version number in _config.yml of flywaydb.org
- We also update the Release Notes by changing the Unreleased Version in the new version with the date of today
- The newly released version should also be removed from the Roadmap
- Remove the old javadoc from the site by deleting everything under /documentation/api/javadoc
- Copy the new javadoc from flyway-release/flyway/flyway-core/target/apidocs to /documentation/api/javadoc
- Copy the new sbt plugin from flyway-release/flyway/flyway-sbt/target/scala-2.10/sbt-0.13 to /repo/org/flywaydb/flyway-sbt_2.10_0.13/<<version>>
- Any remaining documentation changes to reflect changes in the code, must now be made to the site
- Write a release announcement for the blog
- Attach the release highlights to the GitHub tag
- Close the GitHub milestone
- Great, we're done ! We can now announce it on Twitter!
- Update the StackOverflow tag for any new functionality
- Update Wikipedia with the correct version