Skip to content

Latest commit

 

History

History
933 lines (625 loc) · 20.2 KB

CHANGELOG.adoc

File metadata and controls

933 lines (625 loc) · 20.2 KB

Tackler releases

Currently published releases are:

libraryDependencies += "fi.e257" %%% "tackler-api"  % "1.0.1"
libraryDependencies += "fi.e257" %%  "tackler-core" % "1.0.1"

Tackler release XX.YY.Z

Development

Component Version

Tackler CLI

TODO: XX.YY.Z

tackler-core

TODO: No changes

tackler-api

TODO: No changes

New features and changes in this release:

  • …​

    • …​

Fixes

Fixes in this release:

  • Reject duplicate tags in transaction tag set (TEP-1011).

  • Trim extra whitespace in Transaction header, when there isn’t description This is cosmetic change, it didn’t have any effect on validity of identity output or parsing of identity output

Development

Updated deps and tools:

  • Dependencies

    • better-files: 3.9.2

    • cats: 2.12.2

    • circe: 0.14.10

    • circe-optics: 0.15.0

    • config: 1.4.3

    • jgit: 7.0.0.202409031743-r

    • logback: 1.5.12

    • scallop: 5.1.0

    • slf4-api: 2.0.16

  • Build

    • sbt: 1.9.7

    • sbt-assembly: 2.3.0

    • sbt-buildinfo: 0.13.1

    • sbt-scalajs: 1.17.0

    • sbt-crossproject: 1.3.2

    • sbt-scalajs-crossproject: 1.3.2

    • sbt-scoverage: 2.2.2

    • sbt-sonatype: 3.12.2

    • sbt-wartremover: 3.2.4

    • scala: 2.13.15

  • Tests

    • scala: 2.12.20

    • dirsuite: 0.32.0

    • ScalaTest: 3.2.19


Tackler release 22.12.2

Component Version

Tackler CLI

22.12.2

tackler-core

no changes

tackler-api

no changes

Fixes

Fix broken assembly packaging, which broke logger functionality for tackler-cli.

The broken functionality was manifested by following error message:

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.

Development

Updated deps and tools: None


Tackler release 22.12.1

Component Version

Tackler CLI

22.12.1

tackler-core

1.0.1

tackler-api

1.0.1

This is a re-release of Tackler 2022-12 with JDK 11. No other changes.

Tackler 2022-12 was released accidentally with JDK 17 (Bytecode Version 61.0), instead of JDK 11 (Bytecode Version 55.0), so fix that.


Tackler release 22.12.0

Component Version

Tackler CLI

22.12.0

tackler-core

1.0.0

tackler-api

1.0.0

New features and changes in this release:

  • New versioning scheme (YY.MM.PATCH) for Tackler CLI, where YY and MM are release year and month

  • 1.0.0 release for Tackler core and api

  • Tackler requires at least Java 11 to run

  • Upgrade JGit to 6.4.0

  • Deprecations

    • Drop support for Scala 2.12

    • Drop support for Java 8

Fixes

Fixes in this release: None

Development

Updated deps and tools:

  • Dependencies

    • Antlr4: 4.11.1

    • cats: 2.9.0

    • circe: 0.14.3

    • circe-optics: 0.14.1

    • config: 1.4.2

    • scala-parallel-collections: 1.0.4

    • jgit: 6.4.0.202211300538-r

    • logback: 1.4.5

    • slf4j: 2.0.6

  • Build

    • sbt: 1.8.0

    • sbt-assembly: 2.1.0

    • sbt-buildinfo: 1.11.0

    • sbt-git: 1.0.2

    • sbt-scalajs: 1.12.1

    • sbt-crossproject: 1.2.0

    • sbt-scalajs-crossproject: 1.2.0

    • scala-2.12: 2.12.17

    • scala-2.13: 2.13.10

    • scala-collection-compat: dropped

  • Tests

    • sbt-scoverage: 2.0.6

    • sbt-wartremover: 3.0.7

    • sbt-sonatype: 3.9.15

    • ScalaTest: 3.2.14


0.35.0

New features and changes in this release:

  • TEP-1014: Equity Export Enhancements

    • Cfg key to set equity transaction’s target account

    • Print out actual value for equity posting - don’t use implicit (last posting’s empty) value for it

    • Print out warning, if equity transaction zeros out without equity posting

    • Indent equity transaction same amount as identity export (3 spaces)

