gstreamer/docs/random/release
2010-01-15 00:48:05 +00:00

112 lines
4.7 KiB
Text

GStreamer Release Policies (or: why we should become a country and pass laws)
--------------------------
Development Period
------------------
Development period is marked by having a fourth (nano) version number of 1.
During development anything goes short of wiping the tree.
Just try doing a few basic things :
- make sure it builds for you !
- check what you're about to commit with cvs -Q diff -r
- preferably, keep an anonymous checkout around as well so you can
immediately update and check if your changes work in a clean tree as well
Prerelease Period
-----------------
After a bit of development, people want a new release. This generally happens
when :
- core developers get anxious to apply massive changes to the core bound
to break everything
- a few important plugins decide, as if by magic, to work again (avi, mad, ...)
- thaytan or thomasvs get tired of being lazy.
Also, this should only be allowed after passing a few sanity checks :
- make distcheck should pass
- rpms should build
- FIXME: should debs be built here ? If so, how ?
At this time, we need to do a few prereleases for general checking by all
interested developers. To minimize the impact on the rest of the core hacking,
we create a new CVS branch which will go through the pre-releases and finally
contain the definitive tarball for that version.
RELEASE PROCEDURE:
-----------------
- www/bin/new-release is a release helper script. It automates a lot of the
tedious work. Now releasing looks like this:
- before release:
- make sure all blocker bugs for that release are fixed or deferred
- make sure you have a local copy of all online files
- run 'make download-po' to make sure translations in CVS are up-to-date,
and then 'make update-po' in po/ (which will update the .pot template too
and merge the changes into the .po files)
- Make one or more prereleases
- Make sure you've got the latest clean CVS of the module
- Run bin/data-get in www/ to sync data from website
- Bump the nano number to > 2 (eg, first pre-release for
0.10.12 is 0.10.11.2)
- When releasing -base/-good/-ugly/-bad/gnonlin, make sure GST_REQ and
GST_PBREQ are up-to-date. In particular, keep GST_REQ of the
to-be-released -base module in sync with the core version that is to
be released at the same time
- Re-autogen if not in maintainer-mode (which you should be)
- Update the changelog
python common/gen-changelog.py > ChangeLog
- Check (and fix if necessary) make distcheck
- run 'make release' to build the tarballs
- copy tarballs+md5 sums to the data/src/$module/pre/ dir
- Run bin/data-put in www/ to sync the new tarballs to the website
- Announce the availability of the new tarballs
- Tell the translation project by sending an email to
coordinator@translationproject.org, eg:
Subject: gst-plugins-bad-0.10.5.2.pot available
Tarball is at http://gstreamer.freedesktop.org/src/gst-plugins-bad/pre/gst-plugins-bad-0.10.5.2.tar.bz2
- prepare the release:
- Make sure your www is up to date: Run bin/data-get in www/
- Update the doap file to insert the new release info
- bin/new-release (module) (version) (checkoutdir) (release name)
- updates cvs
- allows you to update versioning in configure.ac
- rebuilds
- updates ChangeLog
- adds a new releases/module/version.xml file and lets you edit
--> here you add/fix up the features (from ChangeLog) and check
contributors
- allows you to update NEWS file with snippets from RELEASE
--> copy stuff
- rebuilds docs for plugins
- rolls release tarballs and puts them in the local www/data tree
- uploads docs to website
- commits changes to po files
- shows you a diff for evaluation
- build packages to test
- release:
- 'git commit -a' in the tree
- tag tree
for example for 0.6.3 :
git tag -a -m 'Release 0.6.3' RELEASE-0.6.3
Make sure to use the -a option to create an *annotated* tag: 'git describe'
should show 'RELEASE-0.6.3'
- bump nano number in configure.ac, commit
- sync source and packages to website
+ run /bin/data-put in www
- change versions in www/src/htdocs/entities.gst
- add entry on website
+ Edit src/htdocs/news/news.xml and add a new item at the bottom.
- commit additions to website
- add versions and milestones in bugzilla
- upload new core, -base and -good tarballs to gnome ftp
+ e.g:
scp gstreamer-0.10.42.tar.gz master.gnome.org:
ssh master.gnome.org
install-module gstreamer-0.10.42.tar.gz
- Send release announcements to:
gstreamer-devel@lists.sourceforge.net gstreamer-announce@lists.sourceforge.net kde-multimedia@kde.org gnome-multimedia@gnome.org
- Update freshmeat with new releases (get Uraeus to do it)