Hi guys,Last week Seth implemented email aliases for the people who should be notified of changes to packages. I used this new functionality to have getnotifylist, which looks up who to notify on cvs commits, stop querying the pkgdb directly (a slow operation with multiple points where it could fail) and instead just construct the alias from the packagename.
This works well except for one case: When a new package is created, the alias for the package does not yet exist. This means that when someone makes the initial branch for a package they get a bounce message because we were unable to send to the non-existent email address.
I think the solution is going to have to be that the pkgdb has to do the branching. Or, at least, the pkgdb is going to need to know which packages need branching and cvs-int will have to query for those with a cron job and perform the action. That way the new package can be added to the pkgdb along with a branch request. The packagedb will record the new package and add the need for cvs branches to a queue. The packagedb will take the branch request through various stages until it is done.
Here's my idea for stages: 1) Request for new package with new branch is added to the packagedb. 2) Request is marked approved by an admin 3) Packagedb create the record for the package4) Packagedb waits for the email alias to be created (currently, the packagedb doesn't know for sure that the alias has been created... we'll just wait an appropriate length of time. If this proves problematic we can create a URL that records that aliases has been created that is only authorized to certain users.)
5) Packagedb records that the package is ready to be branched.6) cvs-int has a cron job that queries for packages to branch, branches them, and then records that they have been created.
If anyone can think of a better way to solve this, please let me know. I'll start work on this about the middle of next week.
Description: OpenPGP digital signature