Verified Commit 252cbe50 authored by 35V LG84's avatar 35V LG84

Initial import

Signed-off-by: 35V LG84's avatar35V LG84 <35vlg84-x4e6b92@e257.fi>
parents
/.idea/
/**/*.iml
/**/target/
/bin/
/tools/bin/
/tests/**/out.*
/tmp/
/**/*.sc
*.swp
cli/txns
= Tackler releases
Current published release is:
libraryDependencies += "fi.e257" %% "tackler-core" % "0.10.0"
libraryDependencies += "fi.e257" %%% "tackler-api" % "0.10.0"
== Release history
=== 0.20.0-SNAPSHOT
==== Fixes
==== Development
Updated deps and tools:
* Updated dependencies
* build
** sbt-sonatype: 2.3
=== 0.10.0
New features of this release are
link:./docs/txn-filters.adoc[transaction filters]
and updated link:./tools/generator/[generator].
* Transaction filters:
** link:./docs/txn-filters.adoc[Txn filter overview]
** link:./docs/server-api.adoc[Server API for filters]
** link:./docs/client-api.adoc[Client API and data model for filters]
** link:./docs/tep/tep-1005.adoc[TEP-1005: Txn Filters]
* Transaction test data link:./tools/generator/[generator]:
** new version: 0.3.0
** Txn generator creates txn `code` and `description` fields
to support perf testing of Txn Filters.
==== 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 link:./docs/client-api.adoc[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
* JSON report format
** link:docs/tep/tep-1004.adoc[TEP-1004: JSON report output]
* Update build chain to sbt 1.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
* Support for Units and Commodities
** link:docs/commodities.adoc[Commodities]
** link:docs/currencies.adoc[Currencies]
** link:docs/tep/tep-1001.adoc[TEP-1001: Units and Commodities]
** link:docs/journal.adoc[Journal changes to support commodities]
** link:docs/trimix-filling-station.adoc[Example of accounting system for Trimix Gas Mixing Station]
==== Fixes
* Fix equity report when postings balance (zero) out
=== 0.5.0
* First public release
* Git storage support:
** link:docs/git-storage.adoc[Git Storage Manual]
** link:docs/tep/tep-1002.adoc[TEP-1002: Git Storage System]
* Rename configuration and CLI arg key `input.txn` to `input.fs`
* Support link as target for top-level shard directory (`input.fs.dir`)
==== 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
= Contributor's Guide
Contributions to the project are most welcome!
== Open and planned tasks
At the moment project todo items are maintained in link:../todo/[todo files].
Before starting working on something, please first check with Gitlab issue
if your plan is feasible and viable from project's perspective.
== How to build and test
. You do have sbt, don't you? If not, get it from here: http://www.scala-sbt.org/[http://www.scala-sbt.org/]
+
. Get source code
+
git clone https://gitlab.com/e257/tackler.git
cd tackler
+
. Build and test
.. Build and run tests
+
sbt clean test
+
.. Generate test coverage reports
+
sbt clean coverageOn test coverageReport
sbt coverageAggregate
== Explore code
Directory structure follows Maven's layout and code has been divided to sub-projects
link:./api[api]::
Tackler Api (`tackler-api`)
+
** link:./api/src/main/scala/fi/e257/tackler/api/[api -> scala -> api] Client API (JVM and JS)