W3C home > Mailing lists > Public > public-qa-dev@w3.org > December 2009

Re: Decentralized versioning system at W3C

From: Karl Dubost <karl+w3c@la-grange.net>
Date: Wed, 9 Dec 2009 08:42:30 -0500
Message-Id: <78427465-A6BF-4B07-A767-DD845937F8E0@la-grange.net>
Cc: public-qa-dev@w3.org
To: Dominique Hazael-Massieux <dom@w3.org>
Hi Dom,

Le 9 déc. 2009 à 03:38, Dominique Hazael-Massieux a écrit :
> We’ve heard from several groups and individuals that they would like W3C
> to host a public decentralized versioning repository for W3C-related
> work items, such as editors drafts, test suites, tools and software.

I have in the last year had to look at possibly a new versioning system for our company. We didn't switch finally from svn to something else because the ROI was not clear. This said, it helped to create a review of the available platforms.

In the realm of opensource distributed versioning tools, there are 3 main options:

* bazaar    (can be used in a server mode)
* git       (partial support on windows)
* mercurial 

Wikipedia has a page for [platforms comparison][1] which is super useful. 
Another [comparison grid][5].

You can also check the individual community and which well known open source projects are using them

* bazaar:    Ubuntu, GNU Emacs, GNU Mailman, MySQL, Gnash, Squid, 
             GNUpdf and the GNOME bindings for Java.
* git:       Linux kernel, Perl, GNOME, Samba, X.org Server, Qt, 
             One Laptop per Child (OLPC) core development, VLC, 
             Wine, Ruby on Rails, and the Android mobile platform.
* Mercurial: Mozilla, OpenJDK, OpenSolaris, Symbian OS, Python

[Bazaar][4] looked very attractive to me. It is possible to have a dual mode with distributed versioning and central server. There is also a notion of [gatekeeper][2]. [Why Switch to Bazaar][6] gives also information. [Patch Queue Manager][3] is a way to manage and handles the merge with bazaar.

All that said, I have no real practical reasons for input. People with more experience would be worth listening.

[1]: http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
[2]: http://wiki.bazaar.canonical.com/Workflows#Decentralized%20with%20human%20gatekeeper
[3]: https://launchpad.net/pqm
[4]: http://bazaar.canonical.com/en/
[5]: http://versioncontrolblog.com/comparison/Bazaar/Git/Mercurial/index.html
[6]: http://doc.bazaar-vcs.org/migration/en/why-switch-to-bazaar.html

# User stories

We also created user stories around the versioning system. I tried to adapt them with regards to W3C working reality.

## Roles

* open source developer
* non techie person who wants to access a project
* W3C Team Staff
* W3C Member person
* sysadmin

## Some Scenarios

I removed most of them because they seemed not worth for W3C case. There are certainly some missing.
* Developer needs to get a part of the code for starting a project
* Developer wants to work offline
* Developer wants to work online from home
* Developer wants to start a branch for experimental work
* Developer needs to read the history log of a project
* Developer needs to commit his own code
* Developer needs to access the history log a specific file
* Developer needs to know the status of his local checkout (diff, to  commit or update)
* Developer can quickly fix a bug and deploy it
* Developer can work on any versions without hurdles.
* W3C staff can start a new project very quickly
* Non techie person can visualize the advancement of the project (UI)
* W3C staff can assign the rights very quickly to a set of developers
* Sysadmins can create a new project by "pushing a button"

Karl Dubost
Montréal, QC, Canada
Received on Wednesday, 9 December 2009 13:42:42 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:54:56 UTC