The 8th Darcs Hacking Sprint happened on 15-17th February in Paris, at IRILL like in 2011. This sprint occured one week after the latest stable release (2.8.4), and after a process of integrating many new features to the HEAD repository of darcs: rebase, the patch index optimization, the last regrets prompt, and a lot of refactoring in the code base. We are currently looking at the next important milestone for darcs: the release of 2.10, that should happen sometimes this year. This sprint was about polishing as much as possible these new features and take a few short and medium-term decisions.
This time we had five people attending: Florent Becker, Ganesh Sittampalam, Guillaume Hoffmann, Owen Stephens and Radoslav Dorcik. We also had a short visit of Pierre-Yves David, a Mercurial hacker.
Ganesh mainly worked on rebase in preparation for the upcoming 2.10 release: he resolved the issue 2282 and 2227, and started work on a `darcs rebase changes` command. He also made various minor code cleanups, including getting the unit tests back to green which will hopefully encourage people to run them in future.
Radoslav worked on a couple of ProbablyEasy bugs (darcs obliterate -O overwrites existing files and implement `darcs rebase unsuspend --summary`). He created a wiki page to help us think about a future darcs flags overhaul. Last day he wrote a prototype patch on the issue make darcs amend -A use the default author id
, which he will continue to work on after sprint along with elaboration of big overhaul of the darcs command line flags.
With Guillaume he also worked on the manual and completed the help for environment variables and the output of `darcs help markdown`. We decided that http://darcs.net/manual should always have the manual corresponding to the current stable branch of darcs (as of now 2.8), because sometimes commands and flags change. We thus continue the process of moving away the documentation from literate haskell and latex and to have everything in markdown (website documentation and darcs-generated help). Guillaume also fixed bugs in the testsuite, in particular network tests.
Florent worked around the UI/Selectchanges code, with three aims:
The current state of the branch is available on hub.darcs.net, and is subject to agressive rebases (as witnessed by the number of "brouillon" patches).
- make the code clearer, and more easily usable by a gui / web ui (in progress)
- allow the user to preview dependencies (done) and conflicts (todo) before selectenig a patch
- adding darcs diff --interactive and darcs trackdown --interactive (interactive choice of a non-contiguous set of patches to search among.) unleashing the power of implicit branching! (in progress)
Owen spent the weekend of the sprint working on darcs-bridge. Spending time getting the theory right for exporting merges, including some tricky corner cases. He implemented a proof-of-concept of the new exporter and has started to integrate it back into the bridge. With lots of help from Ganesh (thanks!), he discussed and worked through most of the difficult implementation points.
Last regrets for 2.10
We decided that 2.10 will contain the last regrets prompt (an extra final question "Do you want to push/pull these patches? [yn...]" ) in its current form.
Darcs on sshfs
We finally closed http://bugs.darcs.net/issue904 , accepting a patch that makes darcs work on sshfs-mounted directories. This, combined with the bare repositories introduced in 2.8, will make darcs easier to work with dumb servers, i.e., ssh-accessible servers which do not have darcs installed.
Google Summer of Code and 2.10 beta
We plan to apply to this year's Google Summer of Code as an independent organization. This means we will ask for two slots. We discussed possible projects. Organizations sumbissions for GSoC are at mid-march, so we estimated a beta release of Darcs 2.10 would make sense by then.
Mercurial's Changesets Evolutions
Pierre-Yves David, a Mercurial developer, came to see us and gave us a short version of his FOSDEM talk "Changesets evolutions with Mercurial". Changesets evolution is a feature that recently made its way into Mercurial, that enables automatic merging of rewritten histories. We discussed similarities and differences with the way darcs commutes patches and how `darcs rebase` works.
We also counted with a good participation on #darcs. Eric Kow did intensive bug triaging on the tracker. Mark Stosberg worked on stabilizing two features: rebase and patch index. Iago Abal helped Ganesh improve the patch code unit tests. Simon Michael updated darcsden (the software behind hub.darcs.net) to the latest API of libdarcs, which changed before and during the sprint. Petr Rockai kept us up to date about the state of the buildbot infrastructure.
We would like to thank the generous people and organizations that made this sprint possible:
- the IRILL for kindly hosting the sprint again.
- all our donators, that help afford the prices of travelling and accomodations for the sprinters.