Files
docker-finance/CHANGELOG.md

23 KiB

Changelog (docker-finance)

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

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)

Client

Dockerfiles
  • Version updates for hledger-suite image (#156)
    • Bump hledger to 1.41
    • Change resolver for hledger-iadd
docker-finance.d (configurations)
  • Add Coinomi example to fetch (#170)
src/docker
  • Fix typo in usage help (#158)

Container

src/finance
  • lib_hledger

    • Remove -w arg to hledger-ui (#157)
  • lib_fetch

    • Fix price parsing (#130)
    • Fix Tor plugin (proxychains) check (#142)
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 fetch support for defunct exchanges/services (#169)
    • Bittrex
    • Celsius
    • Coinbase Pro

☀️ Features / Enhancements

Repo

README
  • Add support for NonFi, fix TradFi anchor tag (#141)
  • Add docker-finance logo, update README (#159)

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 hledger commands (#139)
  • edit

    • Add 'subscript' option (#146)
    • Add hledger add command (#152)
  • fetch

    • Add debug logging to Gemini (#153)
  • plugins

    • finance: timew_to_timeclock: print all tags (#133)
src/hledger-flow
  • Algorand

    • Add to Governance Rewards (#135)
    • Add to spam rules (#161)
  • Electrum

    • Use transaction label for tax memo (#168)
  • ethereum-based

    • Add to Ethereum spam rules (#162)
    • Add to Polygon spam rules (#167)
  • 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 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)

    • 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)

  • completion

    • plugins enhancements (#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
  • lib_gen

    • Refactor profile variables (#154)
  • lib_linter

    • Return function on compose down (#131)

Container

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 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)

🧠 Contributors

  • Aaron Fiore

🛠️ Fixes / Updates

Repo

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), remove shyaml
    • Remove pipx from Dockerfiles, replace with packaged csvkit
    • Comment all optional userspace packages
  • 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 (not ledger), update usage help / completion
    • Disable shellcheck warning for DOCKER_FINANCE_DEBUG
  • New installation method (#104) (#105)
  • Update Doxygen (#113)
    • Bump to 1.9.8
      • Change 'modules' to 'topics'

Container

  • Capital One (bank) (#124)
    • Add interest income
  • fetch fixes (#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 plugins command
    • Add documentation, examples
    • Add proxychains-ng / Tor plugin
    • Add timewarrior to hledger timeclock plugin
  • Add times command (timewarrior) (#110)

🌴 Misc / Other

Client

  • lib_docker (#125)
    • Add tag to container name
    • Remove platform from network name

Client / Container

  • Refactor to use yq (kislyuk's), remove shyaml (#121)
  • Set xtrace if debug is enabled (#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)
    • Various updates/fixes (#98)

Client

  • Dockerfiles fixes related to import (coinbase/coinbase-pro) and Ubuntu-based build (#58)
  • Resolve Dockerfiles apt CLI 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
    • Add more income (Governance Rewards and spam) to rules (#46) (#54)
  • Ally
    • 'Description' fixes (preprocess) (#53)
    • Various additions to rules (#53)
  • Capital One
    • Breaking: Upstream column-order changes (#80) (#93)
  • Coinbase
    • Breaking: SIWC API (V2) compliance (#49) (#50) (#63)
    • Breaking: Full migration to CCXT (#75)
    • Add 1INCH support (#56)
  • Electrum
    • Various additions to rules (#43)
  • Ethereum-based
    • Add Aave V2 -> V3 Migration Helper support (#45)
    • Add spam to rules (#45) (#55) (#91)
  • Gemini (Exchange)
    • Allow optional on-chain transfers (#52)
    • Add 1INCH support (#56)
  • Ledger (Live)
    • Breaking: Upstream column addition (#73) (#93)
  • lib_edit
    • Fix returns, clearer fatal errors (#81)
  • lib_taxes / hledger-flow
    • Breaking: Cost-basis work-arounds for Bitcoin.tax (#96)

☀️ Features / Enhancements

Repo

Client

  • Add build option 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 hledger source build
    • Support hledger-flow binary download
    • Optimize image sizes
  • Add version command for all platforms (#61) (#83)
  • Breaking: Add custom Dockerfile support (#67) (#97)
  • Breaking: New internal versioning implementation (#84) (#88) (#100)

Client / Container

  • hledger related enhancements, add alternative terminal UI (visidata) (#64)
  • Add hledger --conf support, future-proofing for hledger features (#78)

Container

  • hledger-flow
    • Add support for AdaLite (#40)
    • PayPal Business: catch 'Account Hold' (#47)
  • price
    • Breaking: Add support for multiple crypto aggregator-APIs (#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)
    • Macro reorg, refactor (#94)
    • Add crypto macros (Hash, Random) (#95)
    • Add support for multiple random number types (Random), update tests (#95)

🌴 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