2008/7/27 Toshio Kuratomi <a.badger(a)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