Contributor Guide

This doc is intended to become a focussed guide for new contributors.

If you are unexpectedly seeing this page after following a link, the content probably moved to a separate page: see the Developer docs.

Chat, Mail, Twitter, HN etc.https://hledger.org/#help
hledger-web demo  demo.hledger.org
hledger GHCJS demohttps://hledger.alhur.es
Trelloold wishlist planning board
Githubsimonmichael/hledger (shortcut: code.hledger.org)
commits, COMMITS!
open bugs, open wishes, open unknowns, open pull requests, draft open pull requests, ready open pull requests, all issues
issues with bounty tag, bountysource bounties, codemill bounties, codefund bounties
stars.hledger.org: our rank among starred haskell projects:
2016: #71, 2017: #54, 2018: #53, 2020: #36
github projects
ci.hledger.org hledger CI
Hackagepackages: hledger-lib, hledger, hledger-ui, hledger-web, hledger-diff, hledger-iadd, hledger-interest, hledger-irr, *hledger*
diffs: hledger-lib, hledger, hledger-ui, hledger-web
build status: hledger-lib, hledger, hledger-ui, hledger-web
reverse deps: hledger-lib, hledger, hledger-ui, hledger-web
on hackage
... ...
... ...
Stackagebuild-constraints.yaml
open hledger-related issues
packages: hledger-lib, hledger, hledger-ui, hledger-web
versions: hledger-lib, hledger, hledger-ui, hledger-web
...
Repologyquick hledger packaging status, detailed hledger packaging status, all *hledger* packages
Debiansource packages: haskell-hledger-lib, bugs, haskell-hledger, bugs, haskell-hledger-ui, bugs, haskell-hledger-web, bugs
stable: hledger, bugs, hledger-ui, bugs, hledger-web, bugs
testing: hledger, bugs, hledger-ui, bugs, hledger-web, bugs
unstable: hledger, bugs, hledger-ui, bugs, hledger-web, bugs
all: *hledger*
sampled install stats: hledger, hledger-ui, hledger-web
Ubuntusource packages: haskell-hledger-lib, bugs, haskell-hledger, bugs, haskell-hledger-ui, bugs, haskell-hledger-web, bugs
binary packages: *hledger*
Gentoohledger, hledger-web, *hledger*
Fedorahledger, *hledger*, hledger (package db), Haskell SIG
Void Linuxpackage search -> hledger
Nix*hledger*
Homebrewhledger
our 1-year homebrew rank:
2020: #1520 of 10000 on mac, #762 of 8288 on linux
Sandstormhledger web app & reviews, issues
Referencefosskers GHC compatibility chart

Open issues

An overview of hledger's issue tracker. A good place to start looking for something to work on.

COMPONENT/TOPIC *BUGSWISHESPRSOTHER
allbugs (first/easy/neither)wishesPRsother
Tools:
install (hledger-install.sh)bugs (first/easy/neither)wishesPRsother
cli (hledger)bugs (first/easy/neither)wishesPRsother
ui (hledger-ui)bugs (first/easy/neither)wishesPRsother
web (hledger-web)bugs (first/easy/neither)wishesPRsother
Input/Output Formats:
journalbugs (first/easy/neither)wishesPRsother
timeclockbugs (first/easy/neither)wishesPRsother
timedotbugs (first/easy/neither)wishesPRsother
csvbugs (first/easy/neither)wishesPRsother
jsonbugs (first/easy/neither)wishesPRsother
htmlbugs (first/easy/neither)wishesPRsother
Commands:
accountsbugs (first/easy/neither)wishesPRsother
activitybugs (first/easy/neither)wishesPRsother
addbugs (first/easy/neither)wishesPRsother
balcmds (bal/bs/bse/cf/is/...)bugs (first/easy/neither)wishesPRsother
balancebugs (first/easy/neither)wishesPRsother
balancesheetbugs (first/easy/neither)wishesPRsother
cashflowbugs (first/easy/neither)wishesPRsother
checkdatesbugs (first/easy/neither)wishesPRsother
checkdupesbugs (first/easy/neither)wishesPRsother
closebugs (first/easy/neither)wishesPRsother
importbugs (first/easy/neither)wishesPRsother
incomestatementbugs (first/easy/neither)wishesPRsother
pricesbugs (first/easy/neither)wishesPRsother
printbugs (first/easy/neither)wishesPRsother
printuniquebugs (first/easy/neither)wishesPRsother
registerbugs (first/easy/neither)wishesPRsother
registermatchbugs (first/easy/neither)wishesPRsother
rewritebugs (first/easy/neither)wishesPRsother
roibugs (first/easy/neither)wishesPRsother
statsbugs (first/easy/neither)wishesPRsother
tagsbugs (first/easy/neither)wishesPRsother
Miscellaneous:
budget (budgeting)bugs (first/easy/neither)wishesPRsother
packaging (packaging, dependencies)bugs (first/easy/neither)wishesPRsother
doc (documentation, help)bugs (first/easy/neither)wishesPRsother
periodexpressions (-b, -e, -p, date:)bugs (first/easy/neither)wishesPRsother
site (website, web presence)bugs (first/easy/neither)wishesPRsother
tools (dev tools, infrastructure)  bugs (first/easy/neither)wishesPRsother

