jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Jackrabbit > Creating Releases
Date Mon, 28 Jan 2013 11:33:00 GMT
Space: Apache Jackrabbit (https://cwiki.apache.org/confluence/display/JCR)
Page: Creating Releases (https://cwiki.apache.org/confluence/display/JCR/Creating+Releases)

Edited by Jukka Zitting:
This is a how to document for creating Apache Jackrabbit releases. It documents the current
release process and needs to be updated as we move forward.

h2. Release planning

Jackrabbit releases are created based on user demand and the availability of fixes and other
requested changes. Any committer can declare their plan to cut a release by sending a "Apache
Jackrabbit x.y.z release plan" message to the dev@ list. The plan should refer to Jira for
the list of fixes to be included in the release and give a rough estimate of the release schedule.
It's OK to revise the plan if needed.

If you're not a committer, you can send a message to the mailing list asking for a new release
to be made. Including the list of specific fixes you need and a short rationale of why you
need the release.

h2. Prerequisites for release managers

You need to be a Jackrabbit committer to prepare and perform a release, but anyone is welcome
to help test the release candidates and comment on the release plans.

You should have a code signing key that is included in the Jackrabbit KEYS file. See [Appendix
A|#AppendixA] at the end of this page for more details.

You also need to tell Maven your Subversion credentials needed for deploying artifacts to
the Nexus server at https://repository.apache.org/. See 
[Appendix B|#AppendixB] for the required settings.

h2. Release management tasks

# Make sure that an appropriate version for the release is entered in Jira and that all the
related issues have been resolved.
# Create a {{RELEASE-NOTES.txt}} file in the root folder of the project to be released. If
such a file already exists, update it for the release. When done, commit the file. See [previous
release notes|https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10591&version=12319480]
for examples of what to include. The release note report in Jira is a useful source of required
# Build and deploy the release artifacts with Maven. See [below|#ReleaseArtifacts] for the
exact steps.
# Close the [staged repository|https://repository.apache.org/index.html#stagingRepositories]
on repository.apache.org.
# Upload the artifacts to https://dist.apache.org/repos/dist/dev/jackrabbit/ (instructions
at the end of the build)
  cd /path/to/jackrabbit-dev
  scp -r /path/to/jackrabbit/target/checkout/target/$version $version
  svn add $version
  svn commit -m "Apache Jackrabbit $version release candidate" $version
# Start the vote thread, wait 72 hours. See the vote template generated by the Maven build.
# If the vote fails (easy case first) remove the tag from svn and drop the staged repository
- done
# If the vote is successful
 ## close the vote by publishing the results
 ## copy the release candidate from dev/jackrabbit to release/jackrabbit in https://dist.apche.org/repos/dist/,
and delete any older releases from the same branch (they're automatically archived), 
  svn move -m "Apache Jackrabbit $version" \
      https://dist.apache.org/repos/dist/dev/jackrabbit/$version \
 ## release the [staged repository|https://repository.apache.org/index.html#stagingRepositories]
for synchronization to Maven central.
 ## mark the version as released in Jira: [Jira Project Home|https://issues.apache.org/jira/browse/JCR]
-> Project Summary -> Administer Project. Under Versions, click <More>. You'll
see all the defined project versions. From the settings menu, choose 'Release' on the version.
 ## close all the issues included in the release: [Jira Project Home|https://issues.apache.org/jira/browse/JCR]
-> Change Log -> Choose the released version. From the issue list you have the option
to bulk update all of the included issues. Just 'Transition Issues' from 'Resolved' to 'Closed'
and you are done!
# Update the Jackrabbit web site to point to the new release.
# Send the release announcement once the web site and download mirrors have been synced.

h2. Steps to build the release artifacts 

The release is built using the Maven release plugin. See the [Releasing a Maven project|http://maven.apache.org/developers/release/releasing.html]
guide for more details. Make sure you have added the pgp key information in you maven settings
file, especially if you have more than one key installed locally. See [Appendix B|#AppendixB]
for the details.

# Execute {{mvn release:prepare}}. This will update the POM files and tag the release in svn.
# Execute {{mvn release:perform}}. This will build the tagged release and deploy the artifacts
to a staging repository on repository.apache.org. The non-Maven release artifacts are automatically
deployed to your home directory on people.apache.org. You only need to add the keyname if
you have multiple keys and the code signing keys is not your default key.

h2. Related Links

* http://www.apache.org/dev/release.html
* http://www.apache.org/dev/release-signing.html
* http://wiki.apache.org/incubator/SigningReleases
* http://www.apache.org/dev/repository-faq.html

h2. Appendix A: Create and add your key to the Jackrabbit KEYS file 

Follow these instructions to generate your code signing key and to add it to the Jackrabbit
KEYS file.

# [Generate a code signing key|http://www.apache.org/dev/release-signing.html#generate] using
your @apache.org address as the email and "CODE SIGNING KEY" as the comment.
# The Jackrabbit KEYS file is managed in https://svn.apache.org/repos/asf/jackrabbit/dist/KEYS.
To modify the file, first checkout the dist directory:
svn checkout https://svn.apache.org/repos/asf/jackrabbit/dist
# See the beginning of the KEYS file for instructions on how to append your key to the file.
# Once you've committed the changes, update the KEYS file on {{people.apache.org}}:
umask 002; svn update /www/www.apache.org/dist/jackrabbit
# You are *DONE*, but to see the changes on http://www.apache.org/dist/jackrabbit/KEYS you
must wait 2 hours

You should get your key [linked to the Apache web of trust|http://www.apache.org/dev/release-signing.html#apache-wot].
Once other people have signed your key, you can update the KEYS file with the signatures you've

h2. Appendix B: Maven settings 

    <!-- To deploy a Jackrabbit snapshot -->
      <username> <!-- YOUR APACHE SVN USERNAME --> </username>
      <password> <!-- YOUR APACHE SVN PASSWORD --> </password>
    <!-- To stage a Jackrabbit release -->
      <username> <!-- YOUR APACHE SVN USERNAME --> </username>
      <password> <!-- YOUR APACHE SVN PASSWORD --> </password>
          <gpg.keyname><!-- enough of the key id to id it --></gpg.keyname>

          <!-- pick one of the following -->

          <!-- either you feel comfortable with the passphrase on disk -->
          <gpg.passphrase><!-- your passphrase for your gpg key goes here--></gpg.passphrase>

          <!-- or you use an agent-->


Change your notification preferences: https://cwiki.apache.org/confluence/users/viewnotifications.action

View raw message