Here you will find a collection of notes and instructions on doing a release of Apache MetaModel. The page is largely written by Release Engineers (RE) as a note document while conducting releases.
First, some useful links of inspiration to this release guide:
General info: http://incubator.apache.org/guides/releasemanagement.html
Java release: http://incubator.apache.org/guides/release-java.html
Hands-on guide: https://www.apache.org/dev/publishing-maven-artifacts.html
Example release guide from another project: http://incubator.apache.org/odftoolkit/odftoolkit-release-guide.html (double check prerequisites)
NOTE: This page is still in construction
First time release engineers
- You need to have published a public PGP key.
See chapter 'HOW DO YOU UPLOAD A KEY TO A PUBLIC KEY SERVER?' on http://www.apache.org/dev/release-signing.html
You need to have added your public key to the MetaModel KEYS file on SVN: https://dist.apache.org/repos/dist/release/metamodel/KEYS
Set <server> elements in Maven's settings.xml:
<!-- To publish a snapshot of some part of Maven --> <server> <id>apache.snapshots.https</id> <username>APACHE_USERNAME</username> <password>APACHE_PASSWORD</password> </server> <!-- To stage a release of some part of Maven --> <server> <id>apache.releases.https</id> <username>APACHE_USERNAME</username> <password>APACHE_PASSWORD</password> </server>
Step-by-step guide
- Check the CHANGES.md file - it should be up to date and it should refer to the version number that you're about to release.
- Stage a release:
> mvn clean > mvn release:prepare -Dusername=APACHE_USERNAME -Dpassword=APACHE_PASSWORD > mvn release:perform -Dusername=APACHE_USERNAME -Dpassword=APACHE_PASSWORD
Go to Nexus (https://repository.apache.org), log in and select the repo. Close it.
Call for a VOTE in the MetaModel dev@ mailing list. Here's an example email you can use as a template:
Subject: [VOTE] Apache Metamodel release [VERSION]
Hi All,Please vote on releasing the following candidate as Apache Metamodel version [VERSION]. The Git tag to be voted on is MetaModel-[VERSION]:
https://gitbox.apache.org/repos/asf?p=metamodel.git;a=tag;h=[COMMIT_ID] The source artifact to be voted on is: http://repository.apache.org/content/repositories/[REPOSITORY_ID]/org/apache/metamodel/MetaModel/[VERSION]/MetaModel-[VERSION]-source-release.zip Parent directory (including MD5, SHA1 hashes etc.) of the source is: http://repository.apache.org/content/repositories/[REPOSITORY_ID]/org/apache/metamodel/MetaModel/[VERSION]/ Release artifacts are signed with the following key: https://people.apache.org/keys/committer/[APACHE_USERNAME].asc Release engineer public key id: [PUBLIC KEY] The staging Maven repository for this release can be found at: http://repository.apache.org/content/repositories/[REPOSITORY_ID] Please vote on releasing this package as Apache MetaModel [VERSION]. The vote is open for 72 hours. [ ] +1 Release this package as Apache MetaModel [VERSION] [ ] -1 Do not release this package because ... Thank you in advance for participating. Regards, [YOUR NAME]
Once the voting period has passed, send out a RESULT email with the vote results. Here is a template for that:
Subject: [RESULT] [VOTE] Release Apache Metamodel [VERSION]
Hi everyone,
I'm happy to be able to tell that the VOTE for releasing Apache MetaModel [VERSION] has passed with [NUMBER] votes ([NUMBER] binding).
[LIST OF PMCs *]
[LIST OF OTHER VOTERS]
* - indicates PMC
Thank you to everyone who participated.
Best regards,
[YOUR NAME]
- Finalize the release with these steps:
- Go back to the Nexus, select the repository and click the "Release" button.
- Upload source and binaries and checksums etc. to https://dist.apache.org/repos/dist/release/metamodel via SVN (reuse the existing folder structure) -
- Sources can be found in
/target/checkout/target/MetaModel-[VERSION]-source-release.zip
of the project after releasing Binary zip with everything can be found in
/target/checkout/full/target/MetaModel-full-[VERSION]-packaged.zip
of project after releasing
- Sources can be found in
- Update the website:
- Wait for download mirrors to be in sync (up to 24 hours)
- Update maven dependency example in the index.html file of our website
- Front page image may change (if new modules available). Source powerpoint (screenshot at 100% resolution) here: http://metamodel.apache.org/img/datastore-types.pptx
- Update download links
Upload new javadocs to http://metamodel.staging.apache.org/apidocs. Generate with mvn javadoc:aggregate.
- (Optionally / less important) update the DOAP file in the git repo root (doap_MetaModel.rdf).