2008/7/27 Toshio Kuratomi <a.badger@gmail.com>
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.
 
+ email is sent to the related mailling list to notify that.

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.

Sound a nice plan/procedure.
By the way, Why don't make Packagedb able to run cvs-int with related arguments ?
(this will avoid to have cvs-int check when there are no packages to branch)

 

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.


I'm really interesting by this task.



--
Xavier.t Lamien
--
http://fedoraproject.org/wiki/XavierLamien
GPG-Key ID: F3903DEB
Fingerprint: 0F2A 7A17 0F1B 82EE FCBF 1F51 76B7 A28D F390 3DEB