# 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: ## Prerequisites This describes the necessary steps to be taken BEFORE drafting a release: 1. 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](https://issues.apache.org/jira/browse/ETCH/?selectedTab=com.atlassian.jira.jira-projects-plugin:roadmap-panel) 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.** 1. 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/
2. 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=windows
After a successful build the binary packages are located at trunk/target/Installers/packages 3. 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}
4. Upload release candidate All the generated artifacts are committed to the [/dev](https://dist.apache.org/repos/dist/dev/etch/) tree of the dist repository in order to make them testable for other members of the PMC before they need to cast their vote. 5. Start [VOTE] thread on the dev@etch.a.o mailing list 6. 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. 1. Move the approved release candidate from the [/dev](https://dist.apache.org/repos/dist/dev/etch/) tree of the dist repository to the [/release](https://dist.apache.org/repos/dist/release/etch/) directory. 2. Update news and download section on the website. 3. Create known bugs webpage with link to the bug tracker. 4. Send out the good news on all known communication channels (mailing lists, [Etch's Twitter account](https://twitter.com/apacheetch)).