a0c7953bb627ffd3724f00804983a42478c6560f
[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.xz file on ftp.videolan.org in
26     /opt/ftp/pub/videolan/testing/vlc-X.X.X/
27   - generate SHA, MD5 hashes and OpenPGP signature of these files
28     (use sha*sum --binary, md5sum --binary, 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  * Win32 Packages
36     make the packages using the nightly builds configure/options/... , don't
37      forget --enable-update-check
38     don't forget to test the installer and uninstaller (the first 0.8.4
39     uninstaller was broken ... kind of suxxs)
40     add the .zip and .exe files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/win32/
41     generate md5 plus SHA1 hashes and gpg signature of these files
42     (c.f. Tarballs)
43
44  * OS X packages
45     Information on compilation: wiki.videolan.org/OSXCompile
46     configure with --enable-update-check
47     compile the source on both a PowerPC and an Intel-based Mac. Don't try to
48     cross-compile for either platform. Don't forget the framework.
49     use extras/package/macosx/ub.sh to create a Universal Binary. Test it on   
50      PowerPC and Intel-based Macs.
51     add the .dmg files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/macosx/
52     Nomenclature is vlc-X.X.X-$(PLATFORM).dmg respectively 
53      vlc-plugin-X.X.X-$(PLATFORM).dmg and vlckit-X.X.X-$(PLATFORM).dmg. 
54     Don't put any platform for the UB package.
55     generate md5 plus SHA1 hashes and gpg signature of these files
56      (c.f. gpg --sign --detach --armor)
57
58  * Commit changes ... it never works the first time
59
60  * "Tag" the release
61
62     git tag -a -m "VLC Release VERSION" <VERSION>
63     (Create an annotated tag, you can skip -a if you used -m)
64     git push origin <VERSION>
65
66     (You are advised to play with it on the sandrox.git if you feel 
67      uncomfortable)
68
69  * Move /opt/ftp/pub/videolan/testing/vlc-X.X.X to 
70      /opt/ftp/pub/videolan/vlc/X.X.X
71   - At first block access to this directory by http or ftp. Only authorize 
72      rsync.
73      This is to avoid leak as some journalists and forums seem to watch the ftp.
74   - Update the "latest" symlink
75
76  * Update the website
77   - edit the /index.php /vlc/*.php pages
78   - add a news item to news.msg
79   - update the front page OS dependant screenshots if the interface changed.
80
81  * "Check for updates" functionality
82   - add /opt/ftp/pub/videolan/vlc/X.X.X/vlc-X.X.X-announce
83   - edit update.videolan.org/vlc/status
84
85  * Mirrors
86   - Forwarn the mirror admins
87   - Update the list of files for the mirror check 
88      (/var/www/local/mirrors.v.o/files)
89   - Disable mirrors which haven't synced yet and possibly ganesh if there are
90     enough other mirrors (see http://mirrors.videolan.org/release.html)
91
92  * Update the wiki
93   - edit http://wiki.videolan.org/Template:VLC:latest_version
94   - put the respective NEWS page to wiki.videolan.org/Changelog/X.X.X
95   - announce the release on the Main Page
96
97  * Announce on www.gnome.org
98   - click on "Get more software"
99   - click on "Edit an existing map entry"
100   - look for the 'vlc' package
101   - update the version number and other info and submit
102   - the change is instantaneous
103
104  * Announce on www.freshmeat.net (let sam do it)
105   - you need a freshmeat account
106   - go to http://www.freshmeat.net/projects/vlc/
107   - click on the release's branch (i.e. Stable)
108   - chose "add release" in the drop-down menu
109   - fill out all the info and submit
110   - the update can take several hours
111
112  * Announce on VersionTracker
113   - ask Meuuh
114
115  * Announce email and forum topic
116   - write something along the lines of previous releases
117   - post in videolan-announce (moderated), vlc et vlc-devel
118     You are advised to add the author list for this version using
119     'git shortlog -s PREVIOUS_VERSION..VERSION'
120     And to add git diff --stat PREVIOUS_VERSION..VERSION if it's relevant.
121     You can play a bit with git to show the piece of information that may be
122     interesting.
123   - add a sticky thread in the "General VLC media player discussion" forum
124