I get this error when I try to retire a package:
... [rawhide 2b0d3ff] Orphaned for 6+ weeks 9 files changed, 1 insertion(+), 252190 deletions(-) delete mode 100644 .gitignore delete mode 100644 belle-sip-1.4.2-antlr34.patch delete mode 100644 belle-sip-1.4.2-fix-typo.patch delete mode 100644 belle-sip-1.4.2-warn.patch delete mode 100644 belle-sip-realloc.patch delete mode 100644 belle-sip-sockaddr-bounds.patch delete mode 100644 belle-sip.spec create mode 100644 dead.package delete mode 100644 sources Specfile doesn't exist. Push operation continues. Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 8 threads Compressing objects: 100% (1/1), done. Writing objects: 100% (3/3), 281 bytes | 281.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 remote: Emitting a message to the fedora-messaging message bus. remote: * Publishing information for 1 commits remote: Sending to redis to log activity and send commit notification emails remote: * Publishing information for 1 commits remote: - to fedora-message remote: 2023-03-06 18:07:06,597 [WARNING] pagure.lib.notify: pagure is about to send a message that has no schemas: pagure.git.receive To ssh://pkgs.fedoraproject.org/rpms/belle-sip ebf5b7e..2b0d3ff rawhide -> rawhide Could not execute retire: The following error occurred while disabling monitoring: Invalid or expired token. Please visit https://src.fedoraproject.org/settings#nav-api-tab to get or renew your API token. For invalid or expired tokens please set a new token in your user configuration with: fedpkg set-distgit-token <token>
My token is not expired, but I suppose it needs some ACLs which it did not need before. The ACLs that were enough for fedpkg fork were: Fork a project
Now it needs more ACLs to disable monitoring. What ACLs are that? Could the error message say so?
Also, I noticed the package is actually successfully retired in dist-git, it was just monitoring that was not disabled -- hence the error is very confusing.
@gotmax23 told me that this uses https://pagure.io/pagure-dist-git/blob/master/f/pagure_distgit/plugin.py#_50 which means fedpkg retire now requires admin permission, while the retirement commit only requires dist-git write access.
fedpkg retire
Hence, I think fedpgk retire should only operate on git level (as it did before this change) and the toddler that updates PDC based on the commit should disable monitoring instead.
fedpgk retire
I agree; a packager should not need admin ACLs to retire a package and the error message should be more useful. For example, https://fedoraproject.org/wiki/Changes/Mass_Retire_Golang_Leaves assumes that provenpackagers and users/group members with commit can properly retire packages. I wanted to handle this myself to save releng's time.
admin
commit
https://pagure.io/fedpkg/c/7f1b8c75a718a6a54343dc2dcd5b51efefd91ea8?branch=master is where this was added to fedpkg.
I agree, I should have been more clear with informing the user, that he needs a specific ACL The information could be seen in fedpkg disable-monitoring --help, but it wasn't obvious. Sorry for that. But now it seems it doesn't make sense to fix it, right? Should I remove the functionality then? cc @lenkaseg (feature requestor)
fedpkg disable-monitoring --help
While I understand why this might sound like a good thing to move to toddlers, I think we should do the operation when we have the opportunity. It is one POST request vs, emitting a message, consuming the message, parsing it, and creating the POST request.
We can always relax the ACL on release monitoring change. Making in committer instead of admin.
In any case, fedpkg retire should have a CLI flag to prevent disabling monitoring.
If not disabling the monitoring can lead to trouble, a fedpkg-powered solution won't be good, because it's possible to retire packages in dist-git by simply committing and pushing the dead.package commit (and because currently when the token is not good enough, the dist-git retirement happens anyway and the disablement of monitoring does not happen).
A toddler that handles retirements in dist-git and propagates them to PDC already exists anyway.
Just to add info here. The flow currently is a bit confusing...
So, I think we could extend the toddler that does the pdc updating to perhaps also update monitoring?
we could extend the toddler that does the pdc updating to perhaps also update monitoring?
That is what I meant as well (in case I was not clear enough).
This continues to confuse even experienced packagers, see https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/5ELR4R6UFWW7HAW3PEVKW77GH22OIJM7/
I tried to make it more clear by adding some extra description. https://pagure.io/fedpkg/pull-request/530
But if the disable-monitoring functionality should be placed elsewhere, I am not against removing it from fedpkg.
disable-monitoring
fedpkg
disable-monitoring functionality could stay here in case folks want to explicitly use it. However, is should not be a necessary part of retirement driven by the "client" -- if disabling monitoring is an essential part of retirement, it should happen when the PDC/koji retirement happens.
Ok, I modified the retire functionality then. disable-monitoring is now separated from retire and can be run only manually if desired. https://pagure.io/fedpkg/pull-request/530
retire
Commit 9dea9969 fixes this issue
We had a similar issue that got opened at releng: https://pagure.io/releng/issue/12128