From Fedora Project Wiki

Revision as of 02:54, 15 November 2016 by Tibbs (talk | contribs)


Ideally there will be at least one example here for every tricky versioning scenario.

Things to add which we don't currently have examples for:

  • Upstream just uses random words as names: "spectacled", "cinnamon", "polar", "kodiak".
  • Upstream uses negative numbers. "1.-1.7", "1.-1.8", "1.0.0". (I sure hope nobody ever does this, but I don't actually know how we would handle it.)


Simple versioning
Upstream version Description Version: Release: Explanation


Example (post-release cvs):

pkg-1.0-1%{?dist} (this is the formal release of pkg 1.0)
pkg-1.0-2%{?dist} (this is a bugfix build to the 1.0 release)
pkg-1.0-3.20050515cvs%{?dist} (move to a post-release cvs checkout)
pkg-1.0-4.20050515cvs%{?dist} (bugfix to the post-release cvs checkout)
pkg-1.0-5.20050517cvs%{?dist} (new cvs checkout, note the increment of %{X})

Examples

Example (pkg pre-release)
Source Archive Description
pkg-1.4a.tar.gz (this is a pre-release, version 1.4a of pkg)
pkg-1.4.tar.gz (this is what the 1.4 release will actually look like)
Release Tag Explanation
pkg-1.4-0.1.a%{?dist} (so, this is the acceptable Fedora %{name}-%{version}-%{release})
pkg-1.4-1%{?dist} (and this is what the 1.4 release Fedora %{name}-%{version}-%{release} should be)


Example (pkg pre-release)
Source Archive Description
pkg-0.9.2beta1.tar.gz (this is a beta release of pkg, version 0.9.2beta1)
Release Tag Explanation
pkg-0.9.2-0.1.beta1%{?dist} (this is the correct Fedora %{name}-%{version}-%{release})
pkg-0.9.2-0.2.beta1%{?dist} (this is an incremented Fedora %{name}-%{version}-%{release}. Note that the first 0 is not incremented.)


Example (pkg pre-release svn checkout)
Release Tag Explanation
pkg-0-0.1.20040110svn%{?dist} (this is a pre-release, svn checkout of pkg)
pkg-0-0.2.20040110svn%{?dist} (this is a bugfix to the previous package)
pkg-0-0.3.20040204svn%{?dist} (this is a new svn checkout, note the increment of %{X})
pkg-1.0-1%{?dist} (this is the formal release of pkg 1.0)


Upgrade Path Example
Release Tag Explanation
pkg-1.4-0.1.a%{?dist} (this is the Fedora package for 1.4a, as above)
pkg-1.4-0.2.a%{?dist} (this is the first patch on top of 1.4a)
pkg-1.4-0.3.a%{?dist} (this is another new patch on top of 1.4a)
pkg-1.4-0.4.b%{?dist} (this is the first build after upgrade to 1.4b)
pkg-1.4-0.5.b%{?dist} (this is a new patch on top of 1.4b)
pkg-1.4-1%{?dist} (this is after moving to 1.4 "final", and to a normal version)
pkg-1.4-2%{?dist} (this is a new patch on top of 1.4 "final")


Upgrade Path Example (pkg)
Release Tag Explanation
pkg-0.9.2-0.1.beta1%{?dist} (this is the Fedora package for 0.9.2beta1, as above)
pkg-0.9.2-0.2.beta1%{?dist} (this is a new patch on top of 0.9.2beta1)
pkg-0.9.2-0.3.beta2%{?dist} (this is after upgrading to 0.9.2beta2)
pkg-0.9.2-0.4.beta3%{?dist} (this is after upgrading to 0.9.2beta3)
pkg-0.9.2-0.5.beta3%{?dist} (this is a new patch on top of 0.9.2beta3)
pkg-0.9.2-0.6.rc1%{?dist} (this is after upgrading to 0.9.2rc1)
pkg-0.9.2-0.7.rc2%{?dist} (this is after upgrading to 0.9.2rc2)
pkg-0.9.2-1%{?dist} (this is after upgrading to 0.9.2 "final", version becomes normal)
pkg-0.9.2-2%{?dist} (this is a new patch on top of 0.9.2 "final")

Example (complicated post-release):

pkg-1.1.0-0.1.BETA%{?dist} (this is a prerelease, first beta)
pkg-1.1.0-0.2.BETA1%{?dist} (this is a prerelease, second beta)
pkg-1.1.0-0.3.BETA2%{?dist} (this is a prerelease, third beta)
pkg-1.1.0-0.4.CR1%{?dist} (this is a prerelease, candidate release 1)
pkg-1.1.0-0.5.CR2%{?dist} (this is a prerelease, candidate release 2)
pkg-1.1.0-1%{?dist} (final release)
pkg-1.1.0-2.GA1%{?dist} (post release, GA1)
pkg-1.1.0-3.CP1%{?dist} (post release, CP1, after GA1)
pkg-1.1.0-4.CP2%{?dist} (post release, CP2, after CP1)
pkg-1.1.0-5.SP1%{?dist} (post release, SP1, after CP2)
pkg-1.1.0-6.SP1_CP1%{?dist} (post release, SP1_CP1, after SP1)