Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

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
  • 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.