From Fedora Project Wiki

(Add category)
(Remove all content, since jpackage is dead.)
Line 1: Line 1:
<!-- page was renamed from PackagingDrafts/ExceptionJPackage
{{Admon/warning | This is an old page which contained guidelines which are no longer relevant.}}
= Subrelease Packaging Guidelines for JPackage RPMS =
'''Author:''' [[TomCallaway|  Tom 'spot' Callaway]] <BR>
'''Revision:''' 0.06<BR>
'''Initial Draft:''' Tuesday Jan 16, 2007<BR>
'''Last Revised:''' Friday Jul 11, 2008<BR>
{{Admon/warning | These guidelines have changed significantly since 0.05. An archived copy of the old guidelines is here: [[Packaging/OldJPackagePolicy]].}}
== Summary ==
Fedora includes a set of open source Java RPM packages that originate from the JPackage repository (
Fedora does not permit "repotags" in its packages. It is necessary to remove the "jpp" component in the Fedora version of these packages.
Some additional guidelines have been drafted for these packages.
=== Managing upgrading packages from Fedora to JPackage and back ===
According to Fernando Nasser, JPackage RPMS only use integers in the Release: field, in the format Xjpp. If this is the case, then the following format will ensure clean upgrades from Fedora to JPackage and so forth:
JPackage RPMS have a Release of Xjpp (e.g. 1jpp). Fedora RPMS (which are taken from JPackage) will have a Release that takes the JPackage Release (Xjpp), removes the repotag (jpp) and appends a subrelease integer (Y). This will make the Fedora Java packages have a Release of: X.Y (e.g. 1.1).
While the Fedora package is in the devel branch, only the subrelease is incremented (e.g. 1.2, 1.3) until a new package from JPackage (e.g 2jpp) is merged into Fedora, at which point, the release would change to match the new JPackage RPM (without the repotag), and the subrelease would reset to 1.
Normally, we'd give the packager the choice of using '%{?dist}' or bumping the release to ensure clean upgrades across Fedora releases, but since we're trying to ensure hierarchy and upgrades from the JPackage repository, in this special case, use of the '%{?dist}' tag is mandatory. It would go at the end of the Release: field, (e.g. 1.1%{?dist})
Once the Fedora package is out of the devel branch and into a released branch, the release and subrelease fields are frozen. These packages are now subject to the [wiki:Self:NamingGuidelines#DistBump Minor release bumps for old branches]  rule.
{| border="1"
| '''JPackage'''          || '''Fedora Package'''          || '''Status'''                                          || '''Highest RPMver'''
| javacc-4.0-3jpp.src.rpm  || javacc-4.0-3.1.fc7.src.rpm || Package merged from JPackage into Fedora devel        || Fedora
| javacc-4.0-3jpp.src.rpm  || javacc-4.0-3.2.fc7.src.rpm || Fedora package has a bug fixed, bump subrelease      || Fedora
| javacc-4.0-3jpp.src.rpm  || javacc-4.0-3.3.fc7.src.rpm || Fedora package is rebuilt for new gcc, bump subrel    || Fedora
| javacc-4.0-4jpp.src.rpm  || javacc-4.0-3.3.fc7.src.rpm || JPackage is updated to fix a bug, bumps major release || JPackage
| javacc-4.0-4jpp.src.rpm  || javacc-4.0-4.1.fc7.src.rpm || Fedora package is merged from new JPackage            || Fedora
| javacc-5.0-1jpp.src.rpm  || javacc-4.0-4.1.fc7.src.rpm || JPackage releases new version of package              || JPackage
| javacc-5.0-1jpp.src.rpm  || javacc-5.0-1.1.fc7.src.rpm || Fedora package is merged from new JPackage            || Fedora
| javacc-5.0-1jpp.src.rpm  || javacc-5.0-1.1.fc7.src.rpm || FC-7 is released, package is no longer in devel      || Fedora
| javacc-5.0-1jpp.src.rpm  || javacc-5.0-1.1.fc7.1.src.rpm || A bug is fixed in the FC-7 package.                 || Fedora
This methodology ensures a clean upgrade process. This is, however, a violation of the naming policy around releases, and is only permitted in this special case exception for Fedora Java packages from JPackage.
==== Pre-release Packages ====
JPackage has a Release standard of: 0.X.tag.Yjpp for prerelease packages. Tag is where the alpha/beta/CVS/SVN/etc tag goes, X is an integer incremented upon tag changes, and Y is an integer which increments only for packaging fixes, plain rebuilds etc. This is based on Fedora's pre-release naming standards. The same Subrelease policy is in effect for JPackage derived pre-release Packages in Fedora, on top of the existing [wiki:Self:Packaging/NamingGuidelines#PreReleasePackages Fedora pre-release guidelines] . Here is an example of a pre-release using the JPackage Subrelease Policy:
{| border="1"
| '''JPackage'''                || '''Fedora Package'''                || '''Status'''                                          || '''Highest RPMver'''
| javacc-4.0-0.1.a.1jpp.src.rpm  || javacc-4.0-0.1.a.1.1.fc7.src.rpm || Package merged from JPackage into Fedora devel        || Fedora
| javacc-4.0-0.2.b.1jpp.src.rpm  || javacc-4.0-0.1.a.1.1.fc7.src.rpm || JPackage moves to "b" tag                            || JPackage
| javacc-4.0-0.2.b.1jpp.src.rpm  || javacc-4.0-0.2.b.1.1.fc7.src.rpm || Fedora version of "b" tag package                    || Fedora
| javacc-4.0-0.2.b.2jpp.src.rpm  || javacc-4.0-0.2.b.1.1.fc7.src.rpm || JPackage is rebuilt for packaging fix                || JPackage
| javacc-4.0-0.2.b.2jpp.src.rpm  || javacc-4.0-0.2.b.2.1.fc7.src.rpm || Fedora version of JPackage packaging fix              || Fedora
| javacc-4.0-0.2.b.2jpp.src.rpm  || javacc-4.0-0.2.b.2.2.fc7.src.rpm || Fedora rebuilds in devel against a new compiler      || Fedora
| javacc-4.0-0.2.b.2jpp.src.rpm  || javacc-4.0-0.2.b.2.2.fc7.src.rpm || FC-7 is released, package moves out of devel          || Fedora
| javacc-4.0-0.2.b.2jpp.src.rpm  || javacc-4.0-0.2.b.2.2.fc7.1.src.rpm || A bug is fixed in the FC-7 package.                || Fedora
| javacc-4.0-1jpp.src.rpm        || javacc-4.0-0.2.b.2.2.fc7.1.src.rpm || JPackage moves to final release (not pre anymore)  || JPackage
| javacc-4.0-1jpp.src.rpm        || javacc-4.0-1.1.fc7.src.rpm      || Fedora version of final package                      || Fedora
=== Track Package Hierarchy From JPackage to Fedora ===
With the subrelease scheme as documented above, it is very obvious from which JPackage RPM the Fedora Java package originated from.
== Policy Conditions Defined ==
* Fedora Java packages (which have a relationship to JPackage packages) must follow the subrelease versioning as defined in this document.
* No other packages fall under this policy (at this time).
* Packagers of Fedora Java packages need to explicitly agree to this policy during package review.
[[Category:Packaging guidelines]]

Latest revision as of 17:13, 8 September 2016

This is an old page which contained guidelines which are no longer relevant.