aboutsummaryrefslogtreecommitdiffstats
path: root/doc/developer.texi
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-03-17 12:32:07 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-03-17 12:58:44 +0100
commitac1cea55ad0f2c98c5ba7f082c56e2211711e421 (patch)
treec7276c468b96f0398bbcdda61ec6c1a1daaaf6ed /doc/developer.texi
parent79b1835726943d560d8846386df2f0efc110fadd (diff)
parent23f4c5acc438366d84cacf49e33b0bcd72f04937 (diff)
downloadffmpeg-ac1cea55ad0f2c98c5ba7f082c56e2211711e421.tar.gz
Merge commit '23f4c5acc438366d84cacf49e33b0bcd72f04937'
* commit '23f4c5acc438366d84cacf49e33b0bcd72f04937': document the release process Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'doc/developer.texi')
-rw-r--r--doc/developer.texi85
1 files changed, 85 insertions, 0 deletions
diff --git a/doc/developer.texi b/doc/developer.texi
index fe4b40ac4a..9d906f28d9 100644
--- a/doc/developer.texi
+++ b/doc/developer.texi
@@ -577,4 +577,89 @@ message or introductionary message for the patch series that you post to
the ffmpeg-devel mailing list, a direct link to download the sample media.
+@anchor{Release process}
+@section Release process
+
+FFmpeg maintains a set of @strong{release branches}, which are the
+recommended deliverable for system integrators and distributors (such as
+Linux distributions, etc.). At regular times, a @strong{release
+manager} prepares, tests and publishes tarballs on the
+@url{http://ffmpeg.org} website.
+
+There are two kinds of releases:
+
+@enumerate
+@item
+ @strong{Major releases} always include the latest and greatest
+ features and functionality.
+@item
+ @strong{Point releases} are cut from @strong{release} branches,
+ which are named @code{release/X}, with @code{X} being the release
+ version number.
+@end enumerate
+
+Note that we promise to our users that shared libraries from any FFmpeg
+release never break programs that have been @strong{compiled} against
+previous versions of @strong{the same release series} in any case!
+
+However, from time to time, we do make API changes that require adaptations
+in applications. Such changes are only allowed in (new) major releases and
+require further steps such as bumping library version numbers and/or
+adjustments to the symbol versioning file. Please discuss such changes
+on the @strong{ffmpeg-devel} mailing list in time to allow forward planning.
+
+@anchor{Criteria for Point Releases}
+@subsection Criteria for Point Releases
+
+Changes that match the following criteria are valid candidates for
+inclusion into a point release:
+
+@enumerate
+@item
+ Fixes a security issue, preferably identified by a @strong{CVE
+ number} issued by @url{http://cve.mitre.org/}.
+@item
+ Fixes a documented bug in @url{https://ffmpeg.org/trac/ffmpeg}.
+@item
+ Improves the included documentation.
+@item
+ Retains both source code and binary compatibility with previous
+ point releases of the same release branch.
+@end enumerate
+
+The order for checking the rules is (1 OR 2 OR 3) AND 4.
+
+
+@subsection Release Checklist
+
+The release process involves the following steps:
+
+@enumerate
+@item
+ Ensure that the @file{RELEASE} file contains the version number for
+ the upcoming release.
+@item
+ Add the release at @url{https://ffmpeg.org/trac/ffmpeg/admin/ticket/versions}.
+@item
+ Announce the intent to do a release to the mailing list.
+@item
+ Ensure that the FATE regression suite still passes in the release
+ branch on at least @strong{i386} and @strong{amd64}
+ (cf. @ref{Regression Tests}).
+@item
+ Prepare the release tarballs in @code{bz2} and @code{gz} formats, and
+ supplementing files that contain @code{gpg} signatures
+@item
+ Publish the tarballs at @url{http://ffmpeg.org/releases}. Create and
+ push an annotated tag in the form @code{nX}, with @code{X}
+ containing the version number.
+@item
+ Propose and send a patch to the @strong{ffmpeg-devel} mailing list
+ with a news entry for the website.
+@item
+ Publish the news entry.
+@item
+ Send announcement to the mailing list.
+@end enumerate
+
@bye