Sample versioning:
SNAPSHOT |
RELEASE |
|---|---|
1.0.0-SNAPSHOT |
1.0.0 |
1.1.0-SNAPSHOT |
1.1.0 |
1.1.1-SNAPSHOT |
1.1.1 |
1.1.2-SNAPSHOT |
1.1.2 |
2.0.0-SHAPSHOT |
2.0.0 |
To prepare and perform a release you must be at least at Apache Karaf Committer.
Your settings.xml should look like:
<settings>
...
<profiles>
<profile>
<id>release</id>
<properties>
<gpg.passphrase> <!-- YOUR KEY PASSPHRASE --> </gpg.passphrase>
</properties>
</profile>
</profiles>
...
<servers>
<!-- To publish a snapshot of some part of Maven -->
<server>
<id>apache.snapshots.https</id>
<username> <!-- YOUR APACHE SVN USERNAME --> </username>
<password> <!-- YOUR APACHE SVN PASSWORD --> </password>
</server>
<!-- To stage a release of some part of Maven -->
<server>
<id>apache.releases.https</id>
<username> <!-- YOUR APACHE SVN USERNAME --> </username>
<password> <!-- YOUR APACHE SVN PASSWORD --> </password>
</server>
...
</servers>
</settings>
|
In the lead up towards a release candidate the user base should be given some notification.
In the case of dot zero release a new maintenance branch may be created with trunk continuing new development. The maintenance branch may be used for stabilization of the code base before a release candidate is cut. A notification message to the dev & user lists may be warranted.
To: "Karaf Developers List" <dev@karaf.apache.org> Subject: [NOTICE] Karaf trunk branched to create X.Y.0 maintenance branch. Hi, We've just branched off X.Y.0 from trunk and started to stabilize it; latest artifacts are available via apache-snapshot repo... simply add the following repo to your pom, change the version to and provide us with feedback. <<insert short description of the reason for branching here>> Thanks, -The Karaf team |
A few weeks later the following message would be sent:
To: "Karaf Developers List" <dev@karaf.apache.org> Subject: [UPDATE] Karaf X.Y.0 release branch status. Hi, Thanks for all your feedback; we've fixed XX bugs/problems on the release branch and will start a release about next week; Thanks again for all your contributions. -The Karaf Team |
svn co https://svn.apache.org/repos/asf/karaf/trunk |
mvn release:prepare -DdryRun |
$ mvn deploy ... [INFO] [deploy:deploy] [INFO] Retrieving previous build number from apache.snapshots.https ... |
mvn release:clean mvn release:prepare |
mvn release:perform |
Propose a vote on the dev list with the closed issues, the issues left, and the staging repository - for example:
To: "Karaf Developers List" <dev@karaf.apache.org> Subject: [VOTE] Release Karaf version X.Y.Z Hi, We solved N issues in this release: http://issues.apache.org/jira/... There are still some outstanding issues: http://issues.apache.org/jira/... Staging repository: https://repository.apache.org/content/repositories/karaf-staging-[YOUR REPOSITORY ID]/ Please vote to approve this release: [ ] +1 Approve the release [ ] -1 Veto the release (please provide specific comments) This vote will be open for 72 hours. |
From Votes on Package Releases:
Votes on whether a package is ready to be released follow a format similar to majority approval - except that the decision is officially determined solely by whether at least three +1 votes were registered. Releases may not be vetoed. Generally the community will table the vote to release if anyone identifies serious problems, but in most cases the ultimate decision, once three or more positive votes have been garnered, lies with the individual serving as release manager. The specifics of the process may vary from project to project, but the 'minimum of three +1 votes' rule is universal.
The list of binding voters is available at http://karaf.apache.org/team.html
.
If the vote is successful, post the result to the dev list - for example:
To: "Karaf Developers List" <dev@karaf.apache.org> Subject: [RESULT] [VOTE] Release Karaf version X.Y.Z Hi, The vote has passed with the following result : +1 (binding): <<list of names>> +1 (non binding): <<list of names>> I will copy this release to the Karaf dist directory and promote the artifacts to the central Maven repository. |
If the vote fails, or you decide to redo the release:
If the vote passes:
For the last two tasks, it's better to give the mirrors some time to distribute the uploaded artifacts (one day should be fine). This ensures that once the website (news and download page) is updated, people can actually download the artifacts.
Go to Admin section on the Karaf JIRA and mark the X.Y.Z version as released - create version X.Y.Z+1, if that hasn't already been done.
To: "Karaf Developers List" <dev@karaf.apache.org>
Subject: [ANN] Karaf version X.Y.Z Released
The Karaf team is pleased to announce the release of Karaf version X.Y.Z
<<insert short description of important updates>>
http://karaf.apache.org/
This release is available from http://karaf.apache.org/downloads and Maven:
<dependency>
<groupId>org.apache.karaf</groupId>
<artifactId>org.apache.karaf.XXX</artifactId>
<version>X.Y.Z</version>
</dependency>
Release Notes:
<<insert release notes in text format from JIRA>>
Enjoy!
-The Karaf team
|
Remember to forward this announcement to users@karaf.apache.org - try not to cross-post (CC announcements to both user and dev lists.
Please add a simple blog entry to the Karaf news feed, you may use the following format:
The Karaf team is pleased to announce the availability of Karaf X.Y.Z. This release includes a number of new features, improvements and bug fixes. (Adjust to reflect motivation behind release) For more information, please see the release notes. |