acacfd1eadef5fe5dab99dae3c416b04a7abc8a0
[vlc.git] / doc / release-howto.txt
1 [ Note: this howto is probably useful to core vlc developers only ]
2
3   Release HOWTO
4   -------------
5
6  * Tests: compilation, regression tests ...
7
8  * Changes on the git repository
9    - Check that the version number everywhere it's needed
10      · configure.ac
11      · NEWS
12    - Update important things and add them to the NEWS file
13    - Close the milestone on Trac https://trac.videolan.org/vlc
14    - Update OpenGPG key embedded in include/vlc_update.h if needed
15    - Increase the libvlccore and libvlc revisions in src/Makefile.am
16       _if_and_only_if_ the ABI number has not been increased instead, in
17       which case the revision goes back to zero.
18
19  * Commit
20  * Tag the commit
21
22  * Tarballs (Use a clean tree !!!)
23   - Use 'make distcheck' to make sure all files are exported correctly
24   - copy the tar.xz file on altair.videolan.org
25   - copy the binaries files on altair.videolan.org, if possible
26   - generate SHA, MD5 hashes and OpenPGP signature of these files
27     (use sha*sum --binary, md5sum --binary, gpg --sign --detach --armor)
28     Use the ~/bin/sumandsign.sh script
29
30  * Contribs
31   - Put a copy of the libraries or git snapshot in vlc-X.X.X/contrib
32   - Put the relevant win32 contrib package
33   - Update developers.v.o/vlc and www.v.o/vlc/download-sources.html
34
35  * Win32 Packages
36   - configure using the extras/package/win32/configure.sh script
37   - move to altair and generate md5 plus SHA1 hashes and gpg signature of these files
38     (c.f. Tarballs)
39
40  * OS X packages
41   - configure using ./configure --enable-macosx
42   - compile the source on both a PowerPC and an Intel-based Mac. Don't try to
43     cross-compile for either platform. Don't forget the framework.
44   - use extras/package/macosx/ub.sh to create a Universal Binary.
45   - move to altair and generate md5 plus SHA1 hashes and gpg signature of these files
46     (c.f. Tarballs)
47
48  * Commit changes ... it never works the first time
49
50  * "Tag" the release
51     git tag -a -m "VLC Release VERSION" <VERSION>
52     (Create an annotated tag, you can skip -a if you used -m)
53     git push origin <VERSION>
54
55  * Move the signed files from altair to ganesh, on /opt/ftp/pub/videolan/vlc/X.X.X
56   - At first block access to this directory by http or ftp. Only authorize rsync.
57     This is to avoid leak as some journalists and forums seem to watch the ftp.
58   - Update the "last" symlink
59
60  * Update the website
61   - edit the /index.php /vlc/*.php, include/os-specific.php files
62   - create a /vlc/release/X.X.X page
63   - add a news item to news.msg
64   - update the front page OS dependant screenshots if the interface changed.
65
66  * "Check for updates" functionality
67   - edit update.videolan.org/vlc/status
68   - gpg -t --sign --detach --armor
69
70  * Mirrors (if necessary)
71   - Forwarn the mirror admins
72   - Update the list of files for the mirror check 
73      (/var/www/local/mirrors.v.o/files)
74   - Disable mirrors which haven't synced yet and possibly ganesh if there are
75     enough other mirrors (see http://mirrors.videolan.org/release.html)
76
77  * Update the wiki
78   - edit http://wiki.videolan.org/Template:VLC:latest_version
79
80  * Announce on www.freshmeat.net (let jb or sam do it)
81   - you need a freshmeat account
82   - go to http://www.freshmeat.net/projects/vlc/
83   - chose "Submit a release" in the right menu
84   - fill out all the info and submit
85   - the update can take several hours
86
87  * Announce on VersionTracker
88   - ask Meuuh
89
90  * Announce on twitter and facebook...
91   Unfortunately, those are more followed than the other means
92
93  * Announce email and forum topic
94   - write something along the lines of previous releases
95   - post in videolan-announce (moderated), vlc et vlc-devel
96     You are advised to add the author list for this version using
97     'git shortlog -s PREVIOUS_VERSION..VERSION'
98     And to add git diff --stat PREVIOUS_VERSION..VERSION if it's relevant.
99     You can play a bit with git to show the piece of information that may be
100     interesting.
101   - add a sticky thread in the "General VLC media player discussion" forum
102