Skip to content

Release Process

Sean Gilligan edited this page Apr 28, 2014 · 10 revisions

iUI Release Process

Summary

iUI has a release process that is used by the iUI project team to assemble and release images (zip files) and push them to the Google Code download site.

Tip
You do not need to read this document to use iUI. If you are curious about how iUI is built and released by the iUI Project Team or want to reproduce the build procedure, then read on.

Setup Procedure

  • Make sure you have Java 7 (aka 1.7) or later installed on your system.

  • Make sure you have Apache Ant 1.7.0 or later installed on your system.

  • Make sure the ant command on the command line will run the correct version of ant

    • # which ant

    • # ant -version

Official Build with Mac OS X 10.8

  • Mac OS X 10.8.5

  • Java Version 1.7.0_51

  • Ant 1.7.0 installed in /usr/local/bin/ant

Release Process (used for 0.4.1 release)

  • Make sure the version number is set in a comment in build.properties:

    • Set iui.version and iui.release.summary in comment in build.properties

  • Update release notes in releaseNotes.txt

  • Commit to GitHub

  • Start in a freshly checked out or exported directory.

    • git clone [email protected]:iui/iUI.git iui-release-dir-xx

    • (This step is important as it prevents accidental release of intermediate files, etc)

    • (We should probably include instructions to checkout and build a specific revision, like we had for Hg)

  • Make sure your current working shell directory is the iui project root

    • (The directory that contains build.xml)

  • Make sure the version number is set:

    • # cp build.properties local.build.properties

    • Edit local.build.properties to have your Google Code username/password

    • Make sure the iui.version and iui.release.summary are set correctly in local.build.properties

  • To get list of ant tasks: # ant -p

  • To make a release zipfile: # ant iui-zipfile

  • To upload a release to GitHub Releases:

    • Make sure version number is set and release notes are written (see above)

    • Tag with Git (Note: Use an annotated tag for REL-version — but not REL-current)

      • # git tag -a REL-_version_-m "_message_"

    • Update the REL-current tag to reference the latest stable release

      • # git tag --force REL-current

    • Push changes and new tags to 'origin' repo on GitHub

      • # git push --tags origin master

    • Create a release on Bintray.

      • Manually create new release on the iUI releases page.

      • Manually upload the zipfile previously created.

    • Create a release on GitHub Releases.

      • Use the just-created Git tag.

      • Create a link to the downloadable zipfile on Bintray

    • Pre-announce on iui-developers list to get any feedback before official announcement.

Things to release besides the zipfile

  • Update the demo site on GAE.

  • Update the documentation on the iUI Website to match the release version

    • Update the iUI Git submodule

      • # cd iui.site/web-app/documentation/latest/iui

      • # git pull

      • # cd iui.site

      • # git add web-app/documentation/latest/iui

      • # git ci -m "updated iui submodule to new version"

  • Update the Download page on the website.

Announcement Process

  • Remove deprecated tag on Google Code download page. If the release is designated 'stable' add the featured tag.

  • The featured tag on the download will update the iUI Google Code home page

  • Announce on iui-developers

  • Announce on iPhoneWebDev

  • Announce on Twitter using #iuijs hashtag

  • Announce on the Facebook page

  • Announce on personal blogs, etc.