Roadmap

This is a high-level overview of the major objectives behind the upcoming releases of darcs.

See HowToHelp if you'd like to help us to reach our goals faster :-)

Current objectives

darcs 2.5.0 (2010-07)

  • infrastructure

    • a Windows installer (issue1687)
    • darcs-benchmark with graphs
  • performance enhancements

  • new features

    • darcs show history (nicer darcs annotate) (issue25)
    • darcs trackdown --bisect (patch106)

darcs 2.6.0 (2011-01)

  • code quality

    • improved separation of user IO from darcs business (issue1483)
    • separation of library into core/repo/commands?
    • type witnesses enabled everywhere
  • performance enhancements

    • network: smart server (issue1773)
    • local: cache overhaul
  • getting the basics right

  • new features

Future objectives

Medium term:

  • library cleanup: witnesses mandatory
  • improved conflict marking [THIS IS REALLY IMPORTANT] (issue833)
  • merge refactors and issue1014 fix from David's fork
  • make whatsnew -v readable [CLARIFY?]
  • in-repo branches (issue555)
  • make darcs really non-interactive if user desires so
  • record huge patches (issue80)

Long term:

  • a packed+hashed format for repositories? (issue1535)
  • make darcs handle the Linux kernel repo
  • seamless integration with git, svn, etc
  • improved handling of filenames: AddAddConflicts [HARD]
  • Darcs 3

Old-fashioned phase-out

There may be a point in the future where we decide it's time to phase out old-fashioned repositories.

Ideally we should make sure we've addressed as many of the following performance-oriented concerns with hashed repositories before we officially pull the plug.

  • issue1934 - insufficient garbage collection of hashed files
  • issue305 - darcs optimize --clean?
  • issue1536 - break up hashed dir into subdirectories in _darcs [unlikely with current hashed format]
  • issue1624 - break up ~/.darcs/cache into subdirectories

Canaries

Canaries are projects/people which can give us an indicator on how well darcs is doing, that is, how useful darcs is wrt the pain from the various performance issues and bugs. They provide us with some combination of thoughtful, articulate, vocal, demanding and possessor-of-large-repositories.

  • the darcs team (cf pain with merging David's fork)
  • the GHC team (considered a switch to git; have postponed it indefinitely)
  • the Tahoe team (apparently much happier with darcs 2) -- Well I, Zooko, am a member of the Tahoe team (http://allmydata.org), and I'm pretty happy with darcs-2, but my partners are not entirely happy with it. I would be happy to relay their concerns (or ask them to do so) now that this page and other developments make it appear as though there is an active and organized community effort which could usefully listen to those concerns!

Feel free to add yourself to the canary list, especially if you are switcher in one direction or the other.