From Fedora Project Wiki

No edit summary
(obsolete)
 
(12 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 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 ==
 
 
[[Category:AutoQA tests]]

Latest revision as of 08:26, 22 June 2017

AutoQA is now obsolete and replaced by Taskotron.