34 KiB
Changelog (docker-finance)
1.0.0 - 2025-10-31
🎉 Happy 1.0.0 release
1.0.0 - Fixes
- client:
linter: fix finding .clang-format (#219) - container:
fetch: fix wording to reflect impl (#212) - container:
taxes: fixes for 'all' years arg parsing and printing, don't attempt to patch non-existent taxable events (#230) - ⚠️ container: hledger-flow: electrum: add lightning, backwards compat (#227)
- electrum lightning support is a WIP and, as a result, so is the support here (see #233)
- container: plugins:
root: fix example3()'s shell (#229)
1.0.0 - Features
- client: add
updatefeature (#225)- Update your
dfiinstance with theupdatecommand (instead ofrm-> system prune ->build)
- Update your
- container: add lib_root impl (macro/plugin support), update completion and usage help (#215)
- dfi's
rootnow supports shell loading (and running) of macros/plugins
- dfi's
1.0.0 - Enhancements
- ⚠️Potentially Breaking: container: root: macro: Hash/Random: change output to CSV format (#217)
- Any end-user expectations (custom plugins, etc.) should be adjusted, if needed
- client:
linter: allow custom C++ plugins to also be linted/formatted (#211) - container:
taxes/reports: optimize writes by forking (#221) (#223)- Decreases real time in multicore container environments
- 🚨container: hledger-flow: ethereum-based: compound: add internal swapping when supplying/withdrawing (#228)
- MUST re-
importfrom oldest applicable year - MUST re-
taxesfor all applicable years
- MUST re-
- 🚨container: hledger-flow: finish uniform fiat subaccounts (#213)
- MUST adjust custom rules/journals as needed
- MUST re-
importfrom oldest applicable year - MUST re-
reportfor all applicable years
- 🚨container: hledger-flow: paypal/paypal-business: add expenses description subaccount (#214)
- MUST re-
importfrom oldest applicable year - MUST re-
reportfor all applicable years
- MUST re-
- 🚨container: hledger-flow: vultr: add credits support (#226)
- MUST re-
importfrom oldest applicable year - MUST re-
reportfor all applicable years
- MUST re-
1.0.0 - Updates
- client/container: usage help updates (#231)
- client: Dockerfiles: remote: hledger-suite: bump to latest
hledger/hledger-flow/hledger-iadd(#216) (#220)- Also updates hledger-suite Dockerfile build process
- repo: gitea: template: update bug template (#234)
- repo: migrate all docs and related assets to 'dfi-docs' repository, update README (#232)
- All non-code documentation has been moved to the dfi-docs repository
- repo: remove deprecated donation funding images (#224)
1.0.0 - Refactoring
- ⚠️Potentially Breaking: client/container: migrate from
xsvtoxan(#222)- Any end-user custom plugins that rely on
xsvshould usexaninstead- To continue using
xsv, addxsvto your build:dfi <platform/user:tag> edit type=build
- To continue using
- Any end-user custom plugins that rely on
- ⚠️Potentially Breaking: container: php/c++:
dfinamespace refactor (#210)- Any end-user custom plugin namespaces should be adjusted, if needed
- Any Doxygen used should be cleaned and regenerated with the
dev-toolsimage, if needed
- container: hledger-flow: add explicit amount4 to applicable rules (#218)
- container: php general refactoring (#208) (#209)
- Removes deprecations (since PHP 8.4) and linter errors
1.0.0 - Contributors
- Aaron Fiore
1.0.0-rc.3 - 2025-08-12
⚠️ Breaking changes for this release candidate ⚠️
-
Breaking: support non-alpha characters (currency) for all applicable accounts (#202) (#205)
- gemini: the 1-in filename for 1INCH trades MUST be renamed from "oneinchXXX-Trades.csv" to "1inchXXX-Trades.csv" (where XXX is the counter pair)
- All applicable years in gemini account's 2-preprocessed and 3-journal MUST be deleted and re-
imported
- All applicable years in gemini account's 2-preprocessed and 3-journal MUST be deleted and re-
- MUST re-
fetchrespective prices for applicable years - MUST re-run
taxesfor applicable years
- gemini: the 1-in filename for 1INCH trades MUST be renamed from "oneinchXXX-Trades.csv" to "1inchXXX-Trades.csv" (where XXX is the counter pair)
-
Breaking: ethereum-based: support Etherscan V2, add more L2 chains, add/update L2 mockups, add/update L2 spam rules, support non-alpha chars (currency) (#201)
- MUST use new
fetchconfig API format and API key (see #201)- MUST perform subsequent manual adjustment (update any API keys)
- If developing, MUST
gen/re-genthe mockups
- MUST use new
-
Breaking: btcpayserver: support "Legacy Invoice Export" plugin, update "Wallets" impl, update mockups (#203)
- As of BTCPayServer v2.2.0, MUST install the "Legacy Invoice Export" plugin
- MUST export legacy and wallets reports and re-
importfor all applicable years
- MUST export legacy and wallets reports and re-
- If developing, MUST re-
genthe mockup
- As of BTCPayServer v2.2.0, MUST install the "Legacy Invoice Export" plugin
-
Breaking paypal: support latest fiat header, update fiat mockup (#199)
- Adds 'fees' subaccount and new tags from the additional columns
- MUST run client-side
genfor paypal account- MUST re-
importall applicable years
- MUST re-
- If developing, MUST re-
genthe mockup
-
paypal-business: update mockup (#200)
-
Fix/enhance client usage handling (#207)
-
Fix client completion for when Docker is not found (#192)
-
Fix permission denied for visidata (change visidata default dir) (#198)
-
Fix description-like information with '%' character which breaks import in some cases (#204)
-
Add more
hledgercommands to container completion (#194)
🧠 Contributors
- Aaron Fiore
1.0.0-rc.2 - 2025-04-08
⚠️ Breaking changes for this release candidate ⚠️
Client
🚨 For the finance image:
- ❗MUST re-run
buildcommand- 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) for details
-
❗MUST re-run
importcommand- Run
importstarting from oldest applicable year
- Run
-
❗MUST re-run
taxescommand- Run
taxes all=allfor all applicable years
- Run
🚨 For Coinbase account:
- ❗MUST re-run
edit type=fetchcommand- Update your CDP key (legacy key support has been removed)
🧠 Contributors
- Aaron Fiore
🛠️ Fixes / Updates
Client
Dockerfiles
docker-finance.d (configurations)
src/docker
- Only allocate TTY when needed (with
runcommand) (#187)
Container
src/finance
fetch- Isolate given year when fetching prices with mobula API (#188)
☀️ Features / Enhancements
Repo
- Add prelim
dfilogo (#189)
Container
src/finance
lib_taxes- Optimize record printing, add checks and logging (#179)
src/hledger-flow
-
lib_preprocess- Allow testing of single / multiple columns (#180)
-
BTCPay Server
-
Ethereum-based
-
Ledger
- Skip COMP token (handled by ethereum-based
fetch) (#178)
- Skip COMP token (handled by ethereum-based
🌴 Misc / Other
Container
src/finance
lib_taxes- Some refactoring (#179)
src/hledger-flow
lib_preprocess- Symlink to finance's
lib_utils(#180)
- Symlink to finance's
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
- Reinstall on a freshly pruned system
- Remove all previous docker-finance related images, clean cache
- Reinstall on a freshly pruned system
Client
🚨 For all environments and applicable configurations:
-
❗MUST re-run
gencommand- Run with arg
type=env- MUST manually copy over your previous settings (except for
DOCKER_FINANCE_DEBUG)
- MUST manually copy over your previous settings (except for
- Run with arg
-
❗SHOULD re-run
gencommand- Run with args
type=flow,superscript config=subscript,hledger,fetch confirm=off- MUST manually copy over your previous settings
- Run with args
Container
🚨 For coinbase account:
- ❗MUST re-run
fetchcommand- Run
fetch account=coinbasefor all applicable years - Run
fetch all=pricefor all applicable years
- Run
🚨 For all accounts and subaccounts:
-
❗MUST re-run
importcommand- Run
importstarting from oldest available year- MUST update any custom rules or manual entries to reflect subaccount/network changes
- Run
-
❗MUST re-run
taxescommand- Run
taxes all=allfor all applicable years
- Run
🧠 Contributors
- Aaron Fiore
🛠️ Fixes / Updates
Repo
README
- Fix 'dev-tools' build instructions, misc updates (#171)
Client
Dockerfiles
- Version updates for hledger-suite image (#156)
- Bump
hledgerto 1.41 - Change resolver for
hledger-iadd
- Bump
docker-finance.d (configurations)
- Add Coinomi example to fetch (#170)
src/docker
- Fix typo in usage help (#158)
Container
src/finance
-
lib_hledger- Remove
-warg tohledger-ui(#157)
- Remove
-
lib_fetch
src/hledger-flow
-
BlockFi / Ledger / Trezor
- Fix fees subaccount ordering (#165)
-
Electrum
- Fix calculating 'No Data' (#138)
-
Capital One (bank)
- Fix direction (#132)
-
Coinbase
-
Coinbase Pro
- Fix default account2 for sells (#166)
src/finance | src/hledger-flow
- Breaking: Add compliance for IRS Rev. Proc. 2024-28 (#163) (#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
fetchsupport for defunct exchanges/services (#169)- Bittrex
- Celsius
- Coinbase Pro
☀️ Features / Enhancements
Repo
README
Client
docker-finance.d (configurations)
- Add filters for .in files to produce less cluttered default configs (#147)
- Rewrite profile default subscript (#148)
src/docker
- Enable linting of client-side (host) plugins (#136)
Container
src/finance
-
completion- Add
hledgercommands (#139)
- Add
-
edit -
fetch- Add debug logging to Gemini (#153)
-
plugins- finance:
timew_to_timeclock: print all tags (#133)
- finance:
src/hledger-flow
-
Algorand
-
Electrum
- Use transaction label for tax memo (#168)
-
ethereum-based
-
Ledger
- Add more compound tokens (#164)
-
Vultr
Client / Container
-
Breaking: Complete build overhaul, build optimizations (#143)
- Creates a separation of concerns for 'local' and 'remote' building
- Adds remote image 'hledger-suite'
- Provides the latest versions of all
hledgerrelated binaries - No longer relies on package maintainers / out-dated packages
- Provides the latest versions of all
- Adds remote image 'docker-finance'
- Provides base image for 'finance' and 'dev-tools' images
- Removes previous
hledgerrelated build modules- Removes building any
hledgerrelated binaries locally
- Removes building any
- 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
- Vastly improves build times
- Cleanup and clarify default generated custom Dockerfiles
-
Breaking: Complete
genoverhaul,genimprovements (#144)- New
genarguments (seegen help) subprofile.bashis nowsubscript.bash- Changes filename within superscript source
- MUST run client (host) command
edit type=superscriptand edit manually
- MUST run client (host) command
- Changes actual filename within subprofile's docker-finance.d
- MUST manually rename the subprofile's script file from
subprofile.bashtosubscript.bash
- MUST manually rename the subprofile's script file from
- Changes filename within superscript source
- New
-
Breaking: Implement debug log-levels (#149)
-
completionpluginsenhancements (#155)
-
plugins- Allow path depth when loading plugins (#134)
-
Refactoring/enhancements related to
hledger(#145)
🌴 Misc / Other
Client
Dockerfiles
- Optimize by moving useradd (#128)
docker-finance.d (configurations)
- Remove base cmd from subscript (#150)
src/docker
Container
- Run linter (#137)
Client/Container
- Refactor global basename (#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
Client
❗ For client-side environment:
-
🚨 MUST re-run
gencommand- 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]
- Superscript:
- 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
- Regenerate client env and Dockerfile (select 'Y' to all):
-
🚨 MUST re-run
buildcommand- Remove (
rm) previous images - Clean build cache (
docker system prune) - Re-run a fresh
buildof your docker-finance
- Remove (
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
importcommand- Applicable only to Capital One (bank) account (#124)
🧠 Contributors
- Aaron Fiore
🛠️ Fixes / Updates
Repo
- CHANGELOG.md (#126)
- Add v1.0.0-beta.3
- README.md (
cab7551) (d86da4b) (3bfa39d) (#119)- Update to reflect latest impl
Client
- Bump manifest version to v1.0.0-beta.3 (#127)
- Change environment defaults for
DOCKER_FINANCE_*_FLOW(#114) - Dockerfiles updates (#121) (#123)
- Add package
yq(kislyuk's), removeshyaml - Remove
pipxfrom Dockerfiles, replace with packagedcsvkit - Comment all optional userspace packages
- Add package
lib_gen(#108)- Refactor flow generation
- Fix missing copy of default custom Dockerfile
- Miscellaneous fixes (#106) (#107) (#115) (#117)
- Fix usage typo
- Remove share.d from $PATH
- Clarify
hledger(notledger), update usage help / completion - Disable shellcheck warning for
DOCKER_FINANCE_DEBUG
- New installation method (#104) (#105)
- Add
install.bash - Add
dfialias to Mostly-Unified CLI
- Add
- Update Doxygen (#113)
- Bump to 1.9.8
- Change 'modules' to 'topics'
- Bump to 1.9.8
Container
- Capital One (bank) (#124)
- Add interest income
fetchfixes (#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) (#112)
- Add plugins support (#109) (#111) (#118) (#120) (#122)
- Add
pluginscommand - Add documentation, examples
- Add proxychains-ng / Tor plugin
- Add
timewarriorto hledger timeclock plugin
- Add
- Add
timescommand (timewarrior) (#110)
🌴 Misc / Other
Client
lib_docker(#125)- Add tag to container name
- Remove platform from network name
Client / Container
1.0.0-beta.2 - 2024-07-30
⚠️ Breaking changes for this pre-release ⚠️
Client
❗ For all environments and applicable configurations:
- 🚨 MUST re-run
gencommand
Container
❗ For all applicable accounts and subaccounts:
- 🚨 MUST re-run
fetchcommand- Remove your previously fetched
1-infiles prior to re-fetching - Run
fetchfor all applicable years
- Remove your previously fetched
- 🚨 MUST re-run
importcommand- Prior to re-importing, remove your previously imported
2-preprocessedand3-journaldirectories - Run
importstarting from oldest applicable year
- Prior to re-importing, remove your previously imported
- 🚨 MUST re-run
taxescommand- Run
taxesfor all applicable years
- Run
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
Client
- Dockerfiles fixes related to
import(coinbase/coinbase-pro) and Ubuntu-basedbuild(#58) - Resolve Dockerfiles
aptCLI warning (#82) - Append subprofile source to superscript before generating (#87)
- Rewrite/fix global env gen, optimize/refactor repository path, usage update (#90) (#92) (#97)
Container
- Algorand
- Ally
- Capital One
- Coinbase
- Electrum
- Various additions to
rules(#43)
- Various additions to
- Ethereum-based
- Gemini (Exchange)
- Ledger (Live)
lib_edit- Fix returns, clearer fatal errors (#81)
lib_taxes/hledger-flow- Breaking: Cost-basis work-arounds for Bitcoin.tax (#96)
☀️ Features / Enhancements
Repo
- Add Gitea templates (#65) (#69)
- Add CHANGELOG.md (#99)
Client
- Add
buildoption types and build-specific features (#68) (#70) (#79) (#85) (#86)- Types:
default|slim|tiny|micro|experimental - Separation of concerns for build types
- Support ROOT.cern for Ubuntu
- Support
hledgersource build - Support
hledger-flowbinary download - Optimize image sizes
- Types:
- Add
versioncommand for all platforms (#61) (#83) - Breaking: Add custom Dockerfile support (#67) (#97)
- Breaking: New internal versioning implementation (#84) (#88) (#100)
Client / Container
hledgerrelated enhancements, add alternative terminal UI (visidata) (#64)- Add
hledger --confsupport, future-proofing forhledgerfeatures (#78)
Container
hledger-flowprice- Breaking: Add support for multiple crypto aggregator-APIs (#60)
- Breaking: Add API keys/blockchains to
fetchconfiguration - Add support for Mobula
- Add support for CoinGecko Pro
- Breaking: Add API keys/blockchains to
- Breaking: Add support for multiple crypto aggregator-APIs (#60)
root
🌴 Misc / Other
Client
- Dockerfiles: remove obsolete 'version' element (#42)
lib_docker: factor out args parsers (#71)lib_gen: return success on client generation (#76)
Container
hledger-flow: btcpayserver: preprocess: fix YYY comment typo (#44)- bash:
lib_fetch: create prices dir if nonexistent (#101) - php:
fetch: gemini: update to ccxt's latest request() signature | run linter (#62)
1.0.0-beta - 2024-03-04
Initial pre-release