;doc: start tracking DECISIONS

This commit is contained in:
Simon Michael 2023-01-21 09:50:32 -10:00
parent 51ea536ecc
commit 6701688bd0

27
doc/DECISIONS.md Normal file
View File

@ -0,0 +1,27 @@
# Decisions
A partial list of notable development decisions.
## 2022
### Replace "transaction price" terminology with "cost"
"Transaction price" never quite stuck. "Cost" is simpler, shorter, more intuitive, consistent with `--cost` and "cost reporting", and more distinct from "market price".
There is an (acceptable) ambiguity: "cost" could mean the `@ UNITCOST` price attached to the amount, or the total cost when the amount is converted (`QUANTITY * UNITCOST`).
Status: as of 2023Q1 this has been done in the manuals and is slowly ongoing in the code.
## 2023
### Plugin types
We will document and support where feasible several distinct kinds of plugin, written in haskell or other languages:
| Plugin type | Description | Current status |
|-|-|-|
| reader | Parse/ingest new data formats/sources to hledger journal data. | Can be done by generating journal or csv format.
| writer | Render/export hledger journal data to new data formats/destinations. | Can be done (lossily) by transforming print's txt/csv/json/sql output.
| processor | Process hledger journal data after parsing, before reporting. | Not well supported, somewhat possible in a haskell script.
| formatter | Render a hledger report's output to a new output format. | Can be done by transforming report's builtin txt/csv/json/html output.
| command | Provide new `hledger` subcommands implementing new reports or actions. | Can be done with addon scripts/programs in PATH.