(explain OK sections) |
m (Convert to ol ... it just seemed more appropriate) |
||
Line 52: | Line 52: | ||
= Fixing the failures = | = Fixing the failures = | ||
The general guidelines | The general guidelines for resolving failures include: | ||
< | <ol> | ||
<li>'''Push first to the highest Fedora release and only then to a lower one.'''<br/> | <li>'''Push first to the highest Fedora release and only then to a lower one.'''<br/> | ||
You can of course propose your update for all supported Fedora releases at once, but upgradepath test will not pass for any Fedora release until it has been pushed to all higher Fedora releases. See [http://kparal.wordpress.com/2011/05/10/autoqa-why-upgradepath-test-fails-so-often/ longer explanation].</li> | You can of course propose your update for all supported Fedora releases at once, but upgradepath test will not pass for any Fedora release until it has been pushed to all higher Fedora releases. See [http://kparal.wordpress.com/2011/05/10/autoqa-why-upgradepath-test-fails-so-often/ longer explanation].</li> | ||
Line 60: | Line 60: | ||
<li>'''If you want to push a fix for an older Fedora but not for a newer one, do a proper minor release bump.'''<br/> | <li>'''If you want to push a fix for an older Fedora but not for a newer one, do a proper minor release bump.'''<br/> | ||
Read [[Packaging/NamingGuidelines#Minor_release_bumps_for_old_branches|Minor release bumps for old branches]] to learn more.</li> | Read [[Packaging/NamingGuidelines#Minor_release_bumps_for_old_branches|Minor release bumps for old branches]] to learn more.</li> | ||
</ | </ol> | ||
= Further help = | = Further help = |
Revision as of 12:35, 16 June 2011
Upgradepath is a constraint that is not formally described anywhere but it is generally understood as the ability to upgrade from Fedora release N to Fedora release N+1.
In other words no package dependencies may break when the user wants to upgrade his/her Fedora. That is achieved by requiring the higher Fedora release to contain at least the same or higher package build versions (in N-V-R sense) than the lower Fedora release.
AutoQA executes this test for any update that is proposed in Bodhi and reports the result using Bodhi comments at the update page.
Understanding failures
This is a sample output of the upgradepath test, where gthumb-2.12.3-1.fc14
was requested to be pushed to dist-f14-updates
repository:
======================================== gthumb-2.12.3-1.fc14 into dist-f14-updates ======================================== [ OK ] dist-f13 Latest package: gthumb-2.11.3-1.fc13 [ OK ] dist-f13-updates Latest package: gthumb-2.12.2-1.fc13 [ OK ] dist-f14 Latest package: gthumb-2.12.0-1.fc14 [FAIL] dist-f15 + dist-f15-updates Latest package: gthumb-2.12.2-2.fc15 Error: Proposed package must be less than or equal to the latest package [ OK ] dist-f16 Latest package: gthumb-2.12.3-2.fc16 RESULT: FAILED
The OK sections denote repositories where upgradepath constraint would be fulfilled after pushing the proposed update. For example it would be possible to upgrade from dist-f13
, because it contains lower version of gthumb
package. And it would be also possible to upgrade to dist-f16
, because it contains higher version of gthumb
package. Similarly for other repositories marked as OK.
If you look closely at the FAIL section, you'll see, that union of dist-f15
and dist-f15-updates
repositories contains only gthumb-2.12.2-2.fc15
, which is lower version than currently proposed gthumb-2.12.3-1.fc14
for dist-f14-updates
. It fails because you wouldn't be able upgrade from F14 to F15 correctly if the proposed update had been pushed.
In the example above, the package maintainer may have proposed the same update (gthumb-2.12.3-1
) also for dist-f15-updates
at the same time. If both updates were pushed simultaneously, the upgradepath constraint would be satisfied. Unfortunately AutoQA cannot enforce that in the moment and therefore the update for dist-f14-updates
will continue to fail the test until the update for dist-f15-updates
is pushed.
Upgradepath test algorithm
The formal description of the algorithm AutoQA uses for checking upgradepath constraint is here:
== Pushing to main repository == Pushing PKG to F(N)-main means: 1. PKG in F(lower)-main <= PKG to push 2. PKG in F(higher)-main >= PKG to push == Pushing to updates repository == Pushing PKG to F(N)-updates means: 1. PKG in F(lower)-main <= PKG to push 2. PKG in F(lower)-updates <= PKG to push 3. PKG in F(higher)-main union F(higher)-updates => PKG to push Note: If PKG doesn't exist in REPO, it also satisfies any condition
Fixing the failures
The general guidelines for resolving failures include:
- Push first to the highest Fedora release and only then to a lower one.
You can of course propose your update for all supported Fedora releases at once, but upgradepath test will not pass for any Fedora release until it has been pushed to all higher Fedora releases. See longer explanation. - Consult packaging guidelines when in doubt how package build versions are compared.
See especially the Naming guidelines. - If you want to push a fix for an older Fedora but not for a newer one, do a proper minor release bump.
Read Minor release bumps for old branches to learn more.
Further help
If you still don't understand why your update failed the test, or if you think there's something wrong in our test or its documentation, or if you have any other suggestions, please contact us.