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