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