Students can work on Bazaar as part of the Google Summer of Code scheme. For this year, three student projects have been accepted:
Bazaar Integration for Visual Studio by Klaus Hartke, mentored by Wouter van Heyst
The Bazaar Shell Extension by Alexander C Haro, mentored by Jelmer Vernooij
Add 'crypto+' repository format by Bogdano Arendartchuk, mentored by Robert Benjamin Terrill Collins
Key dates
April-May: students learn about Bazaar, meet their mentors, and plan their work.
May 28: coding formally begins
August 20: final code uploaded
See the Google timeline for more details and intermediate dates.
Or talk to us in #bzr on irc.freenode.net.
Project ideas
(Keep these around for next year, or take a project to do yourself!)
- Further gui improvements:
- graphical exploration of history
- two-way annotated diffs
- annotation-enhanced merge. (Do the merge showing, for each of the merged lines, why it's there.);
bzrk --all to see relations between branches in shared repository.
- exploring remote filesystems/repositories
- Windows gui: make the gui integrate with the Windows explorer
- Mac gui: use new
use bzr to store and manage history for MoinMoin. This could allow offline edits, better conflict resolution, etc. It could also be faster. (although this perhaps overlaps somewhat with ikiwiki?) --RobertCollins: perhaps working on something specific within ikiwiki would be relevant? Though we use Moin ourselves, it would be awesome to be doing this edit offline sanely.
Update the PQM with an XMLRPC interface instead of an email based one. So that when 'pqm-submit' is finished, you know the pqm has your data. Also, it would be nice if the pqm could perform quick sanity checks at this time. --RobertCollins: I'll be happy to mentor this.
Improved trac-bzr integration. There is already a project, but needs a bit more work to soften the model differences between trac and bzr. --RobertCollins: This needs to be more explicit about the goals.
Updated converters for all major DVCs systems => bzr. This may be just working with Tailor to make sure bzr as a target works properly. Would be nice to have a decent test suite for converters.
- git: Noone is hacking on it
- hg: Noone is hacking on it
- darcs: Noone is hacking on it
- monotone: Noone is hacking on it
- svn: jelmer is working on this
I think there is a hole in most converters: they miss cvsnt as source. Although cvsnt has very interesting improvements to RCS storage format, that allows to track merge and simplify identity of pseudo-atomic commits. --AlexanderBelchenko
--RobertCollins: CVS is very problematic in other regarads, and even cvsnt doesn't fix them. Such as the mutability of history.
--RobertCollins: I'll be happy to mentor this.
- Automatic bug-report tool with Web-interface, that allows users of bzr sends to some server e-mail with bug report (including traceback etc.), and smart web-client, that allows developers to see those reports. Duplicate reports should be automatically grouped in the same topic . Errors should be uniquely identified by bzr version info, and traceback coordinates (file, line number, type of error).
--RobertCollins: apport for Ubuntu does this and has an XMLRPC API to talk to launchpad. I think making apport's logic work on windows and macosX would be good for such a project. (bzr uses Malone for its bug tracker, and thats not unlikely to change
writing a new web gui would not be as useful as making the ability to feed defects into malone easily apply to other platforms.)
Interactive merge: merge -i which would list conflicts and ask the user which ones they want to resolve, then fire up meld/etc/etc. (This is different to the existing tools in that it asks conflict-at-a-time. It should also ask about tree-shape conflicts and let those be resolved smoothly.
- IDE integration:
- Visual Studio
- Eclipse
- Plugin versioning API to make declarative plugin version-compatability support work. Needs something along the lines of libtool, and cooperation from bzr-core to support it. Possibly per-api even (consider a default and then overrides).
RobertCollins is happy to mentor this
- Gnome bzr server config. Best expressed as a user story: 'fred is at a sprint. To share his work locally he goes to System|Preferences|bzr' and checks the 'Enable Server' option. This starts up a notification area symbol and a background bzr serve process. The background server can be configured via the notification area (right-mouse, preferences), or the System|Preferences|bzr widget. Configuration options would include a list of served directories, and access control on each.
RobertCollins is happy to mentor this
Not for SoC, mentioned to avoid people asking for them
Cherrypick and partial merge metadata -- out of scope for SoC as it requires extensive design review. --RobertCollins
- Integrate pqm and merge directives, to make a single easy-to-use robot that does continuous integration
I am in the middle of doing this --AaronBentley
Versioned tags. When you change the value of a tag, it is tracked and can be reverted. --RobertCollins: This is problematic, we've had implementations before, its design not code that is a problem.
- A grep plugin that can grep anything. git has git-grep that greps the tree for the string. However you could write one that grepped the tree, the logs, or all of the trees. You could probably think of a couple of other things as well. The interface might be a bit clunky though.
There's already the grep and hgrep plugins --AaronBentley
