Release HOWTO
-------------
- * Tests : compilation, regression tests ...
+ * Tests: compilation, regression tests ...
* Changes on the git repository
- - update the version number everywhere it's needed
+ - Check that the version number everywhere it's needed
· configure.ac
- · extras/MacOSX/vlc.pbprj/project.pbxproj
- · extras/MacOSX/Resources/English.lproj/InfoPlist.string
- - update the ChangeLog and NEWS files, as well as the Trac database
- · LANG=C git log --since="01-01" --until="12-31" >! ChangeLog
- · read all the commits and add important things to the NEWS file
- · update the milestones info on https://trac.videolan.org/vlc
- - Add a note about the matching contrib package in INSTALL.win32
- - Make sure that the gpg key embedded in include/vlc_update.h is the last one
+ · NEWS
+ - Update important things and add them to the NEWS file
+ - Close the milestone on Trac https://trac.videolan.org/vlc
+ - Update OpenGPG key embedded in include/vlc_update.h if needed
+ - Increase the libvlccore and libvlc revisions in src/Makefile.am
+ _if_and_only_if_ the ABI number has not been increased instead, in
+ which case the revision goes back to zero.
* Commit
+ * Tag the commit
* Tarballs (Use a clean tree !!!)
- - Use 'make distcheck' to make sure all files are exported
- correctly
- - copy the tar.gz and tar.bz2 file on ftp.videolan.org in
- /opt/ftp/pub/videolan/testing/vlc-X.X.X/
- - generate md5 hashes and gpg signature of these files
- (use gpg --sign --detach --armor --force-v3-sigs)
+ - Use 'make distcheck' to make sure all files are exported correctly
+ - copy the tar.xz file on altair.videolan.org
+ - copy the binaries files on altair.videolan.org, if possible
+ - generate SHA, MD5 hashes and OpenPGP signature of these files
+ (use sha*sum --binary, md5sum --binary, gpg --sign --detach --armor)
+ Use the ~/bin/sumandsign.sh script
* Contribs
- Put a copy of the libraries or git snapshot in vlc-X.X.X/contrib
- Put the relevant win32 contrib package
- Update developers.v.o/vlc and www.v.o/vlc/download-sources.html
- * BeOS Packages
- Information on building: http://developers.videolan.org/vlc/beos-compile.html
- Configure with --enable-update-check
- Build in the "buildbeos" chroot on altair.
- # add the .zip files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/beos/
- generate md5 hashes and gpg signature of these files
- (use gpg --sign --detach --armor --force-v3-sigs)
-
* Win32 Packages
- make the packages using the nightly builds configure/options/... , don't forget --enable-update-check
- don't forget to test the installer and uninstaller (the first 0.8.4 uninstaller was broken ...
- kind of suxxs)
- add the .zip and .exe files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/win32/
- generate md5 hashes and gpg signature of these files
- (use gpg --sign --detach --armor --force-v3-sigs)
+ - configure using the extras/package/win32/configure.sh script
+ - move to altair and generate md5 plus SHA1 hashes and gpg signature of these files
+ (c.f. Tarballs)
* OS X packages
- configure with --enable-update-check
- generate md5 hashes and gpg signature of these files
- (use gpg --sign --detach --armor --force-v3-sigs)
+ - configure using ./configure --enable-macosx
+ - compile the source on both a PowerPC and an Intel-based Mac. Don't try to
+ cross-compile for either platform. Don't forget the framework.
+ - use extras/package/macosx/ub.sh to create a Universal Binary.
+ - move to altair and generate md5 plus SHA1 hashes and gpg signature of these files
+ (c.f. Tarballs)
* Commit changes ... it never works the first time
* "Tag" the release
-
- First make sure you git-commit-ed the ChangeLog all the version release related changes, then:
-
- git tag -a -m "VLC Release RELEASE_VERSION" <RELEASE_VERSION>
+ git tag -a -m "VLC Release VERSION" <VERSION>
(Create an annotated tag, you can skip -a if you used -m)
- git push origin <RELEASE_VERSION>
+ git push origin <VERSION>
- (You are advised to play with it on the sandrox.git if you feel unconfortable)
-
- * Move /opt/ftp/pub/videolan/testing/vlc-X.X.X to /opt/ftp/pub/videolan/vlc/X.X.X
+ * Move the signed files from altair to ganesh, on /opt/ftp/pub/videolan/vlc/X.X.X
- At first block access to this directory by http or ftp. Only authorize rsync.
- This is to avoid leak as some journalist and forum seems to watch the ftp.
- - Update the "latest" symlink
+ This is to avoid leak as some journalists and forums seem to watch the ftp.
+ - Update the "last" symlink
* Update the website
- - edit the /index.php /vlc/*.php pages
+ - edit the /index.php /vlc/*.php, include/os-specific.php files
+ - create a /vlc/release/X.X.X page
- add a news item to news.msg
+ - update the front page OS dependant screenshots if the interface changed.
* "Check for updates" functionality
- - add /opt/ftp/pub/videolan/vlc/X.X.X/vlc-X.X.X-announce
- - edit update.videolan.org/vlc/status.xml
+ - edit update.videolan.org/vlc/status
+ - gpg -t --sign --detach --armor
- * Mirrors
+ * Mirrors (if necessary)
- Forwarn the mirror admins
- - Update the list of files for the mirror check (/var/www/local/mirrors.v.o/files)
- - Disable mirrors which haven't replicated yet and possibly ganesh if enough
- other mirrors
+ - Update the list of files for the mirror check
+ (/var/www/local/mirrors.v.o/files)
+ - Disable mirrors which haven't synced yet and possibly ganesh if there are
+ enough other mirrors (see http://mirrors.videolan.org/release.html)
- * Update wiki
+ * Update the wiki
- edit http://wiki.videolan.org/Template:VLC:latest_version
- * Announce on www.gnome.org
- - click on "Get more software"
- - click on "Edit an existing map entry"
- - look for the 'vlc' package
- - update the version number and other info and submit
- - the change is instantaneaous
-
- * Announce on www.freshmeat.net (let sam do it)
+ * Announce on www.freshmeat.net (let jb or sam do it)
- you need a freshmeat account
- go to http://www.freshmeat.net/projects/vlc/
- - click on the release's branch (ie Stable)
- - chose "add release" in the dropdown menu
+ - chose "Submit a release" in the right menu
- fill out all the info and submit
- the update can take several hours
* Announce on VersionTracker
- ask Meuuh
- * Announce email
+ * Announce on twitter and facebook...
+ Unfortunately, those are more followed than the other means
+
+ * Announce email and forum topic
- write something along the lines of previous releases
- post in videolan-announce (moderated), vlc et vlc-devel
+ You are advised to add the author list for this version using
+ 'git shortlog -s PREVIOUS_VERSION..VERSION'
+ And to add git diff --stat PREVIOUS_VERSION..VERSION if it's relevant.
+ You can play a bit with git to show the piece of information that may be
+ interesting.
- add a sticky thread in the "General VLC media player discussion" forum