DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Work In Progress: nothing yet strictly defined, writing ides to share and define consensus on how we'll do in the future
Context
ASF has tasked the Tooling comittee to build ATR platform to ease release process and clarify dist publication, which will permit later to get more checks on releases based on new regulation requirements.
With ATR Alpha2 announced in October '25, and expected Beta in Jan '26, it's a great time to see how our release process for our 80 subprojects will work with ATR.
As-Is before ATR
Maven release process https://maven.apache.org/developers/release/index.html
For the build and vote:
mvn release:prepare && release:perform
prepare everything, with the release plugin doing the Git tag and checkout to target/checkout and running the final build command from this fresh checkout:
mvn -Papache-release deploy
The Apache source release archive(s) can be found in the output in a location that depends on every sub-project, eventually in the staged content in repository.apache.org:
- for the starting the vote, the staged content in repository.apache.org is usually linked in the vote email for convenience, only Maven core votes require to svn commit to svn dist/dev: see https://maven.apache.org/developers/release/maven-core-release.html
- when vote is successful, release manager copies content from target/checkout to svn dist/release
To Be
After the release build, ATR is used to gather the release content to be voted against, manages the vote (with emails and/or ATR UI), its success or failure, and if successful the publication to release dist area.
ATR alpha 1 testing
Can be tested manually at https://release-test.apache.org/ , which in alpha phase does not publish or send anything to official routes: no risk involved in playing "as if a release was being voted against"
- Select a Maven subproject
- "start a new release" (again, test env, this won't mess anything)
- define release version
- compose the content of the release, by uploading or providing links:
- for this phase, using content from https://dist.apache.org/repos/dist/release/maven/ or https://archive.apache.org/dist/maven/ is an easy way to reuse real past releases content,
without really rebuilding and looking for local files intarget/= what will happen during real release process
- for this phase, using content from https://dist.apache.org/repos/dist/release/maven/ or https://archive.apache.org/dist/maven/ is an easy way to reuse real past releases content,
- "Start voting"
- ...
There is also a tutorial with screenshots provided by ATR https://release-test.apache.org/tutorial
ATR Alpha 2 testing TODO
Manually composing the release with UI won't scale with Maven's 80 subprojects and details for each sub-project => trying to test a little bit of scripting and configuration to organise release content preparation:
- define the files from the release in target/checkout
- define where they will be pushed to the distribution area with ATR, and how our dist area structure https://dist.apache.org/repos/dist/release/maven/ will be modified or not
| project's structure | binaries origin after build | target in dist/maven area | target in ATR downloads/maven |
|---|---|---|---|
Maven 3 & 4 = source+bin (zip + tar.gz) distribution | apache-maven/target/*-bin.* | /maven/maven-<major>/<version>/binaries/maven-<version>-bin.zip* | /maven-<major>/<version>/ |
mvnd = source + native binaries distribution | https://github.com/apache/maven-mvnd/releases | /maven/mvnd/<version>/mvnd-<version>-src.zip* | mnvd/<version>/ |
Maven plugins, shared, doxia, ... = dist directory contains releases for many projects release = xxx.zip + .zip.asc + .zip.sha512 | target/*-source-release.zip* | /maven/archetype/maven-archetype-*-<version>-source-release.zip* | archetype/ |
jxr, enforcer, ... = dist directory contains releases for one project release = xxx.zip + .zip.asc + .zip.sha512 | target/*-source-release.zip* | /maven/<id>/*-<version>-source-release.zip* | <id>/ (like previous, but only 1 project in it) notice: eventually many versions |
Test can be scripted using the atr command from ATR client https://github.com/apache/tooling-releases-client , that is easier to use for scripts than bare REST API https://release-test.apache.org/api/docs
11/2025 Test of basic release process with ATR based on old releases
- build code to produce
source-release.zip*files, or download content from past archives
git clone https://github.com/apache/maven-parent.git
cd maven-parent
v=45
git checkout maven-parent-$v
mvn -Papache-release clean verify # use package to skip .asc and .sha512 creation, or deploy to also send to repository.apache.org
ls -la target/*.zip*
or in 1 line with params:
p=maven-parent ; v=45 ; git checkout $p-$v ; mvn -Papache-release -DskipTests verify ; atr release start $p $v ; for f in target/$p-$v-source-release.zip* ; do atr upload $p $v $(basename $f) $f; done ; echo https://release-test.apache.org/compose/$p/$v
- create an ATR release for vote with atr CLI or use the UI https://release-test.apache.org/projects/maven-parent
atr release start maven-parent $v
for f in target/*-$v-source-release.zip* ; do atr upload maven-parent $v $(basename $f) $f; done
echo https://release-test.apache.org/compose/maven-parent/$v
- start the vote: go to https://release-test.apache.org/compose/maven-parent/$v
at distribute step, can define the path in distribution area = /pom
as of Nov 3 2025, "preserve download files" for the project has to be disabled, as it prevents publishing releases in the same directory: see https://github.com/apache/tooling-trusted-releases/issues/282 for better error message if preserve fails the distribution step
2/2026 release for Apache Resource Bundles 1.8
= source code https://github.com/apache/maven-apache-resources, svn:dist/release https://dist.apache.org/repos/dist/release/maven/resources/, archive https://archive.apache.org/dist/maven/resources/, website https://maven.apache.org/apache-resource-bundles/
ATR project = https://release-test.apache.org/projects/maven-apache-resources, "start vote template" updated to contain to add our classical content from usual vote like https://lists.apache.org/thread/w7ybx2k5thmzpkqgzpw6v50rf3zbv2g0
before doing new 1.8 release on real dev@maven mailing list, trying 1.7 using content available in svn:dist/release (upload svn path resources) with vote to user-tests@tooling.apache.org and also result