Beancount v3 progress

652 views
Skip to first unread message

Thiago Lima

unread,
Sep 5, 2022, 9:37:05 PM9/5/22
to Beancount
I'm new to Beancount and PTA in general and tried v2, but would really like to leverage some of the v3 proposed features, especially the input split support.

Where can I find the progress towards v3 goals, ideally including which features are in progress, need help, or are already implemented?

Martin Blais

unread,
Sep 5, 2022, 10:10:37 PM9/5/22
to bean...@googlegroups.com
Hi Thiago,
I'm the author of Beancount v2 & v3 core.

Since the plan was laid out, beangulp (the ingest/import framework) and beanquery have been successfully out to distinct projects taken over by Daniele Nicolodi, here:
Daniele did lots of improvements to both of these projects and I'm using them.

beanprice has also taken a life of its own, Kirill Goncharov and others have done some maintenance work on it:

As for the core rewrite to C++, I've been sitting on its development for a long while, it's more or less been on ice. Work got busy and with the appearance of children I have less free cycles to devote to it, and have been building other projects for more pressing needs (e.g., https://github.com/beancount/johnny). The state of affairs is that
- the new c++ parser is 90% done (missing the ability to store comments though)
- some of the c++ core is done (maybe 20% of it)
- I implemented a working prototype for the proto / C++ / python / bazel integration, but recent changes upstream need to be integrated (changes that make this easier, open source changes from Google)
- the build is currently broken due to changes upstream.

I was actually looking at upgrading the build today to account for the many improvements in dependent libraries, but I couldn't get an hour of undisturbed time.

I've decided over recent vacations to allocate a specific weekly time slot from now on to restart making at least regular progress on it. I'm not so interested in help, as I have a clear and uncompromising picture of what I'd like for it to look like, my problem is time more than anything else. I'm not so sure how to accept contributions at this stage, I was hoping to have at least a good chunk of the C++ core picture laid out in code before having other people get involved. The core has to be ported from Python to C++, keeping the Python tests all the while, but I want to redesign the data structures as well and present a clean Python API to them as the primary interface.

Some help I could use is not very sexy work: 
- straightforwardly porting the Python core to the C++ core equivalents (with tests)
- upgrading the bazel build to 5.3 and all dependencies (removing hacks I had to use if now possible, they're improved bazel quite a bit)





On Mon, Sep 5, 2022 at 9:37 PM Thiago Lima <t.au...@gmail.com> wrote:
I'm new to Beancount and PTA in general and tried v2, but would really like to leverage some of the v3 proposed features, especially the input split support.

Where can I find the progress towards v3 goals, ideally including which features are in progress, need help, or are already implemented?

--
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/703b923a-a47b-47a5-85b8-84202c0df629n%40googlegroups.com.

Martin Blais

unread,
Sep 6, 2022, 8:27:00 PM9/6/22
to Martin Blais, bean...@googlegroups.com
Just fixed the v3 build.
One now needs
- bazel 5.3 (local install)
- protobuf v21.5 (pip in local Python runtime)




Chary Chary

unread,
Sep 7, 2022, 11:58:08 AM9/7/22
to Beancount
Martin,

is my understanding correct, that in order to be able to use  the latest features of the  beangulpbeanquery and  beanprice  one has to use beancount v3?

Daniele Nicolodi

unread,
Sep 7, 2022, 6:41:08 PM9/7/22
to bean...@googlegroups.com
On 07/09/2022 17:58, Chary Chary wrote:
> Martin,
>
> is my understanding correct, that in order to be able to use  the latest
> features of the *beangulp*, *beanquery *and *beanprice *one has to use
> *beancount v3?*

beanquery works with Beancount v2.

beangulp currently requires Beancount v3. At the time it was forked out
from the beancount repository a release of some sort of Beancount v3
seemed not too far in the future. I haven't heard anyone wanting to use
it with Beancount v2. I believe supporting Beancount v2 would not
require many adjustments.

beanprice works with Beancount v2.

Cheers,
Dan

Daniele Nicolodi

unread,
Sep 7, 2022, 6:43:26 PM9/7/22
to bean...@googlegroups.com
On 06/09/2022 03:30, Thiago Lima wrote:
> I'm new to Beancount and PTA in general and tried v2, but would really
> like to leverage some of the v3 proposed features, especially the input
> split support.

What do you mean with "input split support"? Beancount v2 has an include
directive (although one with a bit of a surprising semantic).

Which other features of Beancount v3 would you like to use?

Cheers,
Dan

Thiago Lima

unread,
Sep 7, 2022, 8:54:41 PM9/7/22
to Beancount
Hi, Martin.

I totally get the "undisturbed time". Have a toddler of my own and that put pretty much all of my side projects to a halt. Please take your time. We all appreciate all the effort and hours you and other put into this.

That being said, I think it would really help us all (the community and yourself) if you (or some contributor closer to the development) could write down some of those milestones you have in mind, perhaps using GitHub's own project feature [1]. If nothing else, that would help avoid questions such as mine. Just to be clear, I'm not asking for any dates or anything, just for (some) visibility, to get a sense of the progress of the rewrite. Finally, please let us all know once some of those milestones have properly defined scopes and boundaries, so others can jump in to help in a more structured/productive way.

Thanks!

@Dan, I'm talking about the section entitled "Input Split Transactions" in the "Beancount - V3: Goals & Design" document [2].

Martin Blais

unread,
Sep 7, 2022, 8:57:47 PM9/7/22
to bean...@googlegroups.com
On Wed, Sep 7, 2022 at 8:54 PM Thiago Lima <t.au...@gmail.com> wrote:
Hi, Martin.

I totally get the "undisturbed time". Have a toddler of my own and that put pretty much all of my side projects to a halt. Please take your time. We all appreciate all the effort and hours you and other put into this.

That being said, I think it would really help us all (the community and yourself) if you (or some contributor closer to the development) could write down some of those milestones you have in mind, perhaps using GitHub's own project feature [1]. If nothing else, that would help avoid questions such as mine. Just to be clear, I'm not asking for any dates or anything, just for (some) visibility, to get a sense of the progress of the rewrite. Finally, please let us all know once some of those milestones have properly defined scopes and boundaries, so others can jump in to help in a more structured/productive way.

Thanks!


@Dan, I'm talking about the section entitled "Input Split Transactions" in the "Beancount - V3: Goals & Design" document [2].


On Wednesday, September 7, 2022 at 7:43:26 PM UTC-3 dan...@grinta.net wrote:
On 06/09/2022 03:30, Thiago Lima wrote:
> I'm new to Beancount and PTA in general and tried v2, but would really
> like to leverage some of the v3 proposed features, especially the input
> split support.

What do you mean with "input split support"? Beancount v2 has an include
directive (although one with a bit of a surprising semantic).

Which other features of Beancount v3 would you like to use?

Cheers,
Dan

--
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.

Martin Michlmayr

unread,
Sep 8, 2022, 7:20:01 AM9/8/22
to bean...@googlegroups.com
* Daniele Nicolodi <dan...@grinta.net> [2022-09-08 00:41]:
> beangulp currently requires Beancount v3. At the time it was forked
> out from the beancount repository a release of some sort of
> Beancount v3 seemed not too far in the future. I haven't heard
> anyone wanting to use it with Beancount v2.

I put several projects on hold because I don't know whether to target
v2 or v3 because there's no clear v3 timeframe.

Making beangulp available for v2 (as the other tools are) would
be a great help for me.

--
Martin Michlmayr
https://www.cyrius.com/

Stefano Zacchiroli

unread,
Sep 8, 2022, 8:19:50 AM9/8/22
to bean...@googlegroups.com
On Thu, Sep 08, 2022 at 07:19:54PM +0800, Martin Michlmayr wrote:
> Making beangulp available for v2 (as the other tools are) would
> be a great help for me.

Same here. I've been postponing improving my bean-ingest pipeline
because it's not worth investing in the "old" API anymore than I already
did. Being able to jump to beangulp without having to wait for Beancount
v3 would unblock that for me.

Cheers
--
Stefano Zacchiroli . za...@upsilon.cc . upsilon.cc/zack _. ^ ._
Full professor of Computer Science o o o \/|V|\/
Télécom Paris, Polytechnic Institute of Paris o o o </> <\>
Co-founder & CTO Software Heritage o o o o /\|^|/\
Former Debian Project Leader & OSI Board Director '" V "'

Daniele Nicolodi

unread,
Sep 9, 2022, 4:00:29 AM9/9/22
to bean...@googlegroups.com
On 08/09/2022 14:19, Stefano Zacchiroli wrote:
> On Thu, Sep 08, 2022 at 07:19:54PM +0800, Martin Michlmayr wrote:
>> Making beangulp available for v2 (as the other tools are) would
>> be a great help for me.
>
> Same here. I've been postponing improving my bean-ingest pipeline
> because it's not worth investing in the "old" API anymore than I already
> did. Being able to jump to beangulp without having to wait for Beancount
> v3 would unblock that for me.

beangulp is now compatible with Beancount v2.

Cheers,
Dan

Martin Blais

unread,
Sep 9, 2022, 5:56:49 AM9/9/22
to Beancount
Fantastic! Thank you!


Cheers,
Dan


--
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.

Stefano Zacchiroli

unread,
Sep 9, 2022, 7:59:11 AM9/9/22
to bean...@googlegroups.com
On Fri, Sep 09, 2022 at 10:00:26AM +0200, Daniele Nicolodi wrote:
> > Same here. I've been postponing improving my bean-ingest pipeline
> > because it's not worth investing in the "old" API anymore than I already
> > did. Being able to jump to beangulp without having to wait for Beancount
> > v3 would unblock that for me.
>
> beangulp is now compatible with Beancount v2.

That was quick! Awesome, thank you.

francois PEGORY

unread,
Sep 9, 2022, 8:30:51 AM9/9/22
to Beancount
Hello, now that beangulp is working with  beancount V2.

Do you know if (and when) it will work with fava ?

Regards

--
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.

Nasko Oskov

unread,
Sep 29, 2022, 4:26:15 PM9/29/22
to bean...@googlegroups.com
I acknowledge this might be a randomizing question, but I have been wondering for a few days now whether folks have considered using Rust for the v3 rewrite. It is a newer language and not familiar to a lot of folks, but allows us to write software at system level performance with lower defect density on average.

Martin Blais

unread,
Sep 29, 2022, 9:52:59 PM9/29/22
to bean...@googlegroups.com
I'm trying really hard not to get involved in it. I have other rabbit holes to get lost into.
I don't think it would make much of a difference for this very simple system.



Reply all
Reply to author
Forward
0 new messages