Hi All,

First of all, an apology - its taken me quite a while to get around to sending this to the list. I think this is partly for two reasons. The first is due to my sickness and burnout, and the fact that I needed to take a break from working on upstream compiz for a little bit in order to combat my illness, the second is because I feared bringing up this topic because it might drag me into a discussion that I did not have the resources to deal with at the time this topic was relevant (end of the Ubuntu Oneiric cyle).

As many are probably aware, I was required last year in the middle of the Ubuntu Natty cycle to do compiz development in launchpad.net. This was for a few good reasons, firstly, as means to increase visibility of compiz to the unity team (of which compiz is a vital part of), secondly, because the Ubuntu release team needs the assurance that all upstream code landing past feature freeze has been reviewed by somebody else in the release team or a "trusted upstream member". During the oneiric cycle, we decided to keep this practise, however, we had a "downstream" and upstream branch, and the upstream branch would be kept in sync with git.compiz.org . Unfortunately, the benefit of maintaining that synchronization, is, I think, not worth the cost of the overhead of doing so, and because I was so caught up in delivering end of cycle and zero-day fixes, I had to stop
pushing code to git.compiz.org .

Thankfully, the two haven't gotten too out of sync - a simple diff shows that there are about 200 lines that need to be reconciled.

With that I'd like to, however, propose that all compiz development be moved to launchpad. There's a few very good reasons for doing so:

1. No need to worry about keeping git and launchpad in sync - overhead disappears, and the tension with that will go away. 2. The Canonical Product Strategy team has invested a significant amount in QA infrastructure, which will be of great use:

 * Pre-merge code reviews (in launchpad)
 * Jenkins instance which automatically builds packages and PPAs for testing
 * Jenkins instance which automatically runs all unit tests on every merge
 * Automatically check for new warnings
 * Autopilot :
- Starts a new instance of compiz in a fresh session and automates several "user journeys" (eg, for unity, we have rearranging items on the launcher, alt-tab, workspace switching). Combined with some dbus introspection of the object state, we can feed actual user input to the process and check the state
 * Xig :
- A new project used initially to test lightdm - implements the window management and properties parts of the X11 protocol using autogenerated xcb - to - gio generation - it is possible to spawn compiz inside of this and check the exact requests and events that are sent out to spot otherwise hard to find regressions in the way window management happens
 * Coverity :
- Canonical has invested in licences for Coverity, which is a static analysis tool to find potential bugs in applications, and compiz would be eligible for analysis
 * Tarmac :
- Ties in all of these QA tools together, and runs each QA test on each proposed branch once it is marked ready for merging, and will automatically merge the branch or reject it should any of those tests fail. 3. Automatic integration with launchpad.net bug tracking - the majority of compiz bugs are reported on launchpad, with bzr and launchpad it is easy to link bugs to commits. 4. More community visibility of compiz, and the army of unity maintainers will also be able to start maintaining compiz plugins.
5. We can integrate with launchpad translations

Of course, there are also reasons why we should stay with git.compiz.org , of which the common arguments I know of are:
1. Everybody already has accounts on git
2. Compiz upstream has invested significant amounts of time and money in maintaining our own infrastructure
3. Project might lose its "identity" if we move to launchpad
4. To some, git is better than $whatever

These are issues that are worth discussing, which is why I'm opening this up for discussion for the next two weeks before I make a call on what to do. That will be either to move all development to launchpad, or to invest time in making keeping launchpad and git in sync easier (since it is required that there is an instance of the compiz development in launchpad, even if it is only a mirror).

Kind Regards,

Sam
_______________________________________________
dev mailing list
[email protected]
http://lists.compiz.org/mailman/listinfo/dev

Reply via email to