#3083 When a package becomes critpath, notify owners/maintainers of the package.
Closed: Fixed None Opened 12 years ago by toshio.

PackageDB stores the information about which packages are in the critpath. When a package becomes critpath, we should email the maintainer of the package so they can know that they may have extra work, raise objections, etc.

This is marked an EasyFix because the code to be modified is all in one method:

http://bzr.fedorahosted.org/bzr/packagedb/0.5.x/annotate/head:/pkgdb/dispatcher.py#L1708


Should we keep this one as an example for FUDCon ?

Yeah. I'm going to try to finish it as part of FUDCon 2012 (Next week).

I didn't get a chance to work on this. Anyone can pick it up.

Replying to [comment:4 arielb]:
arieldb have you worked on this yet or can I pick it up?

well, you can pick it up.

So I'm using the _send_log_msg routine to send the email and I'm wondering if there's any acl (or acl's) I can use that represent maintainer or co-maintainers of the package?

Until now and by poking around the pkgdb code I can see: 'owner','approveacls', 'watchbugzilla', 'watchcommits', 'commit'

Not sure which ones to use besides 'owner' of course. Any tips?

Unfortunately, it depends on the use case.
* The owner is in the packagelistings. One per branch (of Fedora). For this use, probably check (pseudo-code):

distinct owner from packagelisting, package, collecion where packageid = package.id and and collectionid = collection.id and package.name = 'PACKAGENAME' and packagelisting.status = STATUS['ACTIVE'] and collection.status != STATUS['EOL']

  • The comaintainers are in the acls like you saw. You can use either approveacls or anyone who has either approveacls or commit.

I noticed that the _send_log_msg actually fetches the owner and co-maintainers itself (defaults the last one to the approveacl group) from the pkg_listing it receives as an argument:

http://bzr.fedorahosted.org/bzr/packagedb/0.5.x/annotate/head:/pkgdb/dispatcher.py#L154
http://bzr.fedorahosted.org/bzr/packagedb/0.5.x/annotate/head:/pkgdb/dispatcher.py#L164

If that's acceptable I think I might have a patch for revision uploaded later when I get home.

Uploaded patch:

  1. Fetches each pkg by querying pkg_listing by its id
  2. For each pkg notifies its owner and approveacl group by calling _send_log_msg with default acls argument

I think this might do the trick, but if someone could review it and let me know if I missed to understand something, it would be great.

I haven't had time to finish this yet but I'm trying to get it done this week.

Things toshio mentioned on irc when he reviewed the patch:

  1. Don't need to notify the person who made the change in this case
  2. Not sure if the api allows it but it would be good to only notify someone once if the package changes critpath state instead of once per branch.

I'm wondering...

Since author is not an optional field on _send_log_msg is there a way to call a dummy fas user that won't break the routine when it runs:
http://bzr.fedorahosted.org/bzr/packagedb/0.5.x/annotate/head:/pkgdb/dispatcher.py#L140

Or should I just fetch the package owner (send it as the author) and let the hashing in _send_log_msg eliminate duplicates?

Moving all currently open easyfix tickets to the HANDYWAVY-FUTURE milestone.

I'm clearing the assigned status on all easyfix tickets.

If you are an apprentice actively working on this ticket, feel free to reassign to yourself. Otherwise let a new apprentice have a look.

I'd like to work on this fix. any input about the status of this fix is appreciated.

So, since this was filed, we have moved to pkgdb2 which is a completely different codebase.

I'll let pingou point out where to look in pkgdb2 for this area...

Thanks for looking at it. ;)

Checking the code for pkgdb2, I noticed that set_critpath_packages logs the change
https://git.fedorahosted.org/cgit/pkgdb2.git/tree/pkgdb2/lib/__init__.py#L2237
, and ,
log actually sends a fedmsg (if loaded on the box) as well as an email to {package}-owner@
https://git.fedorahosted.org/cgit/pkgdb2.git/tree/pkgdb2/lib/utils.py#L235
https://git.fedorahosted.org/cgit/pkgdb2.git/tree/pkgdb2/lib/utils.py#L236
https://git.fedorahosted.org/cgit/pkgdb2.git/tree/pkgdb2/lib/utils.py#L350
https://git.fedorahosted.org/cgit/pkgdb2.git/tree/pkgdb2/lib/utils.py#L351

From ansible
fedmsg notfication on pkgdb2 is enabled by default.
email notification is not

closing ticket with IRC input from threebean:
"critpath fedmsg messages get mailed out. and.. I'm pretty sure all co-maintainers should get those emails/irc messages by default."

Login to comment on this ticket.

Metadata