eff321bdbe65b4b41b2707a00881ed015c7f24d0
[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    - update the version number everywhere it's needed
10      ยท configure.ac
11    - update the NEWS files, as well as the Trac database.
12      read all the commits and add important things to the NEWS file
13    - update the milestones info on https://trac.videolan.org/vlc
14    - Add a note about the matching contrib package in INSTALL.win32
15    - Update OpenGPG key embedded in include/vlc_update.h if needed
16    - Increase the libvlccore and libvlc revisions in src/Makefile.am
17       _if_and_only_if_ the ABI number has not been increased instead, in
18       which case the revision goes back to zero.
19
20  * Commit
21
22  * Tarballs (Use a clean tree !!!)
23   - Use 'make distcheck' to make sure all files are exported
24     correctly
25   - copy the tar.bz2 file on ftp.videolan.org in
26     /opt/ftp/pub/videolan/testing/vlc-X.X.X/
27   - generate SHA1 plus md5 hashes and gpg signature of these files
28     (use gpg --sign --detach --armor)
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  * BeOS Packages
36     Information on building: http://developers.videolan.org/vlc/beos-compile.html
37     Configure with --enable-update-check
38     Build in the "buildbeos" chroot on altair.
39     # add the .zip files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/beos/
40     generate md5 plus SHA1 hashes and gpg signature of these files
41     (use gpg --sign --detach --armor)
42
43  * Win32 Packages
44     make the packages using the nightly builds configure/options/... , don't
45      forget --enable-update-check
46     don't forget to test the installer and uninstaller (the first 0.8.4
47     uninstaller was broken ... kind of suxxs)
48     add the .zip and .exe files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/win32/
49     generate md5 plus SHA1 hashes and gpg signature of these files
50     (use gpg --sign --detach --armor)
51
52  * OS X packages
53     Information on compilation: wiki.videolan.org/OSXCompile
54     configure with --enable-update-check
55     compile the source on both a PowerPC and an Intel-based Mac. Don't try to
56     cross-compile for either platform. Don't forget the framework.
57     use extras/package/macosx/ub.sh to create a Universal Binary. Test it on   
58      PowerPC and Intel-based Macs.
59     add the .dmg files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/macosx/
60     Nomenclature is vlc-X.X.X-$(PLATFORM).dmg respectively 
61      vlc-plugin-X.X.X-$(PLATFORM).dmg and vlckit-X.X.X-$(PLATFORM).dmg. 
62     Don't put any platform for the UB package.
63     generate md5 plus SHA1 hashes and gpg signature of these files
64      (use gpg --sign --detach --armor)
65
66  * Commit changes ... it never works the first time
67
68  * "Tag" the release
69
70     git tag -a -m "VLC Release VERSION" <VERSION>
71     (Create an annotated tag, you can skip -a if you used -m)
72     git push origin <VERSION>
73
74     (You are advised to play with it on the sandrox.git if you feel 
75      uncomfortable)
76
77  * Move /opt/ftp/pub/videolan/testing/vlc-X.X.X to 
78      /opt/ftp/pub/videolan/vlc/X.X.X
79   - At first block access to this directory by http or ftp. Only authorize 
80      rsync.
81      This is to avoid leak as some journalists and forums seem to watch the ftp.
82   - Update the "latest" symlink
83
84  * Update the website
85   - edit the /index.php /vlc/*.php pages
86   - add a news item to news.msg
87   - update the front page OS dependant screenshots if the interface changed.
88
89  * "Check for updates" functionality
90   - add /opt/ftp/pub/videolan/vlc/X.X.X/vlc-X.X.X-announce
91   - edit update.videolan.org/vlc/status.xml
92
93  * Mirrors
94   - Forwarn the mirror admins
95   - Update the list of files for the mirror check 
96      (/var/www/local/mirrors.v.o/files)
97   - Disable mirrors which haven't synced yet and possibly ganesh if there are
98     enough other mirrors (see http://mirrors.videolan.org/release.html)
99
100  * Update the wiki
101   - edit http://wiki.videolan.org/Template:VLC:latest_version
102   - put the respective NEWS page to wiki.videolan.org/Changelog/X.X.X
103   - announce the release on the Main Page
104
105  * Announce on www.gnome.org
106   - click on "Get more software"
107   - click on "Edit an existing map entry"
108   - look for the 'vlc' package
109   - update the version number and other info and submit
110   - the change is instantaneous
111
112  * Announce on www.freshmeat.net (let sam do it)
113   - you need a freshmeat account
114   - go to http://www.freshmeat.net/projects/vlc/
115   - click on the release's branch (i.e. Stable)
116   - chose "add release" in the drop-down menu
117   - fill out all the info and submit
118   - the update can take several hours
119
120  * Announce on VersionTracker
121   - ask Meuuh
122
123  * Announce email and forum topic
124   - write something along the lines of previous releases
125   - post in videolan-announce (moderated), vlc et vlc-devel
126     You are advised to add the author list for this version using
127     'git shortlog -s PREVIOUS_VERSION..VERSION'
128     And to add git diff --stat PREVIOUS_VERSION..VERSION if it's relevant.
129     You can play a bit with git to show the piece of information that may be
130     interesting.
131   - add a sticky thread in the "General VLC media player discussion" forum
132