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