Developers' guide

Quick links for everyone, plus a rough guide mostly for hledger contributors and developers.

Support
Users and developers: how to get help
IRC channel: irc.freenode.net/#ledger
Mail list: list.hledger.org
Bug tracker: bugs.hledger.org (also bugs.hledger.org/NNN, bugs.hledger.org/new, bugs.hledger.org/grid)

Released version
Binaries, release notes, hledger-web demo
Hackage packages & API docs: hledger-lib, hledger, hledger-web, hledger-vty, hledger-chart

Development version
Get it, browse it, hledger-web dev demo
latest API docs, developer notes, haddock coverage, unit test coverage, benchmark, profile, heap reports

How to..

how to get help

how to report problems

how to help with testing

how to help with bug tracking

how to set up for hledger development

  1. get an up-to-date ghc, at least 6.12.3 but preferably 7
  2. there's probably no need to install the haskell platform now, but you could
  3. it's probably worth getting the latest and best cabal: cabal update; cabal install cabal-install
  4. get an up-to-date darcs, at least 2.x and preferably newer: use a binary package or cabal install darcs

  5. get the hledger repo:

    darcs get --lazy http://joyful.com/repos/hledger
    cd hledger
    
  6. install packages required to build hledger and add-ons, or as many of them as possible:

    cabal update
    make install
    

    This will also try to cabal install development builds of the hledger executables, so ghc-pkg unregister those afterwards if you don't want that.

  7. try building with make:

    make bin/hledger
    

    This is usually quicker and simpler than fiddling with multiple cabal packages during development.

  8. try auto-building with sp:

    darcs get http://joyful.com/repos/searchpath
    searchpath$ make, add sp to your path
    hledger$ make autotest
    

    This is how I do most hledger development. It will recompile whenever you save changes to source files. You'll need to install sp as shown.

  9. test patch sending. Make a dummy change:

    echo >>README.markdown; darcs record README.markdown -a -m 'my test patch'
    

    send it to yourself:

    darcs send --to me@my.address
    

    and make sure you receive it. If not, your system may not be configured to send email from the command line. Try to fix that. As a last resort, you can darcs send -O and mail the resulting patch file to the list. Finally, clean up:

    darcs obliterate -p 'my test patch'
    

how to get your patch committed

how to improve the documentation

how to run the tests

how to add a test

how to fix a bug or add a feature

how to become a contributor

how to do code review

how to help with packaging

how to help with project management

Project notes

This will grow into an overall description/blueprint for the hledger project.

mission, principles, goals

The hledger project aims to produce:

roles and activities

documentation

quality assurance

code