Releases: tackler-ng/tackler
v25.06.1
New Features
-
New credit account reporting option
--invert
for all reports and Equity export (GH-99) -
Enhanced and better error messages in case of invalid configuration file
Changes
-
Equity export: Use price data if commodity conversion is activated (GH-101)
-
Equity export: move the UUID of last txn from the subject line to the comment section of the equity transaction
Fixes
- Implement missing CLI select all account selector (
--accounts ""
) - Implement missing CLI disable all reports selector (
--reports ""
) - Implement missing CLI disable all exports selector (
--exports ""
) - Adapt to Rust 1.88.0 with
clippy::pedantic
How to test this release
Equity without commodity price conversion:
tackler new demo
tackler \
--config demo/conf/tackler.toml \
--reports "" \
--price.lookup-type none \
--exports equity \
--output.dir . \
--output.prefix eq-none
Output:
Equity Export : ./eq-none.equity.txn
$ cat ./eq-none.equity.txn
2025-03-21T00:00:00+00:00 'Equity txn
Assets:Cash -5.50
Equity:Balance 5.50
2025-03-21T00:00:00+00:00 'Equity txn for GML
Assets:Coins 1 GML
Equity:Balance -1 GML
Equity with commodity price conversion
tackler \
--config demo/conf/tackler.toml \
--reports "" \
--price.lookup-type last-price \
--exports equity \
--output.dir . \
--output.prefix eq-cad
Output:
Equity Export : ./eq-cad.equity.txn
$ cat ./eq-cad.equity.txn
2025-03-21T00:00:00+00:00 'Equity txn
; Report Time Zone
; TZ name : UTC
;
; Commodity Prices
; Time : 2025-03-21 00:00:00
; Commodity : GML
; Value : 4350 CAD
;
Assets:Cash -5.50
Equity:Balance 5.50
2025-03-21T00:00:00+00:00 'Equity txn for CAD
; Report Time Zone
; TZ name : UTC
;
; Commodity Prices
; Time : 2025-03-21 00:00:00
; Commodity : GML
; Value : 4350 CAD
;
Assets:Coins 4350 CAD
Equity:Balance -4350 CAD
Equity with commodity price conversion and with inverted amounts:
tackler \
--config demo/conf/tackler.toml \
--reports "" \
--price.lookup-type last-price \
--exports equity \
--invert \
--output.dir . \
--output.prefix eq-cad-inverted
Output:
Equity Export : ./eq-cad-inverted.equity.txn
cat ./eq-cad-inverted.equity.txn
2025-03-21T00:00:00+00:00 'Equity txn
; Report Time Zone
; TZ name : UTC
;
; Commodity Prices
; Time : 2025-03-21 00:00:00
; Commodity : GML
; Value : 4350 CAD
;
; Credit Account Report
; NOTE : All amounts are inverted
;
Assets:Cash 5.50
Equity:Balance -5.50
2025-03-21T00:00:00+00:00 'Equity txn for CAD
; Report Time Zone
; TZ name : UTC
;
; Commodity Prices
; Time : 2025-03-21 00:00:00
; Commodity : GML
; Value : 4350 CAD
;
; Credit Account Report
; NOTE : All amounts are inverted
;
Assets:Coins -4350 CAD
Equity:Balance 4350 CAD
v25.05.1
Warning
Semantic change with input.git.dir
and input.git.ext
This releases fixes the functionality of input.git.dir
and input.git.ext
so that it is identical with input.fs.dir
and input.fs.ext
.
With previous releases of tackler, input.git.dir
and input.git.ext
acted as a glob pattern (prefix and suffix).
Now input.git.dir
will match the full directory name (no glob at the end) and input.git.ext
will match the full extension of the filename (no prefix glob).
New Features
-
New and much improved Tackler Documentation
-
New output format JSON
- Optional configuration key
report.formats
to specify output formats. - New optional CLI argument
--formats
to select report formats
- Optional configuration key
Changes
-
Git SCM Storage
- Enforce that
input.git.dir
is matched as a directory (not as a glob) - Enforce that
input.git.ext
is matched as a file extension (not as a glob)
- Enforce that
-
Add account selectors as text into Account Selector Checksum metadata
-
Change and Add more information to the "Git Storage" metadata
- New fields: "author", "date"
- Fix name of "message" to "subject" (the content of that field has been git subject all the time)
- Change field "suffix" to "extension", don't print the '.'
- Change the order of fields (move commit after extension)
-
Change default allocator
- Replace
tikv-jemallocator
withmimalloc
- Mimalloc is available on Linux, Windows and MacOS
- It's about 20% faster on Linux and Windows, but on MacOS difference is only about 5%
- Memory usage increases about 30% an all platforms
- Replace
-
Reject unknown configuration keys
-
Add new default configuration key
ext
forsuffix
(for bothfs
andgit
storage).
Old config wihtsuffix
key is still supported. -
Add new CLI option
--input.fs.path
- Change the semantics of
--input.fs.dir
, it's now path inside journal (under--input.fs.path
)
This is now symmetrical how--input.git.repo
and--input.git.dir
behave
- Change the semantics of
-
Allow overriding storage options from CLI without full storage configuration
How to test this release
tackler new demo
tackler \
--config demo/conf/tackler.toml \
--output.dir . \
--output.prefix report \
--formats txt json
Output:
Balance Report (TEXT): ./report.bal.txt
Balance Report (JSON): ./report.bal.json
Register Report (TEXT): ./report.reg.txt
Register Report (JSON): ./report.reg.json
Process JSON with jaq
or jq
jaq '.deltas[1]' report.bal.json
Filtered JSON Balance Report (get the second delta row)
{
"delta": "1.00",
"commodity": "GML"
}
v25.04.2
New features
- New report type for Balance family reports (TEP-1016)
- Flat Balance report
- Flat Balance Group report
Changes
- New optional configuration key
report.balance.type
andreport.balance-group.type
, default is tackler's original balance report typetree
.
See full CHANGELOG for details
Tackler-NG is tested with 417 tracked test vectors at the moment
How to test this release
cargo install --locked tackler
tackler new my_journal
tackler --config my_journal/conf/tackler.toml
# Explore `report.balance.type` and `report.balance-group.type` settings
# with `tree` and `flat` options.
v25.04.1
New features
- New Commodity Price support
- Different Mark-to-Market (MTM) valuation methods:
- Full coverage of Tackler-Mk1 CLI tests
Fixes and changes
- Improved error messages when invalid journal syntax is used
- Don't accept invalid CLI input arg combinations
- Warn if exports are used without CLI output arguments
- Enforce blank line between transactions (Tackler-Mk1 / ANTLR)
- Print error message if repository contains links (Tackler-Mk1)
- Print error message if transaction set is empty (Tackler-Mk1)
- Equity Export: Check equity account name when strict mode is on (Tackler-Mk1)
See full CHANGELOG for details
Tackler-NG is tested with 408 tracked test vectors at the moment
(Full coverage of Tackler-Mk1 CLI tests)
How to test this release
cargo install --locked tackler
tackler new my_journal
tackler --config my_journal/conf/tackler.toml
# New Commodity Price Support feature
tackler \
--config my_journal/conf/tackler.toml \
--reports balance \
--price.lookup-type last-price
Special Mention
Thank you RagibHasin for contributing and helping with Commodity Price Support feature (#36 and TEP-1015) !
v25.01.1
Release highlights
How to test tackler
cargo install tackler
tackler new my_journal
tackler --config my_journal/conf/tackler.toml
New features
- New tackler commands
new
andinit
- Command
new <name>
will create a new bookkeeping setupname
with default files - Command
init
will initialize a new bookkeeping setup at current location
- Command
- This release is 2-3x faster, now tackler can process 120_000 - 250_000 txn/s on modern laptop
Fixes and changes
- Replaced ANTLR based Txn parser with winnow parser combinator
- This is affecting how invalid journal syntax is reported
- This has no changes to journal syntax
- Replaced time and time-tz with jiff
- This have some user visible changes, e.g. 'Z' is replaced with '+00:00'
- Txn Filters, Txn Timestamp: Begin and End are displayed with report timezone
Tackler-NG is tested with 310 tracked test vectors at the moment
See full CHANGELOG for details
Tackler-NG 24.12.2
Release highlights
Tackler-NG is tested with 306 of tackler's test vectors at the moment
New features
- Git Backend: Add support for
revspecs
with--input.git.ref
- Add support for new storage keys
input.fs.path
, path to top level fs-storage locationinput.git.repo
, alias forinput.git.repository
tackler-rs
- New full haystack regex support
Fixes and changes
- Git Backend: When opening the repo, use exact location,
and don't search upwards on the directory tree - Implement Tackler-Mk1 and JDK compatible full string (haystack) regex matcher.
This change is affecting Account Selectors which use regex.
See full CHANGELOG for details
Tackler-NG 24.12.1
Release highlights
Tackler-NG is tested with 284 of tackler's test vectors at the moment
New features
Add CLI option:
--input.git.commit
Fixes and changes
- Register report: Use Tackler-MkI compatible output
- Fix broken
--group-by
cli option (clap definition) - Print transaction geo location tag with full precision (with trailing zeros)
See full CHANGELOG for details
Tackler-NG 24.11.2
Release highlights
Tackler-NG passes 36 of the most essential Tackler test vectors
New features
- Add CLI options
--output.dir
--output.prefix
--strict.mode
- Add support for
export.targets
with configuration
Test Coverage
- 36 of the most essential Tackler test vectors are converted for the new code base
- 119 of tracked (T3DB) Unit tests have been implemented for the new code base
Fixes and Changes
- Cosmetic changes to output reports so that they are similar with test vectors
- CLI and configuration options changes
Full Changelog: CHANGELOG
Tackler-NG 24.11.1
Release highlights
Tackler-NG has rough feature parity with the old Scala based codebase with this 24.11.1 release.
New features
Full support for configuration
-
Journal Transaction Storage examples
-
Configuration documentation
Fixes and Changes
- Changed defaults for CLI and configuration options, and how those work
Full Changelog: CHANGELOG
Tackler-NG 24.11.0
New features:
- Reports
- Balance Group Report
- GroupBy: Year, Month, Date, ISO-Week, ISO-Week-Day
- Balance Group Report
- Exports
- Equity export
- Identity export
- Account Selector checksums
Full Changelog: CHANGELOG