Questions that new darcs hackers may have... Procedural questions -------------------- 1. Where I can get the a copy of the darcs development repo? - :: darcs get --lazy http://darcs.net 2. How do I submit a patch for inclusion in Darcs? Just use ``darcs send``against the repository. Read `http://lists.osuosl.org/pipermail/darcs-devel/2006-January/003934.html `_ if you want to make the ``darcs-unstable``maintainer happy. 3. Do I really have to run all those tests? If you're pretty sure that your modification is ok, you could do a ``darcs record --no-test``. A useful trick if you're working on many patches is to run ``darcs trackdown``at the very end, when you're ready to test them out. Keep in mind that you can also use the ``tests/tests_to_run``mechanism to select which tests you want to run whenever you do a ``make test``. 4. I'm bored. Give me something to do. 5. See `HowToHelp `_ 6. Should I worry about tests unexpectedly succeeding? No. These are tests written for when certain wishlist features are implemented or bugs are corrected. If they unexpectedly succeed, it could either mean that the feature in question has been implemented (and that the test suite should be modified), or that darcs has system-specific behaviour or that there is something non-deterministic going on. (*FIXME: any comments?*) 7. How do I edit the documentation? The .tex files for the documentation are automatically generated from comments in the code, so don't look for the manual. Just edit relevant comments in the code. 8. Why are some .lhs files not included in the manual? How can I generate a document with all .lhs files? 9. How do I specify additional packages for GHC to use when building darcs? There are two options: 10. Edit the file "configure.ac" to add a test for additional packages that need to be linked. Look at the existing calls to GHC\_CHECK\_MODULE. If GHC-CHECK-MODULE succeeds for a particular pacakge, a -package argument will be added to GHC's build flags. You may have to run "autoconf" after editing this file to regenerate the configure script, though "make" should do it too. 11. Run the configure script with the --with-PACKAGE=yes argument. 12. How can I play around with darcs functions and commands in ghcs interpreted mode (e.g. to try out a diff or applying patch)? 13. Sounds tricky. ``make ghci``might be a good start. You'll have to poke around the code to find a good way to do this. Maybe create a replacement for darcs.lhs that fits into this better. 14. Is there a naming scheme for bugtracking related commits? 15. resolve issueNNN: short description Code questions -------------- 1. What the heck is a slurpy? It's a filesystem tree kept in memory. Slurpies are populated lazily. 2. Do `DarcsArguments `_ support optional arguments? No. 3. What would it take to make it support optional arguments? (No idea. --`MarnixKlooster `_) 4. How do I add a command? See `AddACommand `_. Note that we tend to try avoiding new commands if we can help it. 5. Whats the format of a patch bundle? 6. a blank line 7. "New patches:" 8. a blank line 9. The patches (see gzipped files in \_darcs/patches for format). 10. "Context:" 11. The context (see darcs changes --context for format). 12. "Patch bundle hash:" 13. Hex representation of the sha1-hash of the patches in (4) WITHOUT "New patches", "Context:" **and without blank lines**. (Note that I'm not a developer of darcs itself. These information is kind of reverse-engineered.) 14. How does patch selection work? See `PatchSelectionMechanism `_ 15. What is the difference between a patch set and a patch bundle, a named patch and a composite patch, etc? See `Glossary `_ 16. What's the convention for variable names, camelCase or using\_underscores? I see both! camelCase is for exported functions, using\_underscores is for internal functions. Some older modules use\_undescores everywhere, which might be worth fixing. See `this thread `_. Anyway, don't worry too much about this. We can always fix it if we don't like your variable naming. 17. Darcs does not allow tabs in Haskell code, how do I disable them in my editor? If you use emacs there are several ways according to Dave Love: ``(add-hook 'haskell-mode-hook '(lambda () (setq indent-tabs-mode nil)))`` or use `http://www.loveshack.ukfsn.org/emacs/dir-locals.el `_ or `http://www.loveshack.ukfsn.org/emacs/indent-tabs-maybe.el `_ to set indent-tabs-mode locally. 1. Where is this mysterious Workaround module? It's generated when you run ``configure``. To edit the module, look into ``aclocal.m4``. See also -------- - `DarcsInternals `_ - `PatchTheoryQuestions `_ - `DeveloperTips `_ - `Glossary `_ - `CategoryDevelopers `_