Release Process

From Quicksilver Wiki
Jump to: navigation, search

When releasing a new version of Quicksilver, the following steps should be taken.

All Releases[edit]

  • Make final decision what's going in the new version (discuss it in the Dev groups)
  • Pull any localisations from Transifex. See the Localization page for more info
  • Make sure you have pulled the latest changes from upstream (git pull upstream master)
  • Checkout a 'release' branch from master (git checkout -b release master)
  • Update the version number (ß6x) and build number (3xxx) in Developer.xcconfig
  • Bump internal plugin numbers (?? - we should really do this, but has not been previously discussed)
  • Update SharedSupport/Credits.html and the CHANGELOG document. GitHub’s Compare View can help list things changed between version. E.g. to see everything changed since the B65 tag:
  • Make a tag for the current release by typing in Terminal:
    git tag -a B6x -m 'B6x release'
  • Commit these changes and push to upstream release (add the --tags flag to your push command to ensure the tags get pushed as well)
  • Clean all targets in XCode and trash /tmp/QS/
  • Make sure build target is 10.6
  • Install xctool using homebrew - this is used for unit testing during the 'release build' (next point)
  • Build a "release" copy signed for Gatekeeper (see Building Quicksilver)
  • Run this newly built Quicksilver to ensure it behaves as you expect (works correctly, version numbers correct etc.)
  • Upload the .dmg to /qs0/plugins/admin/add.php along with the Info.plist (the Info.plist comes from within
  • Upload ChangesBare.html to the root dir on (found in the Shared Support folder of Quicksilver.xcodeproj)

Final Releases[edit]

  • * Ensure plugins (BezelHUD) are compatible with new QS version. If not, upload a re-built copy to the plugins repo.
  • Add the .dmg to the GitHub pages repo by:
    • Checking out the gh-pages branch (from the Quicksilver repo)
    • Adding and committing the new .dmg file
    • Updating the index.html file by running the python script
    • Pushing back to remote
  • Update the version number in download.php (in the root directory of
  • Alter the app's 'release type' in the Plugins Admin page
  • Announce on users list and Twitter
  • Promote new release (e.g. inform mac news sites: Macrumors, Life Hacker, Mac Update, I Use This, Twitter, Mac Apper, Soft Pedia, upgradeosx, TUAW, makeuseof, Macworld, appleinsider,,, mactrast, gigaom, mac.appstorm, theNextWeb, MacNN, All Things D, Slashdot)