Date and Venue

As part of the Haskell Hackathon (ZuriHac)

When: 19-21 March 2010


Your checklist

  • Please register with ZuriHac (registrations are closed now)
  • Let Eric know if you’d like to make a travel claim [SAVE/SCAN YOUR RECEIPTS!]
  • Prepare your laptop for Darcs hacking (see below)

Key information

  • Dates and times

    • Pre-sprint meeting Friday 12:00 - Pizzeria Santa Lucia Niederdorf by CB hostel (see map) [Eric will probably be there a good bit earlier]
    • Sprint starts at 14:30 at Google (stop: Bahnhof Enge)
  • Maps

Darcs hacking quick start

You’ll have more fun if you can hit the ground running, so please make sure you can do all of these things:

  1. darcs get –lazy http://darcs.net
  2. cabal configure; cabal build
  3. darcs send (your patch should wind up on the tracker)

    1. create a test patch (see http://darcs.net/report.html )
    2. see Msmtp for easiest setup or configure your MTA if you know how
    3. darcs send
    4. wait 10 minutes
    5. check the patch tracker http://bugs.darcs.net (Patches > Show Open)



We’ll meet a little before the sprint to pick out a top-N list of candidates to work through. If we don’t have many new hackers during the sprint

Target-2.5 Priorities

See Roadmap for what’s planned in Darcs 2.5.

We have to remember to focus on small achievable tasks here and not take on things that are too large.

  • fix the O(n) record/etc problem: issue1106 - Petr?
  • global cache: issue1624 - Luca (hopefully)
  • filecache - Benedikt
  • new and improved darcs annotate - issue25 (note this will be an especially nice one for Zurich because Johan Tibell will be there, plus Benedikt working on filecache) - Eric? (at least the easy bits)
  • cache cleanup - Reinier?
  • Windows installer
  • faster darcs get

Talks and meetings

Our previous experience has been that the sprint has been useful for designing stuff.


  • DONE: Ganesh and Benedikt
  • DONE: GSoC filechace
  • DONE: GSoC florent
  • DONE: release process


  • DONE: meeting? darcs rebase UI
  • DONE: global cache strategy


  • DONE - ../DefaultSwitches - lets get some decisions for Darcs 2.5
  • DONE - consensus on hardcoded darcs paths? (kill them!)
  • NOT NEEDED? hashed storage
  • DONE - issue1645 (Petr has been duly nagged)
  • talk: Benedikt and Petr on their performance work
  • Roadmap bis
  • DONE Windows installer status

Notes for the blog

Friday lunch

  • We should have darcs optimize –http (eg. snapshots) - Petr
  • We should have a nice CGI script that makes darcs get over http fast
    • Petr
  • Let’s call filecache something else. Current best candidate: patch index
  • Optimism about file-patch-map: maybe no GSoC project needed for that; do CGI instead?

Friday evening

  • Ganesh and Petr - future handling of darcs conflicts - conflictor as graph
  • Ganesh and Petr - storing files in darcs repos
  • Petr, Ganesh and Eric - making darcs get faster

    • smart cgi script
    • (adapt darcs transfer-mode?)
  • Darcs optimize –http again

Release process

  • We need people to test Darcs more
  • Reinier will do manual alphas on hackage every 4 weeks
  • Future work: automatic uploading? Tahoe-style supported/unsupported?

Darcs rebase

Ganesh explained how darcs rebase worked and we all discussed a sensible user interface for it

global cache

Luca, Reinier and Petr discussed the global cache design. Their conclusion was that we should store the bucketed cache and the old-style cache in different directories. Every time you look up a file in the cache:

If the new-style cache exists:

use that.

If the old-style cache exists:

Create a new bucketed cache, hardlinked to the old-style one


Create a new, empty bucketed cache

DPM and Darcs Library

David, Stephen, Ganesh and Florent discussed an exciting new patch management program for project maintainers. The DPM project offers a new way of keeping track of incoming patch bundles; their status, dependencies, reviews, etc. It’s a pioneering user of the Darcs API.

We got a darcs apply –match feature out of this TODO: question about conflicts?

darcs diff –interactive

Florent, Ganesh and Eric discussed darcs diff -i, particularly the question of what to do with patches that have been cherry-picked out of the diff. Should they appear in the diff context (ie. go before) or not? The current thinking is to include them so that users always see the diff in the latest possible context.

Windows installer

Salvatore put together a nice Windows installer using the bamse package. The only thing it can’t do is set the PATH for the user automatically. This will open the door to nicer integration with Windows tools, for example, using Tortoise SSH to avoid issue845


Initial guesses on what we’ll be working on

  • Florent Becker
  • Guillaume Hoffmann - probably-easy issues (1744, 1427)
  • Eric Kow - show history UI, running around like a headless chicken
  • Reinier Lamers - UTF-8?
  • Ganesh Sittampalam - rebase
  • Petr Rockai - issue1106
  • Salvatore Insalaco (Sat, Sun) - Windows
  • Luca Molteni (Sat, Sun) - global cache
  • Benedikt Schmidt - filecache
  • Radoslav Dorcik - trackdown bisect (over the IRC only)
  • Benedikt Huber - Darcs record Mac GUI
  • David Markvica - Darcs record Mac GUI
  • Steven Keuchel - issue1768

Travel plans

  • Eric Kow arrives at the airport 09:35 on the 19th; leaves at 21:55 on the 21st
  • Ganesh Sittampalam arrives at the airport 12:40 on the 19th; leaves at 20:25 on the 21st (Swiss from LCY and back to LHR) (might try to get on the earlier flight arriving 11:20 if I get to airport in time and Swiss let me)
  • Petr Rockai arrives at Zurich HBF at 9:17 on the 19th and leaves at 19:44 on the 21st
  • Guillaume Hoffmann arrives at Zurich HBF at 10:26 on the 19th and leaves at 17:02 on the 21st
  • Florent Becker arrives at HBF at 11:00 on the 19th and leaves at 17:34 on the 21st.

Shared hostel room

Who’s interested in sharing a hostel room? Eric has booked 5 beds at the City Backpacker (6 person room). The hostel have been advised that we may be a larger group than that, likely to use up the whole room. The beds go for 35 CHF per night + 3 CHF for sheets. For two nights, that would work out to 80 CHF, or roughly 50 EUR.

One more bed available in the room!

  • Guillaume Hoffmann
  • Eric Kow
  • Ganesh Sittampalam
  • Reinier Lamers
  • Florent Becker