Wednesday, April 30, 2008

improving freedesktop.org processes

The other day, Vincent Untz requested a git repo to house all freedesktop.org specs. I liked the idea a lot.

Coincidentally, I was simultaneously involved in a conversation via private email with a few other freedesktop.org people about the processes around creating specifications (or lack thereof), so I took this as a cue to step back and really think about it a bit. freedesktop.org is one of the key points where the the free software world comes together to document the things we share so that integration and consistency (from the user's POV) can be achieved, so keeping it healthy is really important.

I also talked with Zack about some of the issues and he shared some really interesting insights he's taken from the OpenGL specification process.

This led to me writing a proposal for how we could improve the specification process in concrete terms.

It includes mechanisms for creating new specs as well as drafts of existing ones; it proscribes documenting in the specs themselves where they are implemented (e.g. which version of which software product); it proposes settling on some naming conventions that denote exactly the adoption state of implemented specs (draf, review, accepted; project specific, shared or broadly blessed and therefore "freedesktop.org"). The emphasis is on removing manual processes and creating a self-documenting, transparent system based on participation.

Inherent in the proposal is the idea that the repository should be shared by all editors and be considered canonical. The freedesktop.org website would be an easy access point to the documentation contained within the repository, but would no longer be considered the canonical source. While we could use a distributed version control system, such as git, this implies that we would sync work into the shared repository so everyone can follow progress: no more back rooms or unknown corners.

It also removes any need for a formal oversight committee (gah! bureaucracy!) while making the process fully self-documenting by the process of specification development itself.

It's not a revolutionary concept by any means, but it's something freedesktop.org really needs to keep the wheels moving. There seems to be general support for such a reform, and we're down to discussing details. Vincent has wisely given us a 10 day cap to discuss and come to consensus, so I suppose we can expect to see something good happen shortly. Color me happy.