#24 fedpkg should not allow retiring in released branches
Opened 7 years ago by daveisfera. Modified 5 years ago

Mailing discussion can be found here.


What is a released branch? What data sources can be used to determine if a branch is released?

I have a quick look at pkgdb2 API, don't find an API to test if a package is allowed to retire, but there is /api/package/retire/, that might not meet most cases where just a "test" is required rather than getting the answer after a real retire operation.

I see a comment

        # Admins can deprecate everything
        # Users can deprecate Fedora devel and EPEL branches, which
        # are marked as allowing retiring a package.

in method update_pkg_status. In practice, is it possible that a non-admin packager retires a package by running fedpkg-retire?

Event if an Admin is retiring a package, fedpkg gets his/her name from local system, it might not be match the name that is in pkgdb, although they may be same most of the time. Probably, a new option, might be named --pkgdb-user, given to retire command could be useful to fix that.

epel can be retired, in development fedora releases can be retired, releases considerd stable/production can not be retired. so right now f23 f24 can not be retired, everything else f25 master epel7 el6 el5 can all be retired

Currently, fedpkg does two steps to retire a package.

  1. make changes in package repo locally, and push to dist-git.

  2. retire package in pkgdb by calling PkgDB.retire_package, that makes a request to pkgdb API /package/retire/ that is able to tell whether the package is allowed to be retired.

Retiring a package in pkgdb should be the first step, otherwise, once a package is not allowed to be retired, committed and pushed local changes to package repo will not be reverted.

A reasonble steps would be

ask pkgdb if a package is allowed to be retired
if yes:
    ask pkgdb to retire the package
    retire package locally
    commit and push to dist-git

pkgdb has to happen after dist-git, once the package is retired acls are removed and changes to dist-git can not be pushed

pkgdb has to happen after dist-git, once the package is retired acls are removed and changes to dist-git can not be pushed

Oh, thanks for your quick reply. Maybe, a revert commit is needed after failing to retire in pkgdb. Do you think it is necessary?

epel can be retired, in development fedora releases can be retired, releases considerd stable/production can not be retired. so right now f23 f24 can not be retired, everything else f25 master epel7 el6 el5 can all be retired

Are these rules tracked by pkgdb? I mean is API /package/retire able to make these checks?

This issue has been unresolved for more than a year, and is going to be closed within a week if no further action is taken. If you feel this is in error, please contact me.
This is a cleaning process suggested by Jay Greguske. Copy of this ticket was already closed in JIRA tracker.

Metadata Update from @onosek:
- Issue set to the milestone: None (was: None)

5 years ago

Login to comment on this ticket.

Metadata