Skip to content

Budget Tracker 1.5.0

Choose a tag to compare

@Feromond Feromond released this 30 Aug 21:45
· 56 commits to main since this release
v1.5.0
95e3eb8

Budget Tracker TUI 1.5.0

What's Changed

  • Multiple transaction ledgers by @Feromond in #79
  • Exit after opening update link and report failures by @Feromond in #81
  • Fix Amount To filter, guard exports against the database, format amounts as decimals by @Feromond in #82
  • Refactor form fields around typed field sets by @Feromond in #83
  • Avoid unnecessary terminal redraws by @Feromond in #84
  • Bump Version to 1.5.0 and Update Dependencies by @Feromond in #85

Full Changelog: v1.4.2...v1.5.0

To update/install easily without downloading anything you can use cargo! (If you are not using the installer below)

cargo install budget_tracker_tui

TLDR:

The big change this release is multiple ledgers. A single database can now hold several independent sets of transactions, so you can keep separate books for different accounts, or make a throwaway copy of your real data and play with forecasting and what-ifs without touching the original.

Ledgers live under Settings > Ledger, which shows whichever one is currently open. From that list you can switch (Enter), add (a), rename (e), copy with all its transactions (Ctrl+C), and delete (d, with a confirmation that names the ledger and its transaction count). The open ledger is shown in the transaction table title, and the table, filters, summaries, budget view, and CSV import/export all apply to just that ledger. Every ledger in a database shares the same category catalog and target budgets, so categories stay consistent across all of them.

Existing databases upgrade automatically on first launch. Everything you already have lands in a ledger named Main and nothing else changes. The database carries a data version now, and upgrades run in a single transaction so a failure leaves the file exactly as it was. If an older version of the app opens a database that a newer version already upgraded (easy to do when the file is synced between machines), it refuses to open it and tells you to update, instead of reading and writing a schema it doesn't understand.

The rest is bug fixes and cleanup.

  • Added multiple transaction ledgers per database: switch, add, rename, copy, delete
  • Versioned the database with safe in-place upgrades and a guard so older versions won't touch a newer database
  • Fixed the max amount field in advanced filtering not accepting any input, which broke when the recurring filter was added in 1.4.2
  • Blocked exporting a CSV over top of the active database file
  • Rejected new categories that only differ from an existing one by casing
  • Fixed amount formatting to stay in decimal instead of going through floats, so no more rounding artifacts
  • Opening the releases page from the update popup now exits the app so you aren't updating a running copy, closing #80
  • Cut unnecessary terminal redraws, refactored form fields onto typed field sets, and bumped dependencies
image