How to contribute to V3?

102 views
Skip to first unread message

Tomasz Zurkowski

unread,
Mar 9, 2021, 2:57:47 AM3/9/21
to Beancount
Hello,

I just imported most of my data to beancount and I have to say it is an amazing project!

I would like to contribute and I was wondering what is the best place to start. Is there some list of good "getting started" / "20%" tasks? I would be mostly interested in C++ part (I don't know python as well), and it would be great to start with refactorings / adding unit tests / documenting the code or some small feature. Any recommendations?

- Tomasz


Martin Blais

unread,
Mar 9, 2021, 10:03:53 PM3/9/21
to Beancount
Hi Tomasz,

The timing isn't great for C++ contributions, after Xmas I left the new core library in the middle being written for the core data structures from scratch and I have about a million ideas for improvements based on 10 years of usage of the v2 branch...  that just lives inside my head about this third design iteration (some of them documented here: http://furius.ca/beancount/doc/v3), that I would like to materialize before we build things on top of it. Some of these involve some pretty fundamental changes to booking, for instance, and even the interpretation of the syntax. There will be plenty of opportunities once some of the new code is ported to C++ and the Python-to-C++ bridge is finalized (with protobufs). Problem is I make most of my progress during holidays and vacation because I'm rather swamped - these days trying to finish something at work (announced here in case you're curious - https://gm-neurips-2020.github.io/). I'm planning to take significant time off after this is out the door though (~1 month, hopefully before summer), and it's already earmarked for hacking on Beancount.

I do have a bunch of immediate pedestrian C++ tasks that I could delegate, but they're definitely not the sort of things that will get anyone excited, e.g., upgrade the Bazel build templates (something's broken with the clang setup), figure out how to make it build on macOS, finish porting a bunch of unit tests for the parser from Python to C++, etc.  If you think you might want to bite on some of these let me know and we can set up a quick video conf and discuss it. There are also some fairly interesting parser improvements that could be isolated (e.g. add support delayed arithmetic evaluation).

Cheers,



--
You received this message because you are subscribed to the Google Groups "Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beancount+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/e4202f44-1980-47b2-ba5d-5af6874abc1cn%40googlegroups.com.

Tomasz Zurkowski

unread,
Mar 10, 2021, 5:40:28 AM3/10/21
to Beancount
Pedestrian C++ tasks sounds great to me :), I mostly want to get started with the codebase, but if possible not do the throwaway work. I actually really like doing refactorings, writing tests and figuring out what is the best way of doing a particular task.

From the tasks you mentioned, I would rank them as follow from my side:
  1. finish porting a bunch of unit tests for the parser from Python to C++ -  perfect, very well defined what has to be done, should be pretty simple and will give me exposure to some C++ code, types, etc.
  2.  upgrade the Bazel build templates (something's broken with the clang setup) - not really C++ coding, but I don't mind playing a little with Bazel
  3. figure out how to make it build on macOS - I don't have a macOS, so it will be a tricky one
I will write to you on email to coordinate scheduling a quick video conf.

Thanks!
Reply all
Reply to author
Forward
0 new messages