|
| 1 | +# Dropwizard Release Process |
| 2 | + |
| 3 | +This document describes the technical aspects of the Dropwizard release process. |
| 4 | + |
| 5 | +## Who is responsible for a release? |
| 6 | + |
| 7 | +A release can be performed by any member of the Dropwizard project with the commit rights to the repository. |
| 8 | +The person responsible for the release MUST seek an approval for it in the `dropwizard-committers` |
| 9 | +mailing list beforehand. |
| 10 | + |
| 11 | +## Prerequisites for a new maintainer |
| 12 | + |
| 13 | +* Register an account in the Sonatype's [Jira](https://issues.sonatype.org) |
| 14 | +* Create a Jira ticket asking to obtain the right permissions to push artifacts belonging |
| 15 | +to the `io.dropwizard` group. |
| 16 | +* Write an email to @joschi or @carlo-rtr, so they can approve the request in the Jira ticket. |
| 17 | +* Generate a gpg key with an email linked to your Github/Sonatype account |
| 18 | +`gpg --gen-key` |
| 19 | +* Distribute the key |
| 20 | +`gpg --keyserver hkp://pgp.mit.edu --send-keys XXXX` # XXXX - the code of the generated key |
| 21 | + |
| 22 | +## Performing a release |
| 23 | + |
| 24 | +* Edit `docs/source/about/release-notes.rst` and set the release date; |
| 25 | +* Edit `docs/source/about/docs-index.rst` and set the link to the release docs; |
| 26 | +* Run `mvn release:prepare` in the master branch; |
| 27 | +* Observe that all tests passed, there is no build errors and the corresponding git tag was created; |
| 28 | +* Run `mvn release:perform -Dgoals=deploy`; |
| 29 | +* Login at Sonatype's OSS Nexus `https://oss.sonatype.org`; |
| 30 | +* Click "Staging repositories"; |
| 31 | +* Find the `io.dropwizard` group, and click on the close button on the top bar; |
| 32 | +* Wait while the Nexus server will perform some checks that artifacts were uploaded correctly; |
| 33 | +* Click the refresh button; |
| 34 | +* Select `io.dropwizard` again, and hit the release button on the top bar; |
| 35 | +* Normally the release will be available in the Maven Central repository in 3-4 hours (this may vary depending on the |
| 36 | +indexing process). |
| 37 | +* Publish the documentation. Run the script `prepare_docs.sh` and verify it completed successfully. |
| 38 | +Push the changes to the remote `gh-pages` branch. |
| 39 | + |
| 40 | +## Making an announcement |
| 41 | + |
| 42 | +After the release has been uploaded to the repository and the documentation has been updated, a release announcement |
| 43 | +should be published in the `dropwizard-user` and `dropwizard-dev` mailing lists. There is no formal structure for |
| 44 | +the announcement, but generally it should contain a short description of the release, the artifact coordinates in the |
| 45 | +Maven Central, a link to documentation, a link to the release notes, and a link to the bug tracker. |
0 commit comments