How to make a release


Apache Etch releases are made according to the release policy of the Apache Software Foundation. More information about this can be found here:


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 \<revision of last release>:HEAD

      In order to get the revision of the last release you can e.g. use the command

      svn info\<last release version number>

    • 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/
      • /doc/libs/global.ent
      • /
    • 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.

  1. Source packages

    Create a zip-compressed archive and a tarball.

    svn export trunk/ apache-etch-\<version>-src
    zip -r apache-etch-\<version> apache-etch-\<version>-src
    tar cfzv apache-etch-\<version>-src.tar.gz apache-etch-\<version>-src/

  2. Binary packages:

    The binaries are build with ant by calling the release target.

    On Linux:
    ant release
    On Windows: ant release

    After a successful build the binary packages are located at trunk/target/Installers/packages

  3. Create checksums and signatures for all the created packages

    gpg --print-md MD5 ${artifact} > ${artifact}.md5
    SHA512 gpg --print-md SHA512 ${artifact} > ${artifact}.sha
    Signature gpg -u \<your-sig-id> --armor --output ${artifact}.asc --detach-sig ${artifact}

  4. 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.

  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 tree of the dist repository to the /release 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).