This is an automated email from the ASF dual-hosted git repository.
mattrpav pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-website.git
The following commit(s) were added to refs/heads/main by this push:
new 0e897f700 Update the release guide (#184)
0e897f700 is described below
commit 0e897f700031282914dcc0cf9dba02fcaeb73a5b
Author: JB Onofré <[email protected]>
AuthorDate: Mon Aug 3 19:51:10 2026 +0200
Update the release guide (#184)
* Update the release guide
* Update the release branch naming
---
.../classic/documentation/release-guide.md | 288 ++++++++++-----------
1 file changed, 140 insertions(+), 148 deletions(-)
diff --git a/src/components/classic/documentation/release-guide.md
b/src/components/classic/documentation/release-guide.md
index 6579719ad..8a326bfc2 100644
--- a/src/components/classic/documentation/release-guide.md
+++ b/src/components/classic/documentation/release-guide.md
@@ -10,11 +10,12 @@ type: classic
How to create and announce an ActiveMQ release. This release is based on
[General guide for releasing Maven-based project at
Apache](http://maven.apache.org/developers/release/apache-release.html) , so be
sure to check it out before continuing and meet all prerequisites.
-Maven 2 Setup
+Maven Setup
-------------
-Before you deploy anything to the maven repository using Maven 2, you should
configure your ~/.m2/settings.xml file
+Before you deploy anything to the maven repository using Maven, you should
configure your ~/.m2/settings.xml file
so that the file permissions of the deployed artifacts are group writeable. If
you do not do this, other developers will not able to overwrite your SNAPSHOT
releases with newer versions.
+
```
<settings>
...
@@ -22,41 +23,24 @@ so that the file permissions of the deployed artifacts are
group writeable. If y
<server>
<id>apache.snapshots.https</id>
- <username>dejanb</username>
- </server>
- <!\-\- To publish a website of some part of Maven -->
- <server>
- <id>apache.website</id>
- <username>dejanb</username>
- <filePermissions>664</filePermissions>
- <directoryPermissions>775</directoryPermissions>
+ <username>user</username>
+ <password>password</password>
</server>
- <!\-\- To stage a release of some part of Maven -->
<server>
<id>apache.releases.https</id>
- <username>dejanb</username>
- </server>
- <!\-\- To stage a website of some part of Maven -->
- <server>
- <id>stagingSite</id> <!-- must match hard-coded repository identifier in
site:stage-deploy -->
- <username>dejanb</username>
- <filePermissions>664</filePermissions>
- <directoryPermissions>775</directoryPermissions>
+ <username>user</username>
+ <password>password</password>
</server>
</servers>
...
</settings>
```
-It is also essential that you configure your umask to 2 on people.apache.org
for non-interactive login. If your shell is tcsh you can edit .cshrc to include
-
-umask 2
-
-Other shell initialization files may interfere with this setting but if this
is the only umask setting it appears to work. Instructions for other shells
would be welcome.
### Additional local configuration for using release and staging plugins.
To effectively use the release and staging plugins you need some information
about where the staging will happen and signing information for gpg. Your
~/.m2/settings.xml should contain a profile like this:
+
```
<settings>
<profiles>
@@ -74,131 +58,139 @@ To effectively use the release and staging plugins you
need some information abo
Creating the ActiveMQ Release
-----------------------------
-The release plugin will prompt for a release version, tag and next release
version. Use a three digit release version of the form: 5.x.x and for the tag
use a string of the form: activemq-5.x.x. The next version string should use
the two digit from: 5.x-SNAPSHOT as this can be consistent for future SNAPSHOT
releases.
-
-1. Verify the to-be-released version identifier exists in the
[META-INF/spring.schemas](https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=blob;f=activemq-spring/src/main/resources/META-INF/spring.schemas;hb=HEAD)
mappings file AND
[activemq-osgi/src/main/resources/META-INF/spring.schemas](https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=blob;f=activemq-osgi/src/main/resources/META-INF/spring.schemas;hb=HEAD)
file, if not add it and commit. It should contain:
- ```
-
http://activemq.apache.org/schema/core/activemq-core-${pom.version}.xsd=activemq.xsd
- ```
-2. Verify headers with
[rat](http://incubator.apache.org/rat/apache-rat-plugin/usage.html)
- ```
- mvn -e apache-rat:check
- grep -e ' !?????' target/rat.txt -- will show any files without licenses
- ```
-3. Do a release dry run to check for problems
- ```
- 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:
- ```
- mvn release:clean
- ```
-4. Prepare the release
- ```
- mvn release:prepare
- ```
- This will create the tag in git and leave various stuff around locally to
direct the perform phase.
-
-5. Make a local copy of the release configuration in case something goes wrong
- ```
- cd ..
- cp -r activemq-release activemq-release-prepared
- cd activemq-release
- ```
-6. Perform the release to the staging repo
- ```
- 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.
-
-7. Close the staging repository
- Quote from the [Maven release guide for Apache
projects](http://maven.apache.org/developers/release/apache-release.html)
-
- > Login to [https://repository.apache.org](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 unti [...]
-
- See the image in the original guide for more info.
-8. Verify staged artifacts
- Quote from the [original
guide](http://maven.apache.org/developers/release/apache-release.html)
-
- > 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.
-
-9. 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.
- ```
- cd target/checkout
- mvn site -Prelease
- ```
-10. Populate the Javadocs site in svn
- ```
- 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.
- ```
-11. 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:
- ```
- 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.
-
-12. Call a vote on the dev list, listing the great new features of the
release.
+If the release is the first one on a new series, you might want to create a
branch for the series:
+
+```
+git branch activemq-a.b.x main
+git push origin activemq-a.b.x
+```
+
+1. As ActiveMQ protects branches, you have to create a release branch based on
the branch you want to release:
+
+```
+git branch release/a.b.c activemq-a.b.x
+git push origin release/a.b.c
+```
+
+2. [Optional] You can do a verification build on the `activemq-a.b.c` branch:
+
+```
+mvn verify
+```
+
+Especially, it should not complain about missing license header (rat) and the
build should pass without error.
+
+3. You can now go on the release branch and prepare the release:
+
+```
+git checkout release/a.b.c
+mvn release:prepare -Papache-release,deploy
+```
+
+This create the RC tag.
+
+4. Now we can stage the release:
+
+```
+mvn release:perform -Papache-release,deploy
+```
+
+It creates a staging repository on Nexus (https://repository.apache.org).
+
+5. You can close the staging repository on Nexus. Go on
https://repository.apache.org, in the Staging Repositories menu and close the
ActiveMQ staging repository.
+
+6. Now, you can stage the release artifacts on Dist:
+
+```
+svn co https://dist.apache.org/repos/dist/dev/activemq/activemq
+cd activemq
+./prepare-release.sh <nexus-staging-repo-url> <version>
+svn add <version>
+svn commit
+```
+
+7. Create the pre-release on GitHub
(https://github.com/apache/activemq/releases/new) using the corresponding tags
and using "Apache ActiveMQ a.b.c" as release title.
+
+8. Call a vote on the dev mailing list, with this template:
+
+```
+Subject: [VOTE] Apache ActiveMQ 6.2.7 release (rcN)
+
+Hi everyone,
+
+I propose Apache ActiveMQ a.b.c (rcN) release for your vote.
+
+This release includes:
+- ...
+
+You can review the Pre-Release Notes for details:
+https://github.com/apache/activemq/releases/tag/activemq-a.b.c
+
+Staging Maven Repository:
+https://repository.apache.org/content/repositories/orgapacheactivemq-xxxx/
+
+Staging Dist Repository:
+https://dist.apache.org/repos/dist/dev/activemq/activemq/a.b.c/
+
+Git tag:
+https://github.com/apache/activemq/tree/activemq-a.b.c
+
+Please vote to approve this release:
+[ ] +1 Approve the release
+[ ] 0 I don't care
+[ ] -1 Don't approve the release (please provide specific comment)
+
+This vote will be open for at least 72 hours.
+
+Thanks!
+Regards
+```
After the vote passes
---------------------
-1. Promote the release (i.e. release the staging repository): login
to[https://repository.apache.org](https://repository.apache.org/), navigate to
the staging repository and click the "release" button.
-2. 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/](https://dist.apache.org/repos/dist/release/activemq/)
- ```
- 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
- ```
-3. Populate the schema site in svn
- ```
- 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.
- ```
-4. Continue with the Announcing section below
-5. Created a in progress wiki page for the next release
-6. 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.
-
-Announcing the ActiveMQ Release
--------------------------------
-
-1. Perform a release in JIRA and create a new release version in JIRA.
- 1. Move unresolved issues to the next release first, in a bulk (do not
send email) update
- 2. You might also want to search for resolved/closed issues with no fix
version just in case
-2. Create a download page for the realease by adding a file in
`src/_releases/` and name the file with its version converted to an integer -
for example the file for 5.16.1 should be name `activemq-5016001-release.md`.
The Front Matter must include `version`, `release_notes`, `release_date`, and
`title`. For example, this might be an expected content based on the 5.16.1
release:
- ```
- ---
- version: 5.16.1
- release_notes:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311210&version=12347027
- release_date: Jan 20, 2021
- title: ActiveMQ 5.16.1 Release
- ---
- Apache ActiveMQ {{ page.version }} was released on {{ page.release_date
}}. It fully supports JDK 9+ at runtime and includes several resolved
[issues]({{ page.release_notes }}) and bug fixes.
- ```
-3. If necessary, update the current versions by editing the `5x` list in
`src/_data/current_releases.yml`. The latest patch release published in
`src/_releases/` for the major.minor versions in the list will automatically be
included on the [download
page](https://activemq.apache.org/components/classic/download/).
-4. Update the [Xml Reference](xml-reference) page with a link to the HTML and
XSD
-7. Update [QuickLinks](quicklinks) and [JavaDocs](docs) pages
-8. Mail the [dev](mailto:[email protected]) &
[user](mailto:[email protected]) lists
-9.
[Post](http://cwiki.apache.org/confluence/pages/viewrecentblogposts.action?key=ACTIVEMQ)
a news entry on the WIKI
-10. tweet
-11. Have a beer!
+1. Promote the release on Nexus (https://repository.apache.org).
+
+2. Promote the release on Dist:
+
+```
+svn mv https://dist.apache.org/repos/dist/dev/activemq/activemq/<version>
https://dist.apache.org/repos/dist/release/activemq/
+```
+
+3. Change the release on GitHub removing the pre-release tag
(https://github.com/apache/activemq/releases/edit/activemq-a.b.c).
+
+4. Update the website with release:
+
+```
+git clone https://github.com/apache/activemq-website
+cd activemq-website/src/_classic_releases
+vi classic-0a-0b-0c.md
+git add
+git commit -a
+git push
+```
+
+5. Announce the release on the dev mailing list and [email protected]:
+
+```
+Subject: [ANNOUNCE] Apache ActiveMQ a.b.c has been released!
+
+The ActiveMQ team is pleased to announce the Apache ActiveMQ a.b.c release.
+
+<Quickly describe the release>
+
+You view find the details on the Release page:
+https://activemq.apache.org/components/classic/download/classic-0a-0b-0c
+
+And also more details on the Release Notes:
+https://github.com/apache/activemq/releases/tag/activemq-a.b.c
+
+You can download ActiveMQ a.b.c here:
+https://activemq.apache.org/components/classic/download/
+
+Enjoy!
+
+Regards
+--
+The Apache ActiveMQ team
+```
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact