]> git.sesse.net Git - vlc/blobdiff - doc/release-howto.txt
decoder: add input_DecoderFlush()
[vlc] / doc / release-howto.txt
index b65e15a0a1a66a1518ce093910a26ded828e6212..43631dd957d0fe5f5fcc1befd7637cbaf3bbed09 100644 (file)
-[ Note: this howto is probably useful to core vlc developers only ]
+Release HOWTO
+-------------
 
-  Release HOWTO
-  -------------
+[ Note: this howto is probably useful to core vlc developers only ]
 
- * Tests : compilation, regression tests ...
+ * Tests: compilation, regression tests ...
 
  * Changes on the git repository
-   - update the version number everywhere it's needed
+   - Check that the version number everywhere it's needed
      · configure.ac
-     · extras/MacOSX/vlc.pbprj/project.pbxproj
-     · extras/MacOSX/Resources/English.lproj/InfoPlist.string
-     · read all the commits and add important things to the NEWS file
-     · update the milestones info on https://trac.videolan.org/vlc
-   - Add a note about the matching contrib package in INSTALL.win32
+     · NEWS
+   - Update important things and add them to the NEWS file
+   - Close the milestone on Trac https://trac.videolan.org/vlc
    - Update OpenGPG key embedded in include/vlc_update.h if needed
    - Increase the libvlccore and libvlc revisions in src/Makefile.am
-     _if_and_only_if_ the ABI number has not been increased instead, in
-     which case the revision goes back to zero.
+      _if_and_only_if_ the ABI number has not been increased instead, in
+      which case the revision goes back to zero.
 
  * Commit
+ * "Tag" the release
+    git tag -a -m "VLC Release VERSION" <VERSION>
+    (Create an annotated tag, you can skip -a if you used -m)
+    git push origin <VERSION>
 
  * Tarballs (Use a clean tree !!!)
-  - Use 'make distcheck' to make sure all files are exported
-    correctly
-  - copy the tar.bz2 file on ftp.videolan.org in
-    /opt/ftp/pub/videolan/testing/vlc-X.X.X/
-  - generate SHA1 hashes and gpg signature of these files
-    (use gpg --sign --detach --armor)
+  - Use 'make distcheck' to make sure all files are exported correctly
+  - copy the tar.xz file on ganesh.videolan.org
+  - generate SHA, MD5 hashes and OpenPGP signature of these files :
+        for file in vlc*; do
+            for sum in md5 sha1 sha256; do
+                ${sum}sum --binary $file > $file.$sum
+            done
+            gpg -sb -u VideoLAN\ Release --armor --force-v3-sigs $file
+        done
 
  * Contribs
-  - Put a copy of the libraries or git snapshot in vlc-X.X.X/contrib
-  - Put the relevant win32 contrib package
-  - Update developers.v.o/vlc and www.v.o/vlc/download-sources.html
-
- * BeOS Packages
-    Information on building: http://developers.videolan.org/vlc/beos-compile.html
-    Configure with --enable-update-check
-    Build in the "buildbeos" chroot on altair.
-    # add the .zip files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/beos/
-   generate md5 hashes and gpg signature of these files
-   (use gpg --sign --detach --armor)
+  - Put a copy of the libraries or git snapshot in ftp://ftp.videolan.org/pub/contrib/
+  - Put the relevant win32 and Mac OS contrib package
+  - Update s.v.o/vlc and www.v.o/vlc/download-sources.html
 
  * Win32 Packages
-    make the packages using the nightly builds configure/options/... , don't forget --enable-update-check
-    don't forget to test the installer and uninstaller (the first 0.8.4 uninstaller was broken ...
-    kind of suxxs)
-    add the .zip and .exe files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/win32/
-   generate md5 hashes and gpg signature of these files
-   (use gpg --sign --detach --armor)
-
- * OS X packages
-   configure with --enable-update-check
-   generate md5 hashes and gpg signature of these files
-   (use gpg --sign --detach --armor)
+  - configure using the extras/package/win32/configure.sh script
+  - copy the packages files on ganesh.videolan.org
+  - copy the vlc-2.0.4 and symbols-2.0.4 to balthazar for stacktraces
 
- * Commit changes ... it never works the first time
-
- * "Tag" the release
+ * Mac OS X packages
+  - configure using the extras/package/macosx/configure.sh script
+  - use extras/package/macosx/codesign.sh with options and key to sign it.
+  - copy the package to ganesh.videolan.org
 
-    git tag -a -m "VLC Release VERSION" <VERSION>
-    (Create an annotated tag, you can skip -a if you used -m)
-    git push origin <VERSION>
-
-    (You are advised to play with it on the sandrox.git if you feel unconfortable)
-
- * Move /opt/ftp/pub/videolan/testing/vlc-X.X.X to /opt/ftp/pub/videolan/vlc/X.X.X
+ * Sign all the files and move the signed files on /opt/ftp/pub/videolan/vlc/X.X.X
   - At first block access to this directory by http or ftp. Only authorize rsync.
-    This is to avoid leak as some journalist and forum seems to watch the ftp.
-  - Update the "latest" symlink
+    This is to avoid leak as some journalists and forums seem to watch the ftp.
+  - Update the "last" symlink
 
  * Update the website
-  - edit the /index.php /vlc/*.php pages
+  - edit the /index.php /vlc/*.php, include/os-specific.php files
+  - create a /vlc/release/X.X.X page
   - add a news item to news.msg
+  - update the front page OS dependant screenshots if the interface changed.
+  - update the md5
 
  * "Check for updates" functionality
-  - add /opt/ftp/pub/videolan/vlc/X.X.X/vlc-X.X.X-announce
-  - edit update.videolan.org/vlc/status.xml
+  - edit update.videolan.org/vlc/status
+  - gpg -u VideoLAN\ Release -t --sign --detach --armor
+  - for i in *asc;do gpg --verify $i || echo $i;done
 
  * Mirrors
-  - Forwarn the mirror admins
-  - Update the list of files for the mirror check (/var/www/local/mirrors.v.o/files)
-  - Disable mirrors which haven't replicated yet and possibly ganesh if enough
-    other mirrors
-
- * Update wiki
+  - Forwarn the mirror admins (optional for any minor release)
+  - Go to https://get.videolan.org/<path-to-the-file>?mirrorlist
+  - Ensures there is enough mirrors able to serve the file in each region
+    or just wait few more hours before doing the release.
+    Suggested number of mirrors:
+        - > 70% for a minor release
+        - > 80% for a major release
+        - > 80% for any auto-update
+  - Keep an eye on https://get.videolan.org/?mirrorstats during the release
+
+ * Update the wiki
   - edit http://wiki.videolan.org/Template:VLC:latest_version
 
- * Announce on www.gnome.org
-  - click on "Get more software"
-  - click on "Edit an existing map entry"
-  - look for the 'vlc' package
-  - update the version number and other info and submit
-  - the change is instantaneaous
-
- * Announce on www.freshmeat.net (let sam do it)
-  - you need a freshmeat account
-  - go to http://www.freshmeat.net/projects/vlc/
-  - click on the release's branch (ie Stable)
-  - chose "add release" in the dropdown menu
-  - fill out all the info and submit
-  - the update can take several hours
-
- * Announce on VersionTracker
-  - ask Meuuh
-
- * Announce email
-  - write something along the lines of previous releases
-  - post in videolan-announce (moderated), vlc et vlc-devel
-    You are advised to add the author list for this version 'git shortlog -s PREVIOUS_VERSION..VERSION'
+ * Announce on www.freecode.com (let jb or sam do it, if you lack the account)
+  - go to https://freecode.com/projects/vlc/
+  - chose "Submit a release" in the right menu, in "Administration"
+  - Do the steps and wait (the update can take several hours)
+
+ * Announce on Twitter, Facebook and G+
+  Unfortunately, those are more followed than the all other mediums combined
+
+ * Announce email and forum topic
+  - Write something along the lines of previous releases
+  - Post in videolan-announce (moderated), vlc et vlc-devel
+    You are advised to add the author list for this version using
+    'git shortlog -s PREVIOUS_VERSION..VERSION'
     And to add git diff --stat PREVIOUS_VERSION..VERSION if it's relevant.
-    You can play a bit with git to show the piece of information that may be interesting.
-  - add a sticky thread in the "General VLC media player discussion" forum
+    You can play a bit with git to show the piece of information that may be
+    interesting.
+  - Add a sticky thread in the "General VLC media player discussion" forum