-
Notifications
You must be signed in to change notification settings - Fork 680
Releasing a new version of Clementine
These instructions are intended for Clementine developers who want to release a new version to the public. If you just want to build Clementine from source, look at the CompilingFromSource page.
It's usually best to make a release candidate about 1 week before the final release.
-
Update the Changelog file by looking at the git log from the time of the last release. Make sure you don't include commits that were made in master during the last release cycle and cherry-picked into a release.
-
Bump the version number. Edit the
cmake/Version.cmake
file and:- Change the
CLEMENTINE_VERSION_MAJOR
andCLEMENTINE_VERSION_MINOR
variables to match the version number. - Uncomment
CLEMENTINE_VERSION_PRERELEASE
.
For example:
# Version numbers. set(CLEMENTINE_VERSION_MAJOR 1) set(CLEMENTINE_VERSION_MINOR 1) set(CLEMENTINE_VERSION_PATCH 0) set(CLEMENTINE_VERSION_PRERELEASE rc1)
Commit this change.
- Change the
-
Tag the release, e.g.,
git tag 1.1.0-rc1 -a 'Clementine 1.1.0 RC1'
-
Push the tag
git push origin 1.1.0-rc1
-
Wait for binaries to be built by CircleCI and pushed as a Github release.
-
Send an email to the mailing list to announce the release candidate. You should include a short summary of the major features and link readers to the full changelog and the downloads page. For example: https://groups.google.com/forum/?fromgroups=#!topic/clementine-player/3jPLPYKVuAU
-
Change the topic in the IRC channel to announce the release candidate and link to the downloads page. For example:
Clementine 1.1 Release Candidate out | http://code.google.com/p/clementine-player/downloads/list
- If any major bugs are found (or you have a new idea for nyanalyzer cat), make commits to master and then tag a new release.
-
At the end of the release candidate phase you should update the Changelog file with any changes that were done.
-
Bump the version number. Edit the
cmake/Version.cmake
file and:- Comment out
CLEMENTINE_VERSION_PRERELEASE
.
For example:
# Version numbers. set(CLEMENTINE_VERSION_MAJOR 1) set(CLEMENTINE_VERSION_MINOR 1) set(CLEMENTINE_VERSION_PATCH 0) # set(CLEMENTINE_VERSION_PRERELEASE rc1)
Commit this change to
master
. - Comment out
-
Tag (e.g, 1.4.1) and push as before.
-
Let the binaries build and push like before.
-
While everything is building you can take 4 screenshots that demonstrate some of the new features in the new release. I try to make sure we have screenshots of each platform (Windows, OS X and Linux). Once you've taken 4 screenshots:
-
Make sure you've checked out the
appengine
repository (instructions) and installed the appengine SDK for Python. -
Put the full-sized screenshots in the
clementine-player.appengine/www.clementine-player.org/static/screenshots
directory. Follow the naming convention of all the other files in there. -
Make thumbnails of each screenshot:
cd ../thumbnails ./makethumbnail.sh ../screenshots/clementine-1.1-1.png ./makethumbnail.sh ../screenshots/clementine-1.1-2.png ./makethumbnail.sh ../screenshots/clementine-1.1-3.png ./makethumbnail.sh ../screenshots/clementine-1.1-4.png
-
These images are stored in the appengine repository so we have them somewhere in version control, but they aren't actually served from appengine because we'd soon hit the bandwidth quota. You have to rsync them to images.clementine-player.org, which is hosted on Zaphod:
rsync -rav thumbnails screenshots zaphod:/var/www/clementine-player.org/images/
Verify that your images show up by looking in http://images.clementine-player.org/screenshots/
-
Either commit these screenshots to the appengine repository now or do the next step first and commit everything in one go.
-
-
Update the
www.clementine-player.org/data.py
file in the appengine repository with information about the new release:-
Update the
LATEST_VERSION
constant. -
Add a new dictionary to the
SCREENSHOTS
array. -
If we've added a new Ubuntu or Fedora type, add it to
DISPLAY_OS
,SHORT_DISPLAY_OS
andOS_LOGOS
. -
Write a short paragraph describing the new stuff in the release and add it to the end of
NEWS
. Be sure to take today's timestamp by running:python -c "import time; print int(time.time())"
-
Update the list of features at the top of
main.html
in the same directory with any cool new features in this release. -
Run
make
in thewww.clementine-player.org
directory to update the language files. -
Check the site looks ok by running the appengine dev-appserver:
dev_appserver.py .
And then going to http://localhost:8080/ in a web browser.
- If everything looks good commit these changes to the
Website
repository and push tomaster
.
-
-
Sign the release for Sparkle
sign_update.rb clementine-1.1.dmg sparkle_priv.pem
-
Update the sparkle feed
- Emailing the list and updating the IRC topic
- Updating kde-apps.org and qt-apps.org
- Updating freshmeat
- Updating the Windows sparkle feed