About the project

Mission

Why was hledger created ?

Mainly:

  • to provide a more usable, robust, documented, cross-platform-installable version of Ledger for users
  • to provide a more maintainable and hackable version of Ledger for developers

Also:

  • to provide a useful library and toolbox for finance-minded haskell programmers
  • to explore the suitability of Haskell for such applications
  • to experiment with building a successful time-and-money-solvent project in a thriving ecosystem of financial software projects

What is the hledger project's current mission ?

  1. Provide peace of mind: bring clarity, relief, and peace of mind to folks stressed, confused, overwhelmed by finances.
  2. Educate and empower: help individuals and communities achieve clarity, accountability and mastery with money and time.

Roles and activities

  • newcomer/potential user
  • user
  • library user
  • field tester
  • bug wrangler
  • support
  • documentor
  • qa
  • developer
  • packager
  • communicator
  • project manager

Getting started

New contributors are always welcome in the hledger project. Jump in! Or ask us to help you find a task.

Funder

Become a financial backer to sustain and grow this project, increase your influence, express gratitude, build prosperity consciousness, and help transform world finance!

  • Use the donate links on the home page
  • Configure a recurring donation
  • Contribute or pledge bounties on issues you care about
  • Ask your organization to contribute
  • Work on project sustainability, accountability, fundraising

Tester

  • Test installation on platforms you have access to
  • Test examples, advice, and links in the docs
  • Run the latest release or developer build in daily use
  • Run tests
  • Run benchmarks
  • Report packaging, documentation, UX, functional, performance issues
  • Report and help analyse problems via irc/mail list/bug tracker

When reporting bugs, don't forget to search the tracker for a similar bug report. Otherwise, open a new bug by clicking "New issue", or http://bugs.hledger.org/new.

Enhancement requests are sometimes added to the tracker,but for these consider using the IRC channel and mail list (see Getting help). Both are archived and linkable, so the idea won't be lost. There is also a collection of wishes at the old trello board.

Technical Writer

  • get familiar with the website and documentation online, review and test
  • get familiar with the site/doc source files (see Shake.hs)
  • get the latest hledger source
  • send patches with names prefixed with "doc: " (or "site: ")

Graphics Designer

  • more/better logos & graphics
  • illustrations and diagrams
  • web design mockups for home page, site, hledger-web UI

Communicator

Marketing and market understanding is vital.

  • clarify project goals, value proposition, brand, mission, story
  • monitor product-market fit
  • identify new opportunities
  • influence developer priorities
  • spread the word!

Maintainer

Help with issue management

  • watch tracker activity, report status
  • apply/update labels where needed
  • follow up on dormant issues
  • facilitate a consistently good bug-reporting & PR-contributing experience

Help with packaging

  • package hledger for linux distros, macports, etc.
  • develop mac/windows installers
  • find and assist distro packagers/installer developers

Help with project management

  • clarify/update goals and principles
  • monitor, report on project progress and performance
  • research, compare and report on successful projects, related projects
  • identify collaboration opportunities
  • marketing, communication, outreach
  • release management, roadmap planning

Developer

See Developer workflows.