Unsponsored Comaintainers

Toshio Kuratomi a.badger at gmail.com
Fri Oct 5 21:57:21 UTC 2007

Rahul and Jef Spaleta asked me about this recently so I decided to throw 
this out as a conversation starter.  Please comment on this as Luke and 
I need some input from releng or FESCo about whether this is a goal we 
should be aiming for before we can implement it.

= Unsponsored Comaintainers =

Sometimes a contributor wants to get involved with a single Fedora 
package.  This is often the case with upstream maintainers who are 
interested in seeing their software run well on Fedora but either lack 
the time to participate in or are disinterested in Fedora as a whole.

One way to enable this is to have current Fedora Packagers "mentor" the 
upstream maintainers.  The Fedora Packager can be the owner of record 
for the package and make sure that it integrates with the rest of 
Fedora.  The upstream maintainer would take the role of comaintainer for 
the package and help mainly with code-related bugs.

For this sort of work, it would be ideal if the comaintainer could 
commit to the package but not build or push.  The package owner would 
then have the ability to check the changes that the upstream maintainer 
made to verify they followed the Fedora Packaging Guidelines and 
integrated with things going on in the rest of the distro.

At the moment we are constrained by the limitations of the tools we're 
working with (koji, packagedb, cvs repository, and bodhi).  So here's a 
three phase approach to getting to the ideal:

== Phase 1 ==

Upstream maintainer and Fedora Package owner decide to collaborate.  The 
Upstream maintainer signs the CLA.  Someone from a group of sponsors 
willing to work on this as a pilot program sponsors them into cvsextras.

The comaintainer can now request commit acls on the package.  This gives 
them access to commit to cvs, build in koji, and push via bodhi for this 
package.  There is an understanding among the participants that the 
upstream maintainer should not work on packages for which they have not 
been granted commit access.  The sponsor has to watch the commits list 
for changes made by the upstream maintainer that violate this policy.

This requires no changes to our tools but requires:
1) a pool of sponsors willing to work on this
2) commitment from unsponsored comaintainers to follow the rules and 
sponsors who are willing to police those comaintainers to make sure 
they're abiding by them.

== Phase 2 ==

In phase 2, we can remove the pool of sponsors.  Instead we allow people 
without cvsextras to sign up to comaintain a package.  If the primary 
package maintainer approves, the comaintainer is allowed to use any of 
the acls they are approved for.  The package owner would still have to 
watch to make sure the comaintainer is not doing more than they are 
supposed to on that particular package.

This requires changes to the cvs repository so people not in cvsextras 
but explicitly in the acl are allowed to commit.  This could be a bit 
tricky as we currently have two levels of security in the repository: 1) 
People must be in the acl to access resources of the repository, 2) they 
must be in cvsextras.  We'll want something equivalent in the new setup.

== Phase 3 ==

In this stage, we make sure that acls prevent people from doing things 
they are not supposed to, freeing the package owner from some of the 
manual policing they had to do before.  The PackageDB will have acls for 
pushing and building as well as committing.  This will allow package 
owners to specify that a maintainer should only be allowed to commit or 
only allowed to commit and build.

The packagedb will need to allow changing of build and push acls. [easy]
Bodhi will need to operate on the push acls instead of the commit acls. 
koji will need to support restricting builds.


More information about the fedora-devel-list mailing list