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 package
4) 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.
Fedora-infrastructure-list mailing list