Files
docker-finance/CHANGELOG.md

623 lines
26 KiB
Markdown

[//]: # (docker-finance | modern accounting for the power-user)
[//]: # ()
[//]: # (Copyright [C] 2024-2025 Aaron Fiore [Founder, Evergreen Crypto LLC])
[//]: # ()
[//]: # (This program is free software: you can redistribute it and/or modify)
[//]: # (it under the terms of the GNU General Public License as published by)
[//]: # (the Free Software Foundation, either version 3 of the License, or)
[//]: # ([at your option] any later version.)
[//]: # ()
[//]: # (This program is distributed in the hope that it will be useful,)
[//]: # (but WITHOUT ANY WARRANTY; without even the implied warranty of)
[//]: # (MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the)
[//]: # (GNU General Public License for more details.)
[//]: # ()
[//]: # (You should have received a copy of the GNU General Public License)
[//]: # (along with this program. If not, see <https://www.gnu.org/licenses/>.)
# Changelog (`docker-finance`)
## 1.0.0-rc.2 - 2025-04-08
⚠️ **Breaking changes for this release candidate** ⚠️
#### Client
🚨 For the finance image:
- ❗**MUST** re-run `build` command
* Updates to hledger-suite will always require you to re-build your image
#### Container
🚨 For BTCPay Server account:
- ❗**MUST** export only v2 reports
* See ([#181](https://gitea.com/EvergreenCrypto/docker-finance/pulls/181)) for details
- ❗**MUST** re-run `import` command
* Run `import` starting from oldest applicable year
- ❗**MUST** re-run `taxes` command
* Run `taxes all=all` for all applicable years
🚨 For Coinbase account:
- ❗**MUST** re-run `edit type=fetch` command
* Update your CDP key (legacy key support has been [removed](https://gitea.com/EvergreenCrypto/docker-finance/commit/ca31fef052819e2c118f57451f64ca94bad01d2b))
---
### 🧠 Contributors
- Aaron Fiore
### 🛠️ Fixes / Updates
#### Client
##### *Dockerfiles*
- hledger-suite ([#184](https://gitea.com/EvergreenCrypto/docker-finance/pulls/184)) ([#185](https://gitea.com/EvergreenCrypto/docker-finance/pulls/185))
* Bump `hledger` to 1.42.1
##### *docker-finance.d (configurations)*
- Update Coinbase CDP key, remove unused YAML keys ([#176](https://gitea.com/EvergreenCrypto/docker-finance/pulls/176)) ([#177](https://gitea.com/EvergreenCrypto/docker-finance/pulls/177))
##### *src/docker*
- Only allocate TTY when needed (with `run` command) ([#187](https://gitea.com/EvergreenCrypto/docker-finance/pulls/187))
#### Container
##### *src/finance*
- `fetch`
* Isolate given year when fetching prices with mobula API ([#188](https://gitea.com/EvergreenCrypto/docker-finance/pulls/188))
### ☀️ Features / Enhancements
#### Repo
- Add prelim `dfi` logo ([#189](https://gitea.com/EvergreenCrypto/docker-finance/pulls/189))
#### Container
##### *src/finance*
- `lib_taxes`
* Optimize record printing, add checks and logging ([#179](https://gitea.com/EvergreenCrypto/docker-finance/pulls/179))
##### *src/hledger-flow*
- `lib_preprocess`
* Allow testing of single / multiple columns ([#180](https://gitea.com/EvergreenCrypto/docker-finance/pulls/180/))
- BTCPay Server
- Add prelim support for v2 reports ([#181](https://gitea.com/EvergreenCrypto/docker-finance/pulls/181))
- Add `taxed_as` INCOME tag, add local timezone support ([#183](https://gitea.com/EvergreenCrypto/docker-finance/pulls/183))
- Ethereum-based
* Add COMP rewards ([#178](https://gitea.com/EvergreenCrypto/docker-finance/pulls/178))
* Add DeFi swapper tag ([#182](https://gitea.com/EvergreenCrypto/docker-finance/pulls/182))
* Add to Ethereum spam rules ([#186](https://gitea.com/EvergreenCrypto/docker-finance/pulls/186))
- Ledger
* Skip COMP token (handled by ethereum-based `fetch`) ([#178](https://gitea.com/EvergreenCrypto/docker-finance/pulls/178))
### 🌴 Misc / Other
#### Container
##### *src/finance*
- `lib_taxes`
* Some refactoring ([#179](https://gitea.com/EvergreenCrypto/docker-finance/pulls/179))
##### *src/hledger-flow*
- `lib_preprocess`
* Symlink to finance's `lib_utils` ([#180](https://gitea.com/EvergreenCrypto/docker-finance/pulls/180/))
## 1.0.0-rc.1 - 2025-01-23
⚠️ **Breaking changes for this release candidate** ⚠️
> Tip: when in doubt, regenerate your entire setup. Your environment and accounts will be backed up in the process.
#### Repo
🚨 For installation:
-**MUST** re-run the installation procedure in [README.md](README.md#installation)
* Reinstall on a freshly pruned system
- Remove all previous docker-finance related images, clean cache
#### Client
🚨 For all environments and applicable configurations:
- ❗**MUST** re-run `gen` command
* Run with arg `type=env`
- **MUST** manually copy over your previous settings (except for `DOCKER_FINANCE_DEBUG`)
- ❗**SHOULD** re-run `gen` command
* Run with args `type=flow,superscript config=subscript,hledger,fetch confirm=off`
- **MUST** manually copy over your previous settings
#### Container
🚨 For coinbase account:
- ❗**MUST** re-run `fetch` command
* Run `fetch account=coinbase` for all applicable years
* Run `fetch all=price` for all applicable years
🚨 For all accounts and subaccounts:
- ❗**MUST** re-run `import` command
* Run `import` starting from oldest available year
- **MUST** update any custom rules or manual entries to reflect subaccount/network changes
- ❗**MUST** re-run `taxes` command
* Run `taxes all=all` for all applicable years
---
### 🧠 Contributors
- Aaron Fiore
### 🛠️ Fixes / Updates
#### Repo
##### *README*
- Fix 'dev-tools' build instructions, misc updates ([#171](https://gitea.com/EvergreenCrypto/docker-finance/pulls/171))
#### Client
##### *Dockerfiles*
- Version updates for hledger-suite image ([#156](https://gitea.com/EvergreenCrypto/docker-finance/pulls/156))
* Bump `hledger` to 1.41
* Change resolver for `hledger-iadd`
##### *docker-finance.d (configurations)*
- Add Coinomi example to fetch ([#170](https://gitea.com/EvergreenCrypto/docker-finance/pulls/170))
##### *src/docker*
- Fix typo in usage help ([#158](https://gitea.com/EvergreenCrypto/docker-finance/pulls/158))
#### Container
##### *src/finance*
- `lib_hledger`
* Remove `-w` arg to `hledger-ui` ([#157](https://gitea.com/EvergreenCrypto/docker-finance/pulls/157))
- `lib_fetch`
* Fix price parsing ([#130](https://gitea.com/EvergreenCrypto/docker-finance/pulls/130))
* Fix Tor plugin (proxychains) check ([#142](https://gitea.com/EvergreenCrypto/docker-finance/pulls/142))
##### *src/hledger-flow*
- BlockFi / Ledger / Trezor
* Fix fees subaccount ordering ([#165](https://gitea.com/EvergreenCrypto/docker-finance/pulls/165))
- Electrum
* Fix calculating 'No Data' ([#138](https://gitea.com/EvergreenCrypto/docker-finance/pulls/138))
- Capital One (bank)
* Fix direction ([#132](https://gitea.com/EvergreenCrypto/docker-finance/pulls/132))
- Coinbase
* Fix/update pagination ([#172](https://gitea.com/EvergreenCrypto/docker-finance/pulls/172)) ([#173](https://gitea.com/EvergreenCrypto/docker-finance/pulls/173))
- Coinbase Pro
* Fix default account2 for sells ([#166](https://gitea.com/EvergreenCrypto/docker-finance/pulls/166))
##### *src/finance* | *src/hledger-flow*
- **Breaking**: Add compliance for IRS Rev. Proc. 2024-28 ([#163](https://gitea.com/EvergreenCrypto/docker-finance/pulls/163)) ([#174](https://gitea.com/EvergreenCrypto/docker-finance/pulls/174))
* Creates per-wallet / per-account compliance for IRS Rev. Proc. 2024-28
* New obfuscated keymap now creates a unique indentifier per-wallet / per-account
* Removes support for anonymized ("universal pool") reports
#### Client/Container
- Remove `fetch` support for defunct exchanges/services ([#169](https://gitea.com/EvergreenCrypto/docker-finance/pulls/169))
* Bittrex
* Celsius
* Coinbase Pro
### ☀️ Features / Enhancements
#### Repo
##### *README*
- Add support for NonFi, fix TradFi anchor tag ([#141](https://gitea.com/EvergreenCrypto/docker-finance/pulls/141))
- Add docker-finance logo, update README ([#159](https://gitea.com/EvergreenCrypto/docker-finance/pulls/159))
#### Client
##### *docker-finance.d (configurations)*
- Add filters for .in files to produce less cluttered default configs ([#147](https://gitea.com/EvergreenCrypto/docker-finance/pulls/147))
- Rewrite profile default subscript ([#148](https://gitea.com/EvergreenCrypto/docker-finance/pulls/148))
##### *src/docker*
- Enable linting of client-side (host) plugins ([#136](https://gitea.com/EvergreenCrypto/docker-finance/pulls/136))
#### Container
##### *src/finance*
- `completion`
* Add `hledger` commands ([#139](https://gitea.com/EvergreenCrypto/docker-finance/pulls/139))
- `edit`
* Add 'subscript' option ([#146](https://gitea.com/EvergreenCrypto/docker-finance/pulls/146))
* Add `hledger add` command ([#152](https://gitea.com/EvergreenCrypto/docker-finance/pulls/152))
- `fetch`
* Add debug logging to Gemini ([#153](https://gitea.com/EvergreenCrypto/docker-finance/pulls/153))
- `plugins`
* finance: `timew_to_timeclock`: print all tags ([#133](https://gitea.com/EvergreenCrypto/docker-finance/pulls/133))
##### *src/hledger-flow*
- Algorand
* Add to Governance Rewards ([#135](https://gitea.com/EvergreenCrypto/docker-finance/pulls/135))
* Add to spam rules ([#161](https://gitea.com/EvergreenCrypto/docker-finance/pulls/161))
- Electrum
* Use transaction label for tax memo ([#168](https://gitea.com/EvergreenCrypto/docker-finance/pulls/168))
- ethereum-based
* Add to Ethereum spam rules ([#162](https://gitea.com/EvergreenCrypto/docker-finance/pulls/162))
* Add to Polygon spam rules ([#167](https://gitea.com/EvergreenCrypto/docker-finance/pulls/167))
- Ledger
* Add more compound tokens ([#164](https://gitea.com/EvergreenCrypto/docker-finance/pulls/164))
- Vultr
* Add Vultr support ([#140](https://gitea.com/EvergreenCrypto/docker-finance/pulls/140)) ([#151](https://gitea.com/EvergreenCrypto/docker-finance/pulls/151))
#### Client / Container
- **Breaking**: Complete build overhaul, build optimizations ([#143](https://gitea.com/EvergreenCrypto/docker-finance/pulls/143))
* Creates a separation of concerns for 'local' and 'remote' building
* Adds remote image 'hledger-suite'
- Provides the latest versions of all `hledger` related binaries
- No longer relies on package maintainers / out-dated packages
* Adds remote image 'docker-finance'
- Provides base image for 'finance' and 'dev-tools' images
* Removes previous `hledger` related build modules
- Removes building any `hledger` related binaries locally
* Removes 'experimental' build
- End-user can use local custom Dockerfile and/or custom tag instead
* Updates the 'default' | 'slim' | 'tiny' | 'micro' build types
- Refactors build type requirements into separate build modules
* Huge optimizations
- Vastly improves build times
- ~60% faster w/ a fresh build
- ~60%-90% faster rebuild (depending on image type)
- Vastly improves image sizes
- e.g., 'default' Arch Linux image size is ~50% smaller
* Cleanup and clarify default generated custom Dockerfiles
- **Breaking**: Complete `gen` overhaul, `gen` improvements ([#144](https://gitea.com/EvergreenCrypto/docker-finance/commit/77351d54e118b84d93779fad5d9a5963fddef940))
* New `gen` arguments (see `gen help`)
* `subprofile.bash` is now `subscript.bash`
- Changes filename within superscript source
* **MUST** run client (host) command `edit type=superscript` and edit manually
- Changes actual filename within subprofile's docker-finance.d
* **MUST** manually rename the subprofile's script file from `subprofile.bash` to `subscript.bash`
- **Breaking**: Implement debug log-levels ([#149](https://gitea.com/EvergreenCrypto/docker-finance/pulls/149))
- `completion`
* `plugins` enhancements ([#155](https://gitea.com/EvergreenCrypto/docker-finance/pulls/155))
- `plugins`
* Allow path depth when loading plugins ([#134](https://gitea.com/EvergreenCrypto/docker-finance/pulls/134))
- Refactoring/enhancements related to `hledger` ([#145](https://gitea.com/EvergreenCrypto/docker-finance/pulls/145))
### 🌴 Misc / Other
#### Client
##### *Dockerfiles*
- Optimize by moving useradd ([#128](https://gitea.com/EvergreenCrypto/docker-finance/pulls/128))
##### *docker-finance.d (configurations)*
- Remove base cmd from subscript ([#150](https://gitea.com/EvergreenCrypto/docker-finance/pulls/150))
##### *src/docker*
- `lib_gen`
* Refactor profile variables ([#154](https://gitea.com/EvergreenCrypto/docker-finance/pulls/154))
- `lib_linter`
* Return function on compose down ([#131](https://gitea.com/EvergreenCrypto/docker-finance/pulls/131))
#### Container
- Run linter ([#137](https://gitea.com/EvergreenCrypto/docker-finance/pulls/137))
#### Client/Container
- Refactor global basename ([#160](https://gitea.com/EvergreenCrypto/docker-finance/pulls/160))
## 1.0.0-beta.3 - 2024-08-20
⚠️ **Breaking changes for this pre-release** ⚠️
#### Repo
❗ For installation:
- 🚨 **MUST** re-run the installation procedure in [README.md](README.md#installation)
#### Client
❗ For client-side environment:
- 🚨 **MUST** re-run `gen` command
* Regenerate client env and Dockerfile (select 'Y' to all):
```
├─ Client-side environment found, backup then generate new one? [Y/n]
│ └─ Edit (new) environment now? [Y/n]
├─ Custom (optional) Dockerfile found, backup then generate new one? [Y/n]
│ └─ Edit (new) custom Dockerfile now? [Y/n]
```
* Regenerate client/container (select 'Y' to all):
- Superscript:
```
│ ├─ Generate (or update) joint client/container shell script (superscript)? [Y/n]
│ │ └─ Edit (new) superscript now? [Y/n]
```
- Subprofile shell script:
```
│ ├─ Generate (or update) container flow configs and/or accounts? [Y/n]
│ │ │
│ │ ├─ Generate (or update) subprofile's shell script? [Y/n]
```
* Take note of the updated default environment
- Default directory 'hledger-flow' is now 'finance-flow'
- Your client-side 'hledger-flow' directory can also be renamed
- 🚨 **MUST** re-run `build` command
1. Remove (`rm`) previous images
2. Clean build cache (`docker system prune`)
3. Re-run a fresh `build` of your docker-finance
> Tip: when in doubt, regenerate your entire setup. Your environment and accounts will be backed up in the process.
#### Container
Aside from changes above, there are no breaking changes for container.
❗ For accounts:
- 🚨 **SHOULD** re-run `import` command
* Applicable only to Capital One (bank) account ([#124](https://gitea.com/EvergreenCrypto/docker-finance/pulls/124))
---
### 🧠 Contributors
- Aaron Fiore
### 🛠️ Fixes / Updates
#### Repo
- CHANGELOG.md ([#126](https://gitea.com/EvergreenCrypto/docker-finance/pulls/126))
* Add v1.0.0-beta.3
- README.md ([`cab7551`](https://gitea.com/EvergreenCrypto/docker-finance/commit/cab7551cbb343e1b46eaba7e76c6321e1061baf0)) ([`d86da4b`](https://gitea.com/EvergreenCrypto/docker-finance/commit/d86da4b4d5e3734a9685a29e9e94893b457d5b1a)) ([`3bfa39d`](https://gitea.com/EvergreenCrypto/docker-finance/commit/3bfa39de87eebc6c7fa9dca7d80a0f5095eba0ca)) ([#119](https://gitea.com/EvergreenCrypto/docker-finance/pulls/119))
* Update to reflect latest impl
#### Client
- Bump manifest version to v1.0.0-beta.3 ([#127](https://gitea.com/EvergreenCrypto/docker-finance/pulls/127))
- Change environment defaults for `DOCKER_FINANCE_*_FLOW` ([#114](https://gitea.com/EvergreenCrypto/docker-finance/pulls/114))
- Dockerfiles updates ([#121](https://gitea.com/EvergreenCrypto/docker-finance/pulls/121)) ([#123](https://gitea.com/EvergreenCrypto/docker-finance/pulls/123))
* Add package `yq` (kislyuk's), remove `shyaml`
* Remove `pipx` from Dockerfiles, replace with packaged `csvkit`
* Comment all optional userspace packages
- `lib_gen` ([#108](https://gitea.com/EvergreenCrypto/docker-finance/pulls/108))
* Refactor flow generation
* Fix missing copy of default custom Dockerfile
- Miscellaneous fixes ([#106](https://gitea.com/EvergreenCrypto/docker-finance/pulls/106)) ([#107](https://gitea.com/EvergreenCrypto/docker-finance/pulls/107)) ([#115](https://gitea.com/EvergreenCrypto/docker-finance/pulls/115)) ([#117](https://gitea.com/EvergreenCrypto/docker-finance/pulls/117))
* Fix usage typo
* Remove share.d from $PATH
* Clarify `hledger` (not `ledger`), update usage help / completion
* Disable shellcheck warning for `DOCKER_FINANCE_DEBUG`
- New installation method ([#104](https://gitea.com/EvergreenCrypto/docker-finance/pulls/104)) ([#105](https://gitea.com/EvergreenCrypto/docker-finance/pulls/105))
* Add `install.bash`
* Add `dfi` alias to [Mostly-Unified CLI](README.md#mostly-unified-cli)
- Update Doxygen ([#113](https://gitea.com/EvergreenCrypto/docker-finance/pulls/113))
* Bump to 1.9.8
- Change 'modules' to 'topics'
#### Container
- Capital One (bank) ([#124](https://gitea.com/EvergreenCrypto/docker-finance/pulls/124))
* Add interest income
- `fetch` fixes ([#102](https://gitea.com/EvergreenCrypto/docker-finance/pulls/102))
- Throw errors with nested status
- Catch unrecoverable CoinGecko error
* Fix for when 'all' years are requested without paid-plan API key
### ☀️ Features / Enhancements
#### Client / Container
- Add bash completion ([#103](https://gitea.com/EvergreenCrypto/docker-finance/pulls/103)) ([#112](https://gitea.com/EvergreenCrypto/docker-finance/pulls/112))
- Add plugins support ([#109](https://gitea.com/EvergreenCrypto/docker-finance/pulls/109)) ([#111](https://gitea.com/EvergreenCrypto/docker-finance/pulls/111)) ([#118](https://gitea.com/EvergreenCrypto/docker-finance/pulls/118)) ([#120](https://gitea.com/EvergreenCrypto/docker-finance/pulls/120)) ([#122](https://gitea.com/EvergreenCrypto/docker-finance/pulls/122))
* Add `plugins` command
* Add documentation, examples
* Add proxychains-ng / [Tor](https://www.torproject.org/) plugin
* Add [`timewarrior`](https://timewarrior.net/) to hledger timeclock plugin
- Add `times` command (timewarrior) ([#110](https://gitea.com/EvergreenCrypto/docker-finance/pulls/110))
### 🌴 Misc / Other
#### Client
- `lib_docker` ([#125](https://gitea.com/EvergreenCrypto/docker-finance/pulls/125))
* Add tag to container name
* Remove platform from network name
#### Client / Container
- Refactor to use `yq` (kislyuk's), remove `shyaml` ([#121](https://gitea.com/EvergreenCrypto/docker-finance/pulls/121))
- Set xtrace if debug is enabled ([#116](https://gitea.com/EvergreenCrypto/docker-finance/pulls/116))
## 1.0.0-beta.2 - 2024-07-30
⚠️ **Breaking changes for this pre-release** ⚠️
#### Client
❗ For all environments and applicable configurations:
- 🚨 **MUST** re-run `gen` command
#### Container
❗ For all applicable accounts and subaccounts:
- 🚨 **MUST** re-run `fetch` command
- Remove your previously fetched `1-in` files prior to re-fetching
- Run `fetch` for all applicable years
- 🚨 **MUST** re-run `import` command
- Prior to re-importing, remove your previously imported `2-preprocessed` and `3-journal` directories
- Run `import` starting from oldest applicable year
- 🚨 **MUST** re-run `taxes` command
- Run `taxes` for all applicable years
> Tip: when in doubt, regenerate your entire setup. Your environment and accounts will be backed up in the process.
---
### 🧠 Contributors
- Aaron Fiore
### 🛠️ Fixes / Updates
#### Repo
- README.md
- Update keyserver for repo verification ([#57](https://gitea.com/EvergreenCrypto/docker-finance/pulls/57))
- Various updates/fixes ([#98](https://gitea.com/EvergreenCrypto/docker-finance/pulls/98))
#### Client
- Dockerfiles fixes related to `import` (coinbase/coinbase-pro) and Ubuntu-based `build` ([#58](https://gitea.com/EvergreenCrypto/docker-finance/pulls/58))
- Resolve Dockerfiles `apt` CLI warning ([#82](https://gitea.com/EvergreenCrypto/docker-finance/pulls/82))
- Append subprofile source to superscript before generating ([#87](https://gitea.com/EvergreenCrypto/docker-finance/pulls/87))
- Rewrite/fix global env gen, optimize/refactor repository path, usage update ([#90](https://gitea.com/EvergreenCrypto/docker-finance/pulls/90)) ([#92](https://gitea.com/EvergreenCrypto/docker-finance/pulls/92)) ([#97](https://gitea.com/EvergreenCrypto/docker-finance/pulls/97))
#### Container
- Algorand
- Add more income (Governance Rewards and spam) to `rules` ([#46](https://gitea.com/EvergreenCrypto/docker-finance/pulls/46)) ([#54](https://gitea.com/EvergreenCrypto/docker-finance/pulls/54))
- Ally
- 'Description' fixes (`preprocess`) ([#53](https://gitea.com/EvergreenCrypto/docker-finance/pulls/53))
- Various additions to `rules` ([#53](https://gitea.com/EvergreenCrypto/docker-finance/pulls/53))
- Capital One
- **Breaking:** Upstream column-order changes ([#80](https://gitea.com/EvergreenCrypto/docker-finance/pulls/80)) ([#93](https://gitea.com/EvergreenCrypto/docker-finance/pulls/93))
- Coinbase
- **Breaking:** SIWC API (V2) compliance ([#49](https://gitea.com/EvergreenCrypto/docker-finance/pulls/49)) ([#50](https://gitea.com/EvergreenCrypto/docker-finance/pulls/50)) ([#63](https://gitea.com/EvergreenCrypto/docker-finance/pulls/63))
- **Breaking:** Full migration to CCXT ([#75](https://gitea.com/EvergreenCrypto/docker-finance/pulls/75))
- Add 1INCH support ([#56](https://gitea.com/EvergreenCrypto/docker-finance/pulls/56))
- Electrum
- Various additions to `rules` ([#43](https://gitea.com/EvergreenCrypto/docker-finance/pulls/43))
- Ethereum-based
- Add Aave V2 -> V3 Migration Helper support ([#45](https://gitea.com/EvergreenCrypto/docker-finance/pulls/45))
- Add spam to `rules` ([#45](https://gitea.com/EvergreenCrypto/docker-finance/pulls/45)) ([#55](https://gitea.com/EvergreenCrypto/docker-finance/pulls/55)) ([#91](https://gitea.com/EvergreenCrypto/docker-finance/pulls/91))
- Gemini (Exchange)
- Allow optional on-chain transfers ([#52](https://gitea.com/EvergreenCrypto/docker-finance/pulls/52))
- Add 1INCH support ([#56](https://gitea.com/EvergreenCrypto/docker-finance/pulls/56))
- Ledger (Live)
- **Breaking:** Upstream column addition ([#73](https://gitea.com/EvergreenCrypto/docker-finance/pulls/73)) ([#93](https://gitea.com/EvergreenCrypto/docker-finance/pulls/93))
- `lib_edit`
- Fix returns, clearer fatal errors ([#81](https://gitea.com/EvergreenCrypto/docker-finance/pulls/81))
- `lib_taxes` / `hledger-flow`
- **Breaking:** Cost-basis work-arounds for Bitcoin.tax ([#96](https://gitea.com/EvergreenCrypto/docker-finance/pulls/96))
### ☀️ Features / Enhancements
#### Repo
- Add Gitea templates ([#65](https://gitea.com/EvergreenCrypto/docker-finance/pulls/65)) ([#69](https://gitea.com/EvergreenCrypto/docker-finance/pulls/69))
- Add [CHANGELOG.md](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/CHANGELOG.md) ([#99](https://gitea.com/EvergreenCrypto/docker-finance/pulls/99))
#### Client
- Add `build` option types and build-specific features ([#68](https://gitea.com/EvergreenCrypto/docker-finance/pulls/68)) ([#70](https://gitea.com/EvergreenCrypto/docker-finance/pulls/70)) ([#79](https://gitea.com/EvergreenCrypto/docker-finance/pulls/79)) ([#85](https://gitea.com/EvergreenCrypto/docker-finance/pulls/85)) ([#86](https://gitea.com/EvergreenCrypto/docker-finance/pulls/86))
- Types: `default` | `slim` | `tiny` | `micro` | `experimental`
- Separation of concerns for build types
- Support ROOT.cern for Ubuntu
- Support `hledger` source build
- Support `hledger-flow` binary download
- Optimize image sizes
- Add `version` command for all platforms ([#61](https://gitea.com/EvergreenCrypto/docker-finance/pulls/61)) ([#83](https://gitea.com/EvergreenCrypto/docker-finance/pulls/83))
- **Breaking:** Add custom Dockerfile support ([#67](https://gitea.com/EvergreenCrypto/docker-finance/pulls/67)) ([#97](https://gitea.com/EvergreenCrypto/docker-finance/pulls/97))
- **Breaking:** New internal versioning implementation ([#84](https://gitea.com/EvergreenCrypto/docker-finance/pulls/84)) ([#88](https://gitea.com/EvergreenCrypto/docker-finance/pulls/88)) ([#100](https://gitea.com/EvergreenCrypto/docker-finance/pulls/100))
#### Client / Container
- `hledger` related enhancements, add alternative terminal UI (visidata) ([#64](https://gitea.com/EvergreenCrypto/docker-finance/pulls/64))
- Add `hledger --conf` support, future-proofing for `hledger` features ([#78](https://gitea.com/EvergreenCrypto/docker-finance/pulls/78))
#### Container
- `hledger-flow`
- Add support for AdaLite ([#40](https://gitea.com/EvergreenCrypto/docker-finance/pulls/40))
- PayPal Business: catch 'Account Hold' ([#47](https://gitea.com/EvergreenCrypto/docker-finance/pulls/47))
- `price`
- **Breaking:** Add support for multiple crypto aggregator-APIs ([#60](https://gitea.com/EvergreenCrypto/docker-finance/pulls/60))
- **Breaking:** Add API keys/blockchains to `fetch` configuration
- Add support for Mobula
- Add support for CoinGecko Pro
- `root`
- Add internal throw/exception handler / unit test ([#89](https://gitea.com/EvergreenCrypto/docker-finance/pulls/89))
- Macro reorg, refactor ([#94](https://gitea.com/EvergreenCrypto/docker-finance/pulls/94))
- Add crypto macros (`Hash`, `Random`) ([#95](https://gitea.com/EvergreenCrypto/docker-finance/pulls/95))
- Add support for multiple random number types (`Random`), update tests ([#95](https://gitea.com/EvergreenCrypto/docker-finance/pulls/95))
### 🌴 Misc / Other
#### Client
- Dockerfiles: remove obsolete 'version' element ([#42](https://gitea.com/EvergreenCrypto/docker-finance/pulls/42))
- `lib_docker`: factor out args parsers ([#71](https://gitea.com/EvergreenCrypto/docker-finance/pulls/71))
- `lib_gen`: return success on client generation ([#76](https://gitea.com/EvergreenCrypto/docker-finance/pulls/76))
#### Container
- `hledger-flow`: btcpayserver: preprocess: fix YYY comment typo ([#44](https://gitea.com/EvergreenCrypto/docker-finance/pulls/44))
- bash: `lib_fetch`: create prices dir if nonexistent ([#101](https://gitea.com/EvergreenCrypto/docker-finance/pulls/101))
- php: `fetch`: gemini: update to ccxt's latest request() signature | run linter ([#62](https://gitea.com/EvergreenCrypto/docker-finance/pulls/62))
## 1.0.0-beta - 2024-03-04
Initial pre-release