Line 13: | Line 13: | ||
TBD. Currently [[User:mdomsch|Matt Domsch]] does so on a private build system. However, this should be come a Fedora Project task. | TBD. Currently [[User:mdomsch|Matt Domsch]] does so on a private build system. However, this should be come a Fedora Project task. | ||
We will remove packages that have failed to build for at least two release cycles. For example, in preparation for Fedora 16 branching, packages which FTBFS since | We will remove packages that have failed to build for at least two release cycles. For example, in preparation for Fedora 16 branching, packages which FTBFS since the Fedora 14 cycle (dist tag of fc14 or earlier) will be considered candidates for removal. | ||
Given a candidate list from above, rel-eng should attempt to build each of the candidate packages using koji. Should package building now succeed, the package may be removed from the candidate list. | Given a candidate list from above, rel-eng should attempt to build each of the candidate packages using koji. Should package building now succeed, the package may be removed from the candidate list. |
Revision as of 21:29, 27 June 2011
Description
Every release prior to the Feature Freeze we deprecate all packages that FTBFS. This keeps out software that no longer builds from source, and prevents future problems down the road.
Action
The FTBFS process takes place in stages:
- Detecting a list of FTBFS packages and the dependencies that will be broken if they are removed.
- Sending the list of potential deprecated FTBFS packages to devel@lists.fedoraproject.org for community review and removal from the FTBFS list by fixing the package.
- Removing packages confirmed as FTBFS from the Fedora package repositories.
Detecting FTBFS
TBD. Currently Matt Domsch does so on a private build system. However, this should be come a Fedora Project task.
We will remove packages that have failed to build for at least two release cycles. For example, in preparation for Fedora 16 branching, packages which FTBFS since the Fedora 14 cycle (dist tag of fc14 or earlier) will be considered candidates for removal.
Given a candidate list from above, rel-eng should attempt to build each of the candidate packages using koji. Should package building now succeed, the package may be removed from the candidate list.
Announcing Packages to be Deprecated
Email the output to the development list (devel@lists.fedodraproject.org) at least a week before the feature freeze. This gives maintainers an opportunity to fix packages that are important to them. Follow-up on the list where necessary.
Blocking FTBFS packages
Once maintainers have been given an opportunity to pick up and fix FTBFS packages, the remaining packages are deprecated by blocking them, and creating the dead.package
file in git.
PackageDB
Use the Deprecate Package
button in PackageDB to deprecate a package. This shows interested maintainers, that the package is now deprecated. There might also be a way to do this with a command line client.
Koji
The block-pkg koji
command is used to do the blocking.
$ koji block-pkg --help Usage: koji block-pkg [options] tag package [package2 ...] (Specify the --help global option for a list of other help options) Options: -h, --help show this help message and exit
Koji accepts multiple package names as input and thus we can use the FTBFS package list as input. Deprecated packages are only blocked from the latest dist-f##
tag. For example, if we wanted to deprecate (block) sbackup, roxterm,
and uisp
from rawhide during the development of Fedora 16 we would run the following command:
$ koji block-pkg dist-f16 sbackup roxterm uisp
GIT
We just have to remove the existing files from the master
branch and replace them with a dead.package
file whose contents describe why the package is dead.
For example, if we wished to clean up git for the roxterm package we would:
$ fedpkg clone roxterm $ cd roxterm $ fedpkg retire $ echo "FTBFS Cleanup" >> dead.package $ git add dead.package $ fedpkg commit -m "FTBFS Cleanup" $ fedpkg push
Bugs
This procedure probably leaves open bugs for the deprecated packages behind. It is not within the scope of releng to take care of these. If bugs are closed, only bugs targeted at Rawhide should be affected, since other branches might still be maintained.
Verification
To verify that the packages were blocked correctly we can use the latest-pkg koji
action.
$ koji latest-pkg dist-f16 wdm
This should return nothing, as the wdm
package is blocked.
Consider Before Running
Generally we block anything that doesn't leave broken dependencies. If there are packages whose removal would result in broken dependencies a second warning should be sent to devel@lists.fedoraproject.org and to <package>-owner@fedoraproject.org for each dependent package.
Allow another couple of days for maintainers to take notice and fix these package so the package repository can be maintained without broken dependencies or needing to deprecate the package. It is not good to have broken package dependencies in our package repositories so every effort should be made to find owners or to fix the broken dependencies.