Ostinato Release Process

This document is not useful for users of Ostinato. This is for use by the development team and acts as a formal documentation of the Release Process and a checklist.

Release Process

Verify top of the tree code base compiles and works on all platforms

  • Windows
  • Linux
  • FreeBSD
  • OS X

While the code builds, update the changelog

Source Packaging

  1. Bump the version number in version.pri and commit-push
  2. Create a directory $(VERSION). Create 2 subdirs inside - 'src' and 'winbin'
  3. cd $(VERSION)/src
  4. Clone the repo as ostinato-$(VERSION) - all subsequent steps will operate on this clone
  5. Modify version.pri so that the revision is hardcoded instead of using 'hg identify -i'; append a '@' at the end of the hg revision hash to identify it as a 'src pkg' revision
  6. Delete the .hg directory and .hgignore file
  7. Create ostinato-src-$(VERSION).tar.gz
  8. Delete the ostinato-$(VERSION) directory

Windows Packaging

  1. Unarchive ostinato-src-$(VERSION).tar.gz
  2. Build
    cd ostinato-$(VERSION)
    qmake -config release
    make
    make install
    
  3. Download and unpack the last bin-win32 zip archive into the winbin directory and replace ostinato.exe and drone.exe
  4. Run and check the version/revision in both Ostinato and Drone
  5. Sanity test as required
  6. Empty out ostinato.ini
  7. Create archive ostinato-bin-win32-$(VERSION).zip
  8. Repeat the above build/run/test steps for all platforms viz. Linux, FreeBSD, Mac OS X

Python-Ostinato Packaging

  1. Create the package (creating tar.gz directly has an issue on the build machine, so do in 2 steps)
    cd ostinato-$(VERSION)/binding
    python setup.py sdist --formats=tar
    gzip dist/python-ostinato-$(VERSION).tar
    
  2. Test the package
    pip install dist/python-ostinato-$(VERSION).tar.gz
    python -m ostinato.example
    

Linux Packaging

  1. Create a branch of package home:pstavirs:ostinato/ostinato - use web
  2. Checkout the branch and replace the old src tarball with new
    osc co home:pstavirs:branches:home:pstavirs:ostinato
    osc rm ostinato-src-$(OLD-VERSION).tar.gz
    osc add ostinato-src-$(VERSION).tar.gz
    
  3. Make other spec file changes - refer last diff on OBS for the same
  4. Remove any patches previously applied (if not needed any more)
  5. Check diffs and commit
    osc diff
    osc commit
    
  6. Rinse and Repeat till all builds are successful

Mac OS X Packaging

  1. Compile protobuf as "intel 32 bit only" (commands below unchecked)
    ./configure --disable-dependency-tracking
    make CFLAGS="-arch i386" CPPFLAGS="-arch i386"  LDFLAGS="-arch i386"
    sudo make install
    
  2. Compile QT as "intel 32 bit only"
    ./configure -arch x86 -cocoa
    make
    sudo make install
    
  3. Modify PATH (to bin directory) to use the above Qt e.g.
    export PATH=/usr/local/Trolltech/Qt-4.6.3/bin:$PATH
    
  4. Download and unarchive the source package
    tar zxvf ostinato-src-$(VER).tar.gz
    cd ostinato-$(VER)
    mkdir bin
    
  5. use PREFIX as /bin in subsequent commands
    qmake -spec macx-g++ -config release PREFIX=<path> "CONFIG += ppc x86" "QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.4u.sdk"
    make && make install
    macdeployqt Ostinato/Ostinato.app -verbose=2
    macdeployqt Ostinato/drone.app -verbose=2 -no-plugins
    
  6. Copy HOWTO-INSTALL.txt into the $(PREFIX)/Ostinato folder
  7. Create soft link to /Applications in the $(PREFIX)/Ostinato folder
  8. Create dmg
    create-dmg --volname Ostinato --icon-size 96 ostinato.dmg <path-given-as-PREFIX>/Ostinato/
    mv ostinato.dmg ostinato-bin-osx-universal-$(VER).dmg
    
    create-dmg is available from http://www.yoursway.com/free/

Upload the release

  1. Upload the source and binary packages (Windows/OSX) to BinTray (select show in downloads list)
  2. On OBS, submit the branch project to the main project and then accept it
  3. Update ChangeLog Wiki
  4. Publish the source and binary packages on BinTray

Build the VM distros

  1. Wait for openSUSE_12.1 (or whatever the base release is) packages to be published on OBS, before updating SUSEstudio
  2. On SUSEstudio, resync the home:pstavirs repository
  3. Build and Publish vDrone, Ostinato Live (all selected formats)

Upload/Announce python-ostinato

  1. Go to PyPi
  2. Edit | Upload PKG_INFO
  3. Releases | Files | Upload

Announce the release

  1. Update the News Wiki page
  2. Update Project News and Breaking News on the home page
  3. Update Roadmap page - mark release as DONE
  4. Update FAQ page (if required)
  5. Update User Guide page (if required)
  6. Tweet!
  7. Post a release announcement on Ostinato mailing list
  8. Inform Ostinato maintainers

Update PAD file

  1. Do a hg pull -u on the wiki repository
  2. Go to http://padbuilder.com and import PAD file from URL
    http://wiki.ostinato.googlecode.com/hg/html/pad.xml
    
  3. Edit/Update PAD file -
    • Version
    • Release Date
    • Size (Bytes)
    • Direct Download URL
    • Description (optional)
  4. Commit and push the PAD file into the wiki repository
  5. Verify http://wiki.ostinato.googlecode.com/hg/html/pad.xml
  6. Update github ostupd repo PAD file from the above

Other updates/announcements

  1. Send update email to softpedia editors
  2. Update qt-apps.org - Version, Win32 binary URL, Description (optional), Changelog
  3. Submit to http://opensourcetesting.org/submit_news.php

Home Page Announcement Template

----
*Breaking News (yyyy-mm-dd): Ostinato version $(ver) released!* [http://ostinato.org/wiki/ChangeLog ChangeLog]
----
*News*: 20 Gbps using Ostinato! [http://bit.ly/hmOAuY Full Story]<br>

results matching ""

    No results matching ""