Beancount v3: Wat is er nieuw?
Beancount versie 3, uitgebracht medio 2024, markeert een belangrijke architecturale evolutie voor de populaire platte-tekst boekhoudtool. Hoewel het achterwaartse compatibiliteit voor gebruikersgrootboekbestanden behoudt, hebben de onderliggende structuur en bijbehorende tools aanzienlijke veranderingen ondergaan. Hier is een overzicht van wat er nieuw is in Beancount v3.
Een Modulairdere en Gestroomlijndere Architectuur
De meest significante verandering in Beancount v3 is de overgang naar een modulairder ecosysteem. Verschillende belangrijke functionaliteiten die voorheen gebundeld waren met de kern, zijn afgesplitst in afzonderlijke, onafhankelijke projecten. Dit maakt de kern van Beancount slanker en maakt een meer gerichte ontwikkeling van individuele componenten mogelijk.
De belangrijkste componenten die nu afzonderlijke pakketten zijn, omvatten:
- beanquery: De krachtige SQL-achtige querytool voor uw grootboekbestanden bevindt zich nu in een eigen pakket.
- beangulp: Dit is de nieuwe thuisbasis voor het data-importframework, ter vervanging van de voormalige
beancount.ingest
module. - beanprice: Een speciale tool voor het ophalen van prijzen van grondstoffen en aandelen.
Deze scheiding betekent dat gebruikers deze pakketten naast beancount
zelf moeten installeren om de volledige functionaliteit te behouden die ze gewend waren in versie 2.
Wijzigingen in Command-Line Tools en Workflows
Als gevolg van de nieuwe modulaire architectuur zijn er enkele opmerkelijke wijzigingen in de command-line tools:
bean-report
is verdwenen: Deze tool is verwijderd. Gebruikers worden nu aangemoedigd ombean-query
(uit hetbeanquery
pakket) te gebruiken voor hun rapportagebehoeften.- Nieuwe Importeer Workflow: De
bean-extract
enbean-identify
commando's zijn verwijderd uit de kern. De nieuwe aanpak metbeangulp
is script-gebaseerd. Gebruikers zullen nu hun eigen Python-scripts maken om het importeren van gegevens uit externe bronnen zoals bankafschriften af te handelen.
Syntax en Functieverbeteringen
Hoewel de kernboekhoudprincipes hetzelfde blijven, introduceert Beancount v3 enkele welkome flexibiliteit in de syntax:
- Flexibelere Valutacodes: De eerdere beperkingen op de lengte en tekens voor valutanamen zijn versoepeld. Valutasymbolen met één teken worden nu ondersteund.
- Uitgebreide Transactievlaggen: Gebruikers kunnen nu elke hoofdletter van A tot Z gebruiken als vlag voor transacties, wat een meer gedetailleerde categorisatie mogelijk maakt.
Belangrijk is dat deze wijzigingen achterwaarts compatibel zijn, dus uw bestaande Beancount v2 grootboekbestanden werken zonder enige aanpassingen.
De C++ Herimplementatie en Prestaties
Een van de langetermijndoelen voor Beancount is een herimplementatie van de prestatiekritieke componenten in C++. Hoewel dit werk gaande is, bevat de initiële release van Beancount v3 niet de op C++ gebaseerde kern. Dit betekent dat de prestaties van v3 voorlopig vergelijkbaar zijn met v2. De C++-code blijft in een aparte ontwikkelingsbranch voor toekomstige integratie.
Migreren van v2 naar v3
Voor de meeste gebruikers is de migratie van Beancount v2 naar v3 relatief eenvoudig:
- Grootboekbestanden: Er zijn geen wijzigingen nodig voor uw
.beancount
bestanden. - Installatie: U moet de nieuwe, afzonderlijke pakketten zoals
beanquery
enbeangulp
installeren metpip
. - Importeer Scripts: Als u aangepaste importeurs heeft, moet u deze bijwerken om de nieuwe
beangulp
API te gebruiken. Dit omvat voornamelijk het wijzigen van de basisklasse waarvan uw importeurs erven en het aanpassen van enkele methodesignaturen. - Fava: De populaire webinterface voor Beancount, Fava, is bijgewerkt om compatibel te zijn met v3. Zorg ervoor dat u de nieuwste versie van Fava heeft voor een naadloze ervaring.
In essentie is Beancount v3 een fundamentele release die de architectuur van het project stroomlijnt, waardoor het modulairder en gemakkelijker te onderhouden en uit te breiden is op de lange termijn. Hoewel het enkele aanpassingen aan gebruikersworkflows vereist, vooral rond data-import, legt het de basis voor de toekomstige ontwikkeling van deze krachtige boekhoudtool.