...
-
Verify the to-be-released version identifier exists in the META-INF/spring.schemas mappings file AND activemq-osgi/src/main/resources/META-INF/spring.schemas file, if not add it and commit. It should contain:
Code Block |
http\://activemq.apache.org/schema/core/activemq-core-${pom.version}.xsd=activemq.xsd |
-
Verify headers with rat
Code Block |
mvn -e apache-rat:check
grep -e ' !?????' target/rat.txt -- will show any files without licenses
|
-
Do a release dry run to check for problems
Code Block |
mvn release:prepare -DdryRun=true
|
Check that you are happy with the results. The poms for the proposed tags will be in pom.xml.tag. When you like the results, clean up:
Code Block |
mvn release:clean
|
-
Prepare the release
Code Block |
mvn release:prepare
|
This will create the tag in git and leave various stuff around locally to direct the perform phase.
-
Make a local copy of the release configuration in case something goes wrong
Code Block |
cd ..
cp -r activemq-release activemq-release-prepared
cd activemq-release
|
-
Perform the release to the staging repo
Code Block |
mvn release:perform
|
This uses both the activemq release profile which directs building source jars, javadoc jars, and signing everything, and also the settings release profile that says where to
put stuff and how to sign it.
- Close the staging repository
Quote from the Maven release guide for Apache projects
Login to https://repository.apache.org using your Apache LDAP credentials. Click on "Staging". Then click on "maven" in the list of repositories. In the panel below you should see an open repository that is linked to your username and ip. Right click on this repository and select "Close". This will close the repository from future deployments and make it available for others to view. If you are staging multiple releases together, skip this step until you have staged everything. Enter the name and version of the artifact being released in the "Description" field and then click "Close". This will make it easier to identify it later.
See the image in the original guide for more info.
- Verify staged artifacts
Quote from the original guide
If you click on your repository, a tree view will appear below. You can then browse the contents to ensure the artifacts are as you expect them. Pay particular attention to the existence of *.asc (signature) files. If the you don't like the content of the repository, right click your repository and choose "Drop". You can then rollback your release and repeat the process.
Note the repository URL, you will need this in your vote email.
-
Build the site from the tag that release:perform checked out into target/checkout in the previous step.
Note that the -Prelease profile is needed to specify the profile in settings.xml that configures the staging location.
Code Block |
cd target/checkout
mvn site -Prelease |
-
Populate the Javadocs site in svn
No Format |
svn co https://svn.apache.org/repos/infra/websites/production/activemq/content
cd content/maven
mkdir <version>
#copy over apidocs folder that was created by the site plugin to <version>/apidocs
svn add <version>
svn rm apidocs
ln -s <version>/apidocs apidocs
svn add apidocs
# and commit once it looks good. |
-
Stage the official release artifacts in the SVN dist dev area for folks to test and vote on, using the helper script already in the repo:
No Format |
svn co https://dist.apache.org/repos/dist/dev/activemq/activemq/
cd activemq
./prepare-release.sh <nexus-staging-repo-url> <version>
# Example: ./prepare-release.sh https://repository.apache.org/content/repositories/orgapacheactivemq-1149 5.15.1
svn add <version>
and commit once it looks good. |
- Call a vote on the dev list, listing the great new features of the release.
...
- Promote the release (i.e. release the staging repository): login to https://repository.apache.org, navigate to the staging repository and click the "release" button.
-
After it passes, copy Copy the staged release files from the SVN dist dev folder to the SVN dist release folder: https://dist.apache.org/repos/dist/release/activemq/
No Format |
svn cp -m "add files for activemq-<version>" https://dist.apache.org/repos/dist/dev/activemq/activemq/<version> https://dist.apache.org/repos/dist/release/activemq/<version>
# Example: svn cp -m "add files for activemq-5.15.1" https://dist.apache.org/repos/dist/dev/activemq/activemq/5.15.1 https://dist.apache.org/repos/dist/release/activemq/5.15.1 |
-
Populate the schema site in svn
No Format |
svn co https://svn.apache.org/repos/infra/websites/production/activemq/content
cd content/schema/core
curl --remote-name-all https://repository.apache.org/content/repositories/releases/org/apache/activemq/activemq-spring/<version>/activemq-spring-<version>{-schema.html,.xsd}{.asc,.asc.md5,.asc.sha1,.sha1,.md5,}
for i in activemq-spring-5.9.0*; do mv -- "$i" "${i//spring/core}"; done;
svn add activemq-core-5.9.0*
svn rm activemq-core.xsd
ln -s activemq-core-5.9.0.xsd activemq-core.xsd
svn add activemq-core.xsd
# and commit once it looks good.
|
- Continue with the Announcing section below
- Created a in progress wiki page for the next release
- Remove any releases from the dist site that are no longer supported and update the wiki page for that release to point to the archives for downloads.
...