THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Check that the version numbers have been incremented after the previous release, as expected. (e.g. https://github.com/apache/tomcat/commit/cec14f9c33af9da271c9681bf6b343c61b6d055a)
- Check that the changelog file mentions your login name as release manager for this release (e.g. "Tomcat 9.0.94 (markt)").
- Check whether the
KEYS
file differs fromhttps://dist.apache.org/repos/dist/release/tomcat/tomcat-9/KEYS
one. The latter one will be replaced after you do a release. Check that theKEYS
file contains your public key. - Check that the full build still works (ant release, preferably). Check that Buildbot builds (https://tomcat.apache.org/ci.html#Buildbot) are green.
- Prepare your build environment:
- Add a build.properties file (or, better yet, keep this file in your ~/build.properties if you have a dedicated build machine) with the following configuration (adjust paths for your environment)
No Format execute.validate=true execute.test.bio=true execute.test.nio=true execute.test.apr=true test.haltonfailure=true gpg.exec=C:/Program Files (x86)/GNU/GnuPG/gpg2.exe #gpg.exec=/usr/bin/gpg base.path=C:/temp/libs #base.path=~/tomcat-libs # Enable the following if the DigiCert ONE magic is all set up, including ~/.digicertone/pkcs11properties.cfg codesigning.storepass=apikey|keystorepath|keystorepassword do.codesigning=true
Build the release + create git tag
...
- Perform an git clone and switch to the correct branch
git clone https://github.com/apache/tomcat /c/releases/asf-tomcat
orgit clone -b 9.0.x git clone https://github.com/apache/tomcat /c/releases/asf-tomcat
cd /c/releases/asf-tomcat
git checkout 9.0.x
git pull
- (Hint: using
ant pre-release
may save you the following step, plus steps 2-3 in the Maven release process.) Edit "build.properties.default" and change the lines after "# ----- Reproducible builds -----" to a new value. (NOTE: this is done by 'ant pre-release')
- Note that the value of
ant.tstamp.now
property is in seconds (unlike the value returned bySystem.currentTimeMillis()
method which is milliseconds, see bug 65527 for how this happened for Tomcat 8.5.70).
The value can be printed in a Bash shell with the following command:date +%s
To print seconds since epoch, and date and time in human-readable format in UTC time zone:date -u '+%s %Y-%m-%d %H:%M:%S %Z'
- Note that the value of
Edit "build.properties.default" and change the line version.dev=-dev to version.dev= (NOTE: this is done by 'ant pre-release')
- This can be done with
sed -i.bak "s/^version.dev=.*/version.dev=/" build.properties.default
- This can be done with
- Edit "webapps/docs/changelog.xml" and replace rtext="in development" with rtext="Release in progress" for the version being released (NOTE: this is done by 'ant pre-release')
- Remember that notepad.exe will remove UTF-8 Byte-Order Marks (BOMs). Use write.exe or Notepad++ instead.
- Add a build.properties file (or, better yet, keep this file in your ~/build.properties if you have a dedicated build machine) with the following configuration (adjust paths for your environment)noformat
execute.validate=true execute.test.bio=true execute.test.nio=true execute.test.apr=true test.haltonfailure=true gpg.exec=C:/Program Files (x86)/GNU/GnuPG/gpg2.exe #gpg.exec=/usr/bin/gpg base.path=C:/temp/libs #base.path=~/tomcat-libs # Enable the following if the DigiCert ONE magic is all set up, including ~/.digicertone/pkcs11properties.cfg codesigning.storepass=apikey|keystorepath|keystorepassword do.codesigning=true
- Build the release
ant release
- Commit these changes
git add-A (to pick-up the repeatable build artifacts in addition to the content-changes from above)
git commit -a -m "Tag 9.0.94"
git tag 9.0.94
git push origin 9.0.94
- Check the diff mailed to the dev list
...