Skip to content

Releases: tackler-ng/tackler

v25.06.1

30 Jun 08:42
v25.06.1
4f8bef7
Compare
Choose a tag to compare

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

10 May 18:49
v25.05.1
86d86b5
Compare
Choose a tag to compare

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

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)
  • 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 with mimalloc
      • 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
  • Reject unknown configuration keys

  • Add new default configuration key ext for suffix (for both fs and git storage).
    Old config wiht suffix 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
  • 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

08 Apr 17:41
v25.04.2
64a0214
Compare
Choose a tag to compare

New features

Changes

  • New optional configuration key report.balance.type and report.balance-group.type, default is tackler's original balance report type tree.

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

04 Apr 17:19
v25.04.1
668cebc
Compare
Choose a tag to compare

New features

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

19 Jan 18:41
v25.01.1
e730633
Compare
Choose a tag to compare

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 and init
    • Command new <name> will create a new bookkeeping setup name with default files
    • Command init will initialize a new bookkeeping setup at current location
  • 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

26 Dec 05:48
v24.12.2
9d617ff
Compare
Choose a tag to compare

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 location
    • input.git.repo, alias for input.git.repository

tackler-rs

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

10 Dec 17:54
v24.12.1
45f8647
Compare
Choose a tag to compare

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

24 Nov 15:01
v24.11.2
3da9fa6
Compare
Choose a tag to compare

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

17 Nov 08:44
v24.11.1
8e9ce27
Compare
Choose a tag to compare
Tackler-NG 24.11.1 Pre-release
Pre-release

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

Fixes and Changes

  • Changed defaults for CLI and configuration options, and how those work

Full Changelog: CHANGELOG

Tackler-NG 24.11.0

15 Nov 21:02
v24.11.0
ad0291c
Compare
Choose a tag to compare
Tackler-NG 24.11.0 Pre-release
Pre-release

New features:

  • Reports
    • Balance Group Report
      • GroupBy: Year, Month, Date, ISO-Week, ISO-Week-Day
  • Exports
    • Equity export
    • Identity export
  • Account Selector checksums

Full Changelog: CHANGELOG