From Fedora Project Wiki

(obsolete)
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''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''.
'''[[AutoQA]] is now obsolete and replaced by [[Taskotron]].'''
 
In other words no package dependencies may break when the user want 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.
 
{{admon/note|Does not apply for updates-testing|Upgradepath constraint is currently checked for main and stable updates repositories. It is [https://fedorahosted.org/autoqa/ticket/231 not checked] for updates-testing repository.}}
 
= Understanding failures =
This is a sample output of the upgradepath test, where <code>selinux-policy-3.9.16-21.fc15</code> was requested to be pushed to <code>f15-updates</code> repository:
 
<pre>
========================================
selinux-policy-3.9.16-21.fc15 into dist-f15-updates
========================================
[ OK ] dist-f13
Latest package: selinux-policy-3.7.19-10.fc13
[ OK ] dist-f13-updates
Latest package: selinux-policy-3.7.19-101.fc13
[ OK ] dist-f14
Latest package: selinux-policy-3.9.7-3.fc14
[ OK ] dist-f14-updates
Latest package: selinux-policy-3.9.7-40.fc14
[ OK ] dist-f15
Latest package: selinux-policy-3.9.16-18.fc15
[FAIL] dist-f16
Latest package: selinux-policy-3.9.16-15.fc16
Error: Proposed package must be less than or equal to the latest package
RESULT: FAILED
</pre>
 
If you look closely at the '''FAIL''' section, you'll see, that <code>dist-f16</code> (current [[Rawhide]]) contains only <code>selinux-policy-3.9.16-15.fc16</code>, which is lower version than currently proposed <code>selinux-policy-3.9.16-21.fc15</code> for <code>f15-updates</code>. It fails because you wouldn't be able upgrade from F15 to F16 correctly if the proposed update had been pushed.
 
== Upgradepath test algorithm ==
The formal description of the algorithm AutoQA uses for checking upgradepath constraint is here:
<pre>
== 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
</pre>
 
= Fixing the failures =
The general guidelines are these:
<ul>
<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.</li>
<li>'''Consult packaging guidelines when in doubt how package build versions are compared.'''<br/>
See especially the [[Packaging:NamingGuidelines|Naming guidelines]].</li>
<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>
</ul>
 
= 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 [[AutoQA#Communicate|contact us]].
 
 
[[Category:AutoQA tests]]

Latest revision as of 08:26, 22 June 2017

AutoQA is now obsolete and replaced by Taskotron.