Beancount v3 : Quoi de neuf ?
Beancount version 3, sortie mi-2024, marque une évolution architecturale significative pour l'outil de comptabilité en texte brut populaire. Bien qu'elle maintienne la rétrocompatibilité pour les fichiers de grand livre des utilisateurs, la structure sous-jacente et les outils qui l'accompagnent ont subi des changements substantiels. Voici un aperçu des nouveautés de Beancount v3.
Une architecture plus modulaire et rationalisée
Le changement le plus significatif dans Beancount v3 est le passage à un écosystème plus modulaire. Plusieurs fonctionnalités clés qui étaient auparavant regroupées avec le noyau ont été séparées en projets indépendants. Cela rend le cœur de Beancount plus léger et permet un développement plus ciblé sur les composants individuels.
Les composants clés qui sont maintenant des paquets séparés incluent :
- beanquery : L'outil de requête puissant de type SQL pour vos fichiers de grand livre est maintenant dans son propre paquet.
- beangulp : C'est le nouveau foyer du framework d'importation de données, remplaçant l'ancien module
beancount.ingest
. - beanprice : Un outil dédié à la récupération des prix des matières premières et des actions.
Cette séparation signifie que les utilisateurs devront installer ces paquets en plus de beancount
lui-même pour conserver toutes les fonctionnalités auxquelles ils étaient habitués dans la version 2.
Changements des outils en ligne de commande et des flux de travail
Reflétant la nouvelle architecture modulaire, il y a des changements notables aux outils en ligne de commande :
bean-report
a disparu : Cet outil a été supprimé. Les utilisateurs sont maintenant encouragés à utiliserbean-query
(du paquetbeanquery
) pour leurs besoins de reporting.- Nouveau flux de travail d'importation : Les commandes
bean-extract
etbean-identify
ont été supprimées du noyau. La nouvelle approche avecbeangulp
est basée sur des scripts. Les utilisateurs devront maintenant créer leurs propres scripts Python pour gérer l'importation de données provenant de sources externes comme les relevés bancaires.
Améliorations de la syntaxe et des fonctionnalités
Bien que les principes comptables fondamentaux restent les mêmes, Beancount v3 introduit une flexibilité bienvenue dans sa syntaxe :
- Codes de devise plus flexibles : Les restrictions précédentes sur la longueur et les caractères des noms de devises ont été assouplies. Les symboles de devise à un seul caractère sont maintenant pris en charge.
- Drapeaux de transaction étendus : Les utilisateurs peuvent maintenant utiliser n'importe quelle lettre majuscule de A à Z comme drapeau pour les transactions, permettant une catégorisation plus granulaire.
Il est important de noter que ces changements sont rétrocompatibles, de sorte que vos fichiers de grand livre Beancount v2 existants fonctionneront sans aucune modification.
La réécriture en C++ et les performances
L'un des objectifs à long terme de Beancount a été la réécriture de ses composants critiques en termes de performance en C++. Bien que ce travail soit en cours, la version initiale de Beancount v3 n'inclut pas le noyau basé sur C++. Cela signifie que pour l'instant, les performances de la v3 sont comparables à celles de la v2. Le code C++ reste dans une branche de développement séparée pour une intégration future.
Migration de la v2 vers la v3
Pour la plupart des utilisateurs, la migration de Beancount v2 vers v3 est relativement simple :
- Fichiers de grand livre : Aucune modification n'est nécessaire pour vos fichiers
.beancount
. - Installation : Vous devrez installer les nouveaux paquets séparés comme
beanquery
etbeangulp
en utilisantpip
. - Scripts d'importation : Si vous avez des importateurs personnalisés, vous devrez les mettre à jour pour utiliser la nouvelle API
beangulp
. Cela implique principalement de changer la classe de base dont vos importateurs héritent et d'ajuster certaines signatures de méthode. - Fava : L'interface web populaire pour Beancount, Fava, a été mise à jour pour être compatible avec la v3. Assurez-vous d'avoir la dernière version de Fava pour une expérience fluide.
En substance, Beancount v3 est une version fondamentale qui rationalise l'architecture du projet, la rendant plus modulaire et plus facile à maintenir et à étendre à long terme. Bien qu'elle nécessite quelques ajustements aux flux de travail des utilisateurs, en particulier autour de l'importation de données, elle prépare le terrain pour le développement futur de cet outil de comptabilité puissant.