How to make a release¶
Introduction¶
Apache Etch releases are made according to the release policy of the Apache Software Foundation. More information about this can be found here: http://www.apache.org/dev/release.html
Prerequisites¶
This describes the necessary steps to be taken BEFORE drafting a release:
-
Update release depended files in trunk
-
Changelog: /Changelog.txt
Update the file with the svn log output between the last release and the current trunk:
svn log -r \
:HEAD In order to get the revision of the last release you can e.g. use the command
svn info https://svn.apache.org/repos/asf/etch/releases/release-\
-
Update the version numbers in all files. (e.g. grep the trunk for the last release version). You should get at least to following files:
- /README.txt
- /dist-README.txt
- /compiler/src/main/java/org/apache/etch/compiler/Version.java
- /doc/libs/global.ent
- /etch.properties
-
Release notes: /RELEASE_NOTES.txt
The release notes do contain important information about the release. Please read through the existing content carefully, add new notes or remove obsolete remarks. At the end of the file the release notes exported from JIRA are attached. Those release notes can be copied from the Roadmap section of JIRA for the respective release.
-
Create the release artifacts¶
Apache Etch is currently shipped both as a source package (mandatory according to ASF Policy!) and as a binary package for different platforms.
Therefore you need the toolchains for Linux as well as Windows at hand in order to create all the release artifacts.
Make sure all the stable bindings are building, the unit tests do succeed and all the examples are working.
-
Source packages
Create a zip-compressed archive and a tarball.
svn export trunk/ apache-etch-\
-src zip -r apache-etch-\ -src.zip apache-etch-\ -src tar cfzv apache-etch-\ -src.tar.gz apache-etch-\ -src/ -
Binary packages:
The binaries are build with ant by calling the release target.
On Linux: ant release -DEtch.property.platformVersion=x86 -DEtch.property.osVersion=linux
On Windows: ant release -DEtch.property.platformVersion=x86 -DEtch.property.osVersion=windowsAfter a successful build the binary packages are located at trunk/target/Installers/packages
-
Create checksums and signatures for all the created packages
MD5 gpg --print-md MD5 ${artifact} > ${artifact}.md5
SHA512 gpg --print-md SHA512 ${artifact} > ${artifact}.sha
Signature gpg -u \--armor --output ${artifact}.asc --detach-sig ${artifact} -
Upload release candidate
All the generated artifacts are committed to the /dev tree of the dist repository in order to make them testable for other members of the PMC before they need to cast their vote.
-
Start [VOTE] thread on the dev@etch.a.o mailing list
-
Wait at least 72h for votes.
Publish the release¶
As soon as a release got accepted, it can be published officially on the Apache servers.
-
Move the approved release candidate from the /dev tree of the dist repository to the /release directory.
-
Update news and download section on the website.
-
Create known bugs webpage with link to the bug tracker.
-
Send out the good news on all known communication channels (mailing lists, Etch's Twitter account).