Fixes

Fixes in this release: None

Development

Updated deps and tools:

  • Dependencies

    • scala-parallel-collections: 1.0.0

    • scallop: 4.0.2

  • Build

    • sbt: 1.4.7

    • scala: 2.12.13

    • scala-js: 1.5.0

  • Tests

    • ScalaTest: 3.2.3


0.34.0

New features and changes in this release:

Fixes

Fixes in this release: None

Development

Updated deps and tools:

  • Dependencies

    • scala-collection-compat: 2.3.2

  • Build

    • sbt: 1.4.6


0.33.0

New features and changes in this release:

Fixes

Fixes in this release: None

Development

Updated deps and tools:

  • Dependencies

    • better-files: 3.9.1

    • cats: 2.3.1

    • circe: 0.13.0

    • config: 1.4.1

    • jgit: 5.10.0.202012080955-r

    • scala-collection-compat: 2.3.1

    • scallop: 4.0.1

    • slf4j-api: 1.7.30

  • Build

    • scala: 2.13.4

    • scala: 2.12.12

    • sbt: 1.4.5

    • sbt-antlr: 0.8.3

    • sbt-assembly: 0.15.0

    • sbt-buildinfo: 0.10.0

    • sbt-scalajs: 1.3.1

    • sbt-scoverage: 1.6.1

    • sbt-sonatype: 3.9.5

  • Tests

    • sbt-wartremover: 2.4.13

    • DirSuite: 0.31.0

    • ScalaTest: 3.2.3


0.32.0

New features and changes in this release:

  • Support for Scala 2.12 and 2.13

  • Update better-files to 3.8.0

  • CLI: Raport Git commit id and working copy state with version info for --help and --version commands

  • Equity export

    • Create equity transactions in sorting order of commodities

    • Record commodity on equity txn’s subject line

  • Prepare for BigDecimal changes in Scala 2.13

    • New type TacklerReal with explicit MathContext constructor argument

Fixes

Fixes in this release:

  • Reject semantically wrong negative unit costs (e.g. { -2 € }) and unit prices (e.g. @ -2 €)

Development

Updated deps and tools:

  • Dependencies

    • better-files: 3.8.0

    • cats: 2.0.0

    • circe: 0.12.1

    • jgit: 5.5.0.201909110433-r

    • scala-collection-compat: 2.1.2

    • scallop: 3.3.1

  • Build

    • scala: 2.12.10

    • scala: 2.13.1

    • sbt-assembly: 0.14.10

    • sbt-git: 1.0.0 (new)

    • sbt-scalajs: 0.6.29

    • sbt-crossproject: 0.6.1

    • sbt-scalajs-crossproject: 0.6.1

    • sbt-sonatype: 2.5

    • sbt-wartremover: 2.4.3

  • Tests

    • dirsuite: 0.30.1

    • scalatest: 3.0.8

    • sbt-coveralls: drop

    • sbt-scoverage: 1.6.0


0.31.0

New features and changes in this release:

Fixes

Fixes in this release:

  • Reject "identity" (e.g. 1 € @ 2 €) value positions as invalid construct

Development

Updated deps and tools:

  • Dependencies

    • jgit: 5.3.1.201904271842-r


0.30.0

Warning
Phase 2 support for new Journal Format Version v2
Transaction description

must start with ' -prefix

Transaction code

can not contain ' ( ) [ ] { } < > characters

Transaction metadata (uuid)

must start by # character with space

New features and changes in this release:

Fixes

Fixes in this release:

  • Account and Commodity Names: Accept signs which were left unintentionally outside in the cold

    • Currency symbols $, ¢, £, ¤, ¥ from Latin-1 Base and Supplement blocks

    • Micro and Degree (µ, °) from Latin-1 Supplement block

    • Vulgar Fractions (¼, ½, ¾) from Latin-1 Supplement block

    • Superscripts (¹, ², ³) from Latin-1 Supplement block

Development

Updated deps and tools:

  • Dependencies

    • config: 1.3.4

    • jgit: 5.3.0.201903130848-r

    • scallop: 3.2.0

  • Build

    • sbt-scalajs: 0.6.27

    • sbt-antlr: 0.8.2

  • Tests

    • scalatest: 3.0.7


0.24.0

Warning
Phase 1 support for new Journal Format Version v2
Transaction description

in v2, description must start with ' -prefix

Transaction code

in v2, code can not contain ' ( ) [ ] { } < > characters

Transaction metadata (uuid)

in v2, metadata must start by # character with space

New features and changes in this release are:

  • Version v0.5.1

    • Generate test data in journal format v2

Journal format changes

This release has Phase 1 support for new Journal Format Version v2. This means that it will accept both old deprecated version v1 and new version v2 of journal format. All exports (Equity and Identity) are in new format.

Phase 1 support for Journal Format Version v2

  • Txn description can start with ' (this is mandatory with v2)

  • Txn Metadata (UUID) can start with # (this is mandatory with v2)

  • Txn code can still have ' ( ) [ ] { } < > characters (these are not allowed with v2)

  • Identity and Equity will output only format v2 compatible exports

Future Journal format v2

Future version of Tackler journal v2 will have following changes:

Transaction description

Transaction description must start with ' -prefix.

Transaction code

Transaction code can not contain characters:
' ( ) [ ] { } < >

Transaction metadata

Transaction metadata (UUID) must start with # + space -prefix.

See TEP-1009: Txn Header Syntax for motivation for this change and for further info.

Fixes

Changes to Journal Format to make it more lenient when possible.

Development

Updated deps and tools: None


0.23.0

New features and changes in this release are:

  • Support Account Auditing, see:

  • New or changed Metadata:

    • Renamed Metadata’s metadataItems to items

    • New item: TxnSetChecksum

    • New item: AccountSelectorChecksum

    • New fields in GitInputReference

      • Fields: input.git.dir and input.git.suffix

    • Renamed TxnFilterMetadataTxnFilterDescription

  • Add CLI option for: input.git.dir.

  • Reformat balance report for better clarity

  • Base64 ascii armor for Txn Filters defined by --api-filter-def CLI option

  • Scala-ARM has been removed and replaced with functionality from better-files

Generator:

  • Versions v0.4.0 and v0.4.1

  • Add uuid to test corpus transactions

  • Add 1E1 and 1E2 test sets

  • Update build and deps

Fixes

Reject invalid UUIDs which were permitted in the past. These are certain way invalid and malformed UUIDs, which are accepted by JDK.

This could change old valid journal to invalid, if journal contains these special way invalid UUIDs.

See following openjdk bugs for details:

Development

Updated deps and tools:

  • Updated dependencies

    • cats: 1.6.0

    • scala-arm: removed

  • build

    • sbt-wartremover: 2.4.1

  • tests

    • dirsuite: 0.21.0


0.22.0

New features in this release are:

  • Strict validation of commodities and currencies. This is turned on by default, if accounts.strict = true. See accounts.conf for how to configure this.

  • Improve error messages in case of parse and logic errors (filename, lines, etc.)

  • Reports

    • Register report: Add separator between txn entries

  • tackler-api: TxnTS based sharders (date, month, year, iso-week, iso-week-date)

Fixes

Force UTF-8 always on console, regardless of console settings. This is needed for Windows/MinGW/MSYS2.

Development

Updated deps and tools:

  • build

    • wartremover: 2.4.0


0.21.0

New features in this release are:

Fixes

  • Fix failing test: e257/accounting/tackler#1

Development

Updated deps and tools:

  • Updated dependencies

    • ANTLR: 4.7.2

    • circe: 0.11.1

    • jgit: 5.2.1.201812262042-r

  • build

    • sbt: 1.2.8


0.20.0

This is same as Tackler v0.10.0. The difference is that code is hosted at gitlab.com and moved under new groupId.

Fixes

None

Development

Updated deps and tools:

  • build

    • sbt-sonatype: 2.3


0.10.0

New features of this release are transaction filters and updated generator.

Fixes

Documentation:

  • Improved Installation Instructions

Development

Updated deps and tools:

  • Updated dependencies

    • better-files: 3.7.0

    • cats: 1.5.0

    • circe: 0.10.1

    • scallop: 3.1.5

    • config: 1.3.3

    • jgit: 5.1.3.201810200350-r

    • scalatest: 3.0.5

  • build

    • scala: 2.12.8

    • sbt: 1.2.7

    • sbt-assembly: 0.14.9

    • sbt-buildinfo: 0.9.0

    • sbt-coveralls: 1.2.4

    • sbt-crossproject: 0.6.0

    • sbt-scalajs: 0.6.26

    • sbt-scalajs-crossproject: 0.6.0

    • sbt-wartremover: 2.3.7


0.9.0

  • New client API (tackler-api) library of data models (JVM and JS environments).

    • Publish JVM and JS version of tackler-api.jar on Maven Central Repository

  • Server API clean ups and enhancements (helper methods for Txns and report handling).

  • JSON cleanups and changes (see diff of tests with ignore-whitespace)

    • Use tackler-api and Circe for serializing JSON reports

Development

Updated deps and tools:

  • Updatede dependencies

    • ANTLR: 4.7.1

    • cats: 1.0.1

    • circe: 0.9.1

    • jgit: 4.10.0.201712302008-r

  • build

    • sbt: 1.1.0

    • sbt-antlr4: 0.8.1

    • sbt-scalajs: 0.6.21

    • sbt-crossproject: 0.3.0

    • sbt-scalajs-crossproject: 0.3.0


0.8.0

  • Publish tackler-core.jar on Maven Central Repository

  • Provide specialized configuration for all reports

  • Add reporting method which returns report as json-object

  • Provide Settings constructors without conf-file path and with only embedded configuration

    • Renamed embedded configuration tackler.conf to reference.conf

    • Move Tackler’s conf-file configuration under tackler.core namespace

  • Change equity and identity to actual exports (code and configuration)

    • new conf+cli option reporting.exports

    • Conf+cli key reporting.reports doesn’t accept equity nor identity anymore

    • move conf-key reports.equity to exports.equity

Fixes

  • Don’t include logger implementation with tackler-core.jar

Development

  • Change: change ReportType to OutputType, and split it to ReportType and ExportType traits.

  • New: ReportSettings base class for report configuration

  • Change: All reports takes specialized <ReportType>Settings as settings argument

Updated deps and tools:

  • Updated dependencies

    • better-files: 3.4.0

    • jgit: 4.9.1.201712030800-r

  • build

    • sbt: 1.0.4

    • assembly: 0.14.6

    • sonatype: 2.0


0.7.0

Fixes

None.

Development

Build is updated to sbt 1.0.

  • Updated dependencies

    • libs

      • better-files: 3.2.0

      • cats: 1.0.0-RC1

      • circe: 1.0.0-M2 (new)

      • config: 1.3.2

      • jgit: 4.9.0.201710071750-r

      • scallop: 3.3.1

  • build

    • sbt: 1.0.3

    • scala: 2.12.4

    • wartremover: 2.2.1

    • DirSuite: 0.7.0

    • scalatest: 3.0.4


0.6.0

Fixes

  • Fix equity report when postings balance (zero) out


0.5.0

Fixes

  • Use always ISO-8601 week rules regardless of system locale


0.4.1

  • Documentation updates

  • Internal cleanups

  • Perf:

    • Single file 1E3

    • Single file 1E6

    • Generator 0.2.1


0.4.0

  • Supports single star globs (*.txn) for flat directories

  • Internal: better-files

  • Internal: logback 1.2.3


0.3.2

  • Documentation and test updates

  • Equity report

    • own account selection

  • Internal clean ups


0.3.1

  • Change register report output


0.3.0

  • Txns file changes

    • meta:uuid: feature

    • Account names

      • hyphen '-'

      • underscore '_'

      • wide range of characters (e.g. kanji) in account names

    • Txn comments are printend with identity report

  • TS with offset is used for Txn sorting and group-by

  • Change automatic scale to (2-7 decimals)

  • Do not allow zero postings

  • reporting.console = true

  • RegisterReport

    • prints meta:uuid:

    • prints txn comments

    • Stream based implementation

  • IdentityReport

    • Stream based implementation

  • EquityReport

    • printing

  • Perf:

    • 1E3: (1000) txns testing

    • 1E6: (1_000_000) txns testing

    • Generator (0.1.4)


0.2.1

  • Reporting

    • initial support for reports and accounts as cli opt

    • Automatic scale (2-6 decimals)

    • Register report title format


0.2.0

  • reporting

    • renamed balgrp → balance-group

    • report names from conf

    • balance-group: group-by from conf

    • balance summary line


0.1.90

  • Reporting: account definitions


0.1.0

  • conf-settings

  • Z as UTC marker

  • conf: timezone

  • Chart of Accounts

  • cli+conf: accounts.coa

  • cli+conf: accounts.strict


0.0.1

  • initial release, hardcoded account filters, no config