[ Note: this howto is probably useful to core vlc developers only ]

  Release HOWTO
  -------------

 * Tests: compilation, regression tests ...

 * Changes on the git repository
   - update the version number everywhere it's needed
     · configure.ac
     · extras/package/macosx/Resources/English.lproj/InfoPlist.strings
     · extras/package/macosx/plugin/English.lproj/InfoPlist.strings
     · extras/package/macosx/plugin/Info.plist
     · extras/package/macosx/plugin/InstallerInfo.plist
     · extras/package/macosx/vlc.xcodeproj/project.pbxproj 
   - 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
   - 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

 * Tarballs (Use a clean tree !!!)
  - Use 'make distcheck' to make sure all files are exported
    correctly
  - copy the tar.bz2 file on ftp.videolan.org in
    /opt/ftp/pub/videolan/testing/vlc-X.X.X/
  - generate SHA1 plus md5 hashes and gpg signature of these files
    (use gpg --sign --detach --armor)

 * 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 plus SHA1 hashes and gpg signature of these files
    (use gpg --sign --detach --armor)

 * 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 plus SHA1 hashes and gpg signature of these files
    (use gpg --sign --detach --armor)

 * OS X packages
    Information on compilation: wiki.videolan.org/OSXCompile
    configure with --enable-update-check
    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. Test it on   
     PowerPC and Intel-based Macs.
    add the .dmg files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/macosx/
    Nomenclature is vlc-X.X.X-$(PLATFORM).dmg respectively 
     vlc-plugin-X.X.X-$(PLATFORM).dmg and vlckit-X.X.X-$(PLATFORM).dmg. 
    Don't put any platform for the UB package.
    generate md5 plus SHA1 hashes and gpg signature of these files
     (use gpg --sign --detach --armor)

 * Commit changes ... it never works the first time

 * "Tag" the release

    git tag -a -m "VLC Release VERSION" <VERSION>
    (Create an annotated tag, you can skip -a if you used -m)
    git push origin <VERSION>

    (You are advised to play with it on the sandrox.git if you feel 
     uncomfortable)

 * Move /opt/ftp/pub/videolan/testing/vlc-X.X.X to 
     /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 journalists and forums seem to watch the ftp.
  - Update the "latest" symlink

 * Update the website
  - edit the /index.php /vlc/*.php pages
  - add a news item to news.msg

 * "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

 * Mirrors
  - 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 synced yet and possibly ganesh if there are
    enough other mirrors

 * Update the wiki
  - edit http://wiki.videolan.org/Template:VLC:latest_version
  - put the respective NEWS page to wiki.videolan.org/Changelog/X.X.X
  - announce the release on the Main Page

 * 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 instantaneous

 * Announce on www.freshmeat.net (let sam do it)
  - you need a freshmeat account
  - go to http://www.freshmeat.net/projects/vlc/
  - click on the release's branch (i.e. Stable)
  - chose "add release" in the drop-down menu
  - fill out all the info and submit
  - the update can take several hours

 * Announce on VersionTracker
  - ask Meuuh

 * Announce email
  - 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

