ledger2beancount 1.8 released

I released version 1.8 of ledger2beancount, a ledger to beancount converter.

I ran ledger2beancount over the ledger test suite and made it much more robust. If ledger2beancount 1.8 can't parse your ledger file properly, I'd like to know about it.

Here are the changes in 1.8:

  • Add support for apply year
  • Fix incorrect account mapping of certain accounts
  • Handle fixated commodity and postings without amount
  • Improve behaviour for invalid end without apply
  • Improve error message when date can't be parsed
  • Deal with account names consisting of a single letter
  • Ensure account names don't end with a colon
  • Skip ledger directives eval, python, and value
  • Don't assume all filenames for include end in .ledger
  • Support price directives with commodity symbols
  • Support decimal commas in price directives
  • Don't misparse balance assignment as commodity
  • Ensure all beancount commodities have at least 2 characters
  • Ensure all beancount metadata keys have at least 2 characters
  • Don't misparse certain metadata as implicit conversion
  • Avoid duplicate commodity directives for commodities with name collisions
  • Recognise deferred postings
  • Recognise def directive

Thanks to Alen Siljak for reporting a bug.

You can get ledger2beancount from GitHub.

ledger2beancount 1.7 released

I released version 1.7 of ledger2beancount, a ledger to beancount converter.

This release contains a number of bug fixes and a new feature:

  • Don't misparse account and commodity with mixed tab/space separators
  • Rename account names consisting of a root name without subaccount
  • Warn when non-standard root names are used
  • Avoid duplicate open directives for accounts with name collisions
  • Don't warn for renamed tags that won't show up in the beancount file
  • Add account_regex option to mass rename account names
  • Add man page and improve documentation

You can get ledger2beancount from GitHub.

Thanks to GitHub user Joradi98 for reporting some bugs. Thanks to Jelmer Vernooń≥ for packaging ledger2beancount for Debian.

FOSSASIA 2019 in Singapore

I attended FOSSASIA earlier this month. This conference has been on my radar for many years but I never managed to attend before.

I was impressed by the organization of the conference. Furthermore, I liked that the audience was completely different to the conferences I normally attend. There were so many new people. FOSSASIA has grown not just to be a conference, but also an umbrella organization for several open source projects.

I gave a talk about open source culture, using Debian as an example. I find this type of presentation important because this is where a lot of pitfalls are for many new contributors. Learning technologies is easy, but figuring out all the unwritten norms and rules of a community can be daunting. Of course, it was particularly interesting to give this talk in an environment where I'm the cultural outsider. While I've visited a number of Asian countries, there's a lot about the different cultures I have yet to learn.

I met a number of Debian contributors, including Andrew Lee, Norbert Preining (who talked about TeX Live), Graham Williams (who used to contribute to Debian in the early days and heads an AI team at Microsoft in Singapore now), Kai Hendry (who used to contribute to Debian) and others. I also spent some time away from the conference to write my DPL platform.

Thank you to Hong Phuc Dang, Mario Behling and all the other organizers and volunteers for a wonderful event!

ledger2beancount 1.5 released

Stefano Zacchiroli and I released version 1.5 of ledger2beancount, a ledger to beancount converter.

This release contains a number of bug fixes and new features:

  • Replace commodities in balance assertions
  • Add support for posting-level dates
  • Add support for hledger features
  • Add support for balance assignments
  • Handle comments on the same line as the payee
  • Handle comments, tags and metadata on postings with balance assertions
  • Handle metadata on postings with cost or price information
  • Handle simple implicit conversions

You can get ledger2beancount from GitHub.

ledger2beancount 1.4 released

Stefano Zacchiroli and I released version 1.4 of ledger2beancount, a ledger to beancount converter.

Version 1.4 contains a number of bug fixes:

  • Don't parse trailing whitespace as part of the account name
  • Replace commodities in lot costs
  • Avoid mangling of lot cost with other lot information
  • Don't require whitespace between {} and @ in lot information

You can get ledger2beancount from GitHub.

ledger2beancount 1.2 released

Stefano Zacchiroli and I released version 1.2 of ledger2beancount, a ledger to beancount converter.

This version of ledger2beancount is compatible with beancount 2.1, which was released a few days ago.

Changes in version 1.2:

  • Updates for beancount 2.1.0:
    • Allow UTF-8 letters and digits in account names
    • Allow full-line comments in transactions
    • Allow transaction tags and links on multiple lines
  • Handle posting tags on multiple lines
  • Always convert posting-level tags to metadata
  • Improve parsing of the transaction header

You can get ledger2beancount from GitHub.

ledger2beancount 1.1 released

Stefano Zacchiroli and I have published version 1.1 of ledger2beancount, a ledger to beancount converter.

Incompatible changes: If you already use ledger2beancount, please note that the payee_match variable changed from a Yaml hash to a list (to make the order deterministic).

Version 1.1 includes a number of bug fixes and enhancements based on feedback from users.

Changes in version 1.1:

  • Happy International Workers' Day release!
  • Handle block comments without indentation correctly
  • Preserve comments for postings with lots
  • Use beancount's pushtag/poptag for ledger's apply tag
  • Handle tag directives with associated commands correctly
  • Allow option link_match to work with tag_as_metadata: true
  • Handle posting-level tags without indentation correctly with tag_as_metadata: false
  • Ensure payee_match is predictable
  • Preserve comments for postings with lots
  • Embed an optional beancount header to the converted file to specify beancount options
  • Convert ledger metadata keys to valid beancount metadata keys
  • Add conversion notes when accounts, commodities or metadata keys are automatically renamed by ledger2beancount
  • Add capability to ignore certain lines
  • Keep whitespace intact when renaming account names.
  • Improve documentation on assigning payees based on transactions
  • Add more test cases
  • Run the test suite only if something has changed

You can get ledger2beancount from GitHub.

ledger2beancount: a ledger to beancount converter

Stefano Zacchiroli and I released ledger2beancount, a script to convert ledger files to beancount. Ledger is a bookkeeping system based on text files. Beancount is another tool which follows a similar approach but which from my point of view is the way forward.

ledger2beancount supports most of the features and syntax of ledger. It also includes some features to improve the conversion from ledger to beancount. The supported ledger features are described in the README and there's a manual with detailed descriptions of ledger2beancount's features. There's also an illustrated example showing some of the differences between ledger and beancount.

Martin Blais released beancount 2.0 a few days ago, so this is a good time to give it a go. Beancount has a web UI called fava which is absolutely fantastic.