This document BRIEFLY describes hacking on the Darcs codebase. It's assumed you're already familiar hacking Haskell code and using darcs for version control. Further information can be found in the wiki. Testing Your Work ================= Darcs is built thusly: ghc --make Setup && ./Setup configure && ./Setup build This builds a binary in dist/build/darcs/darcs which you can run. Functional tests are made thusly: ./Setup test # all local tests ./Setup test tests/foo.sh # a specific test ./Setup test bugs # known bugs ./Setup test network # all tests in tests/network Unit tests are run thusly: ./Setup configure -ftest && ./Setup build dist/build/unit/unit The default test hook will try to build Darcs and run the functional tests every time you record a patch. You can use --no-test if you're in a hurry, but please try to test sometimes! Submitting Your Work ==================== When you're done, send a patch bundle to the darcs-users list thusly: darcs send Note that darcs-users is SUBSCRIBER ONLY. You will need to be subscribed to the list, and the From address must be the address you subscribed with. If you have multiple email addresses, you may want darcs send --from john@example.net If you are re-sending a bundle because you were asked to amend something, please try to set --in-reply-to to the Message-ID of the message you're replying to. With threading MUAs, this helps us realize that you're resending, and prioritize accordingly. If you haven't got a working MTA (e.g. msmtp), you can create a bundle with the -O switch and send it using your MUA (e.g. thunderbird). Please avoid this if possible, as it's a little inconvenient for us.