2.5 (2020-11-03)
Don't create negative cost for lot without cost
Support complex implicit conversions
Handle typed metadata with value 0 correctly
Set per-unit instead of total cost when cost is missing from lot
Support commodity-less amounts
Convert transactions with no amounts or only 0 amounts to notes
Fix parsing of transaction notes
Keep tags in transaction notes on same line as transaction header
Add beancount config options for non-standard root names automatically
Fix conversion of fixated prices to costs
Fix removal of price when price==cost but when they use different number formats
Fix removal of price when price==cost but per-unit and total notation mixed
Fix detection of tags and metadata after posting/aux date
Use D directive to set default commodity for hledger
Improve support for postings with commodity-less amounts
Allow empty comments
Preserve leading whitespace in comments in postings and transaction headers
Preserve indentation for tags and metadata
Preserve whitespace between amount and comment
Refactor code to use more data structures
Remove dependency on Config::Onion module
2.4 (2020-07-27)
Fix regressions introduced in version 2.3
Handle price directives with comments
Don't assume implicit conversion when price is on second posting
Improve support for hledger
Fix parsing of hledger tags
Support commas as decimal markers
Support digit group marks through commodity and D directives
Support end aliases directive
Support regex aliases
Recognise total balance assertions
Recognise sub-account balance assertions
Add support for define directive
Convert all uppercase metadata tags to all lowercase
Improve handling of ledger lots without cost
Allow transactions without postings
Fix parsing issue in commodity declarations
Support commodities that contain quotation marks
Add --version option to show version
Document problem of mixing apply and include
2.3 (2020-06-26)
Improve speed of ledger2beancount significantly
Improve parsing of postings for accuracy and speed
Improve support for inline maths
Handle lots without cost
Fix parsing of lot notes followed by a virtual price
Add support for lot value expressions
Make parsing of numbers more strict
Fix behaviour of dates without year
Accept default ledger date formats without configuration
Fix implicit conversions with negative prices
Convert implicit conversions in a more idiomatic way
Avoid introducing trailing whitespace with hledger input
Fix loading of config file
Skip ledger directive import
Convert documentation to mkdocs
2.2 (2020-05-30)
Show warning for unknown apply directive
Recognise apply rate directive (an alias of apply fixed)
Don't convert metadata on ignored virtual postings but keep as comments
Update location of beancount repository
2.1 (2020-04-06)
Handle postings with posting dates and comments but no amount
Show transactions with only one posting (without bucket)
Adding spacing between automatic declarations
Preserve preliminary info at the top
# Release 4.0.4 - (Oct 15, 2020)
* PSBT: fix regression in 4.0.3 where UTXO data was not included in
QR codes (#6600)
* new feature: "Cancel tx" (#6641). The Qt/kivy GUI allows cancelling
an unconfirmed RBF tx by double-spending its inputs to self.
* Windows binary:
- fix some issues with QR scanning by building zbar ourselves (#6593)
- when using setup exe, also install a debug binary (#6603)
* Ledger: fix "The derivation path is unusual" warnings (#6512)
(needs Bitcoin app 1.4.8+ installed on device)
* A few other minor bugfixes and usability improvements.
# Release 4.0.3 - (Sep 11, 2020)
* PSBT: restore compatibility with Bitcoin Core following CVE-2020-14199:
we now allow a PSBT input to have both UTXO and WITNESS_UTXO (#6429).
(PSBTs created since 4.0.1 already contained UTXO for segwit inputs)
* Hardware wallets:
- bitbox02: better multisig UX: implement get_soft_device_id (#6386)
- coldcard: fix "show address" for multisig (#6517)
- all: run all device communication on a dedicated thread (#6561).
This should resolve some threading issues.
* new feature: "Automated BIP39 recovery" (#6219, #6155)
When restoring from a BIP39 seed, add option to scan many known
derivation paths for history, and show them to user to choose from.
* show derivation path of keystores in Qt GUI Wallet>Information (#4700)
* fix "signtransaction" RPC command (#6502)
* Dependencies: pyaes is no longer needed (#6563)
* The tar.gz source dist now bundles make_libsecp256k1.sh, to help
users getting libsecp256k1 (#6323).
* A few other minor bugfixes and usability improvements.
# Release 4.0.2 - (July 8, 2020)
- rm old corrupted non-bip70 invoices (#6345)
- other minor fixes
# Release 4.0.1 - (July 3, 2020)
* Lightning Network support (experimental)
- Our implementation of Lightning relies on Electrum servers to
query channel states. Since servers can lie about the state of a
channel, users should either use a server that they trust, or
setup a private watchtower (see below). A watchtower is also
recommended for lightning wallets that remain offline for
extended periods of time (the default CSV 'to_self_delay' is 1
week). Please note that Electrum Personal Server (EPS) cannot be
used with lightning wallets, because channels funding addresses
are arbitrary.
- Lightning funds cannot be restored from seed. Instead, users need
to create static backups of their channels. Static backups cannot
be used to perform lightning transactions, they can only be used
to trigger a remote-force-close of a channel.
- Lightning-enabled wallet files must not be copied. Instead, a
backup of the wallet can be created from the Qt menu, and it will
contain static backups of all its channels. Backups can also be
exported for each channel (e.g. via QR code), and imported in
another wallet. Since backups are encrypted with a key derived
from the wallet's xpub, they can only be imported into another
instance of the same wallet, or a watch-only version of it. The
force-close is not triggered automatically when the backup is
imported; imported backups can live inside a wallet file.
- Lightning can be enabled in the GUI (Wallet>Information) or from
the CLI (init_lightning). Lightning is currently restricted to HD
p2wpkh wallets (including watch-only and hardware wallets). The
Qt GUI, CLI/RPC, and the kivy GUI (Android) all have LN support,
with feature-richness in that order.
- LN protocol details: dataloss_protect and static_remotekey are
required; varonion and payment_secret are implemented, MPP not yet.
Channels are not announced ('private'), forwarding is disabled.
We do not serve gossip queries, only consume them.
- Submarine swaps: the GUI integrates a service that offers
atomically exchanging on-chain and lightning bitcoins for a fee.
Electrum Technologies runs a central server for this, powered by
the Boltz backend.
- Watchtowers: Electrum can run a local watchtower (GUI setting),
or it can connect to a remote watchtower. A watchtower contains
pre-signed transactions and does not need your private keys. A
local watchtower will watch your channels whenever an Electrum
instance is running, without needing access to your wallet file.
An Electrum daemon can be configured to be used as a remote
watchtower by setting 'watchtower_address', 'watchtower_user' and
'watchtower_password'.
* Partially Signed Bitcoin Transactions (PSBT, BIP-174) are supported
(#5721). The previous Electrum partial transaction format is no
longer supported, i.e. this is an incompatible change. Users should
make sure that all instances of Electrum they use to co-sign or
offline sign, are updated together.
* Hardware wallets: several fixes in general; notable changes:
- The BitBox02 is now supported (#5993)
- Multisig support for Coldcard (#5440)
- Compatibility with latest Trezor fw (#6064, #6198, #5692)
* Dependencies (see README for install instructions):
- libsecp256k1 is now required (previously optional). python-ecdsa
remains a dependency but it is now only used for DNSSEC.
- Added: either one of pycryptodomex or cryptography is now required,
mainly due to LN (previously pycryptodomex was optional, for fast AES)
- Removed: jsonrpclib-pelix, the JSON-RPC library used for CLI/daemon
* Qt GUI: several changes, notably:
- Separation between output selection and transaction finalization.
- Coin selection moved to the Coins tab, and it affects all txns,
e.g. RBF fee-bumping, LN channel opens, submarine swaps.
- Editable tx preview dialog that allows e.g. changing the locktime,
toggling RBF, and manual coinjoins.
* HTTP PayServer: The configuration of a bitcoin-accepting website
using Electrum has been simplified and requires fewer steps (see
documentation). The Payserver supports BIP70 and Lightning payments.
* Android:
- We now build two APKs, one for ARMv7 and one for ARMv8
- The kivy GUI now supports importing BIP39 seeds
- Each wallet on kivy now can have a separate generic password,
using which the wallet files are encrypted. An optional PIN,
shared among all wallets, can be added to get prompted for spends.
* The API of several CLI/RPC commands have changed, and several new
commands have been introduced (mainly for LN).
* Distributables:
- The .tar.gz source dist is now built reproducibly.
Relatedly, we no longer distribute a .zip sdist.
- The MacOS binary now conforms to macOS 10.15; it is notarized
by Apple. This required bumping the min macOS version to 10.13.
Startup times should now be faster on 10.15. (#6128, #6225)
* Transactions:
- we now grind low R for ECDSA signatures to match bitcoind (#5820)
* Lots and lots of other minor bugfixes and improvements.
Library to help smart contract compilation. It includes support for:
- Direct solc compilation
- Truffle
- Embark
- Dapp
- Etherlime
- Etherscan
- Brownie
- Waffle
- Buidler
The plugin is used in Crytic tools, including:
- Slither
- Echidna
- Manticore
- evm-cfg-builder
This is a low-level library, intended to be used internally by other Ethereum
tools. If you're looking for a convenient hashing tool, check out
eth_utils.keccak() which will be a little friendlier, and provide access to
other helpful utilities.
Read more in the documentation on ReadTheDocs.
Note: the similarly named pyethash has a completely different use: it generates
proofs of work.
4.2 - 27 September 2020
The third release of the 4.x stable series.
Between 4.1 and 4.2, the following bugfixes were accomplished:
Bug 102787 - Currency selection should do autocompletion
Bug 476114 - Goto register by date feature req
Adds ability to jump to arbitrary date.
Bug 554391 - Tax Options dialog - can only assign one TXF category at a time
If the Tax options dialog is opened from the Chart of Accounts
and an account is selected then the tax dialog will preselect
that account.
Bug 787295 - Allow UI jump from Business accounts to their relevant
invoice/bill/voucher
Bug 797514 - Changing transaction unreconciles a split inconsistently
Partial: This make sure that the split's reconcile status
gets updated before the transaction is committed.
Bug 797730 - Transaction matching can match multiple imported transactions
to the same existing one
Bug 797839 - Auto-complete prevents entering non-ASCII transaction
descriptions
Bug 797852 - Error in Accounts Payable Aging re cut off dates
Bug 797857 - Edit->Preferences: Help/Close buttons unreachable
Bug 797874 - Errors in register and new-account UI
Bug 797878 - Pie chart displays fractions and long decimal representations
Ensure amounts rendering is rounded to report-currency SCU
Bug 797880 - [gnucash-cli] encoding and font differing from manually
exported reports (Win10, German locale).
Bug 797883 - [Transaction Report] non-localized string
Bug 797889 - editing amounts in dr / cr behaving oddly
Bug 797893 - Unable to change font size in charts
Use the stylesheet font values instead of hard-coded ones.
Bug 797895 - Hang for a long time (9 minutes per account) importing a QFX
file.
Bug 797896 - [HBCI] crash when downloading transactions.
Bug 797897 - Cannot select multiple accounts in Tax Report Options
Bug 797898 - [reconciliation] calculated balance amount per reconcilation
date depending on actual time.
Bug 797900 - Crash caused by Quitting while Check and Repair All is running
Bug 797923 - Running employee report results in "Unbound variable: txn"
Bug 797924 - Crash when searching for customer to process payment.
Bug 797935 - Strange formal register headers
In languages other than English because of poorly constructed
translatable strings.
Bug 797936 - Lot viewer notes field too narrow
Bug 797945 - Tools -> Import Map Editor causes GnuCash to lock up
The following fixes and improvements were not associated with bug reports:
Update version in README, add Boost::program_options to dependencies.
[report-utilities] compact functions
Small fixes for various translation issues:
Deduplicate translatable strings
Add context to one-letter strings in guile code
Fix typo in linked document gui Align translatable strings
Expose C_ function (gettext with context string) to guile code, first use
is for the document link short code (L)
Improve and repair progress bar display on a variety of reports and
windows, improving performance on several by reducing the number of
progressbar calls.
[gnc-main-window] enable show_text for progressbar, allowing
gtk_progress_bar_set_text to actually display the progress text.
Fix help_label of dialog-doclink.glade, remove question mark from
Available, and insert missing spaces into the Business Item variant.
Rename all Transaction and Invoice Association identifiers to DocLink to
better reflect the purpose and for consistency with other software
(e.g. Libre Office).
Rename Transaction and Invoice Associations to Document Links. More clearly
describes the actions and is more consistent with other software
(e.g. Libre Office).
Remove the Remove Linked Document context menu item because that can
be done in the Manage dialog box.
Fix the horizontal scrollbar in the linked docs window.
I18n - deduplicate translatable strings
macOS: Give GnuCash time to shut down gracefully instead of letting macOS
pull the rug out.
I18N: Align glossary to gnucash.pot. Create a similar copyright header.
Add missing Report-Msgid-Bugs-To.
[report-utilities] More dump data functions:
gnc:dump-book - splits grouped by account
gnc:dump-all-transactions - splits grouped by transaction
gnc:dump-split - dumps single split
[business-urls] link to owner report with enddate
[dialog-invoice] gnc_business_call_owner_report_with_enddate
[new-owner-report][api] owner-report-create-with-enddate; accepts enddate
argument like owner-report-create.
Enable exporting the tables in charts and some reports as CSV.
Tweak a few strings to reuse translations
Exported gnc:cmdline-template-export and gnc:cmdline-get-report-id.
Handle ambiguous reportnames by returning #f.
[price-quotes.scm] ensure missing-alphavantage message can show on console
[budget.scm] Fix report crash on books with unreversed budgets
[gnucash-cli] -R show should accept & try to load datafile
Speed up computation of import match lists by running query only once,
committing accounts only once, and doing a bulk insert into the
GtkTreeview.
Add Python example export_account_totals.py. Exports acount totals of all
accounts into a CSV file.
Updated Translations: Dutch, German, Italian, Ukrainian
New Translations: Estonian, Indonesian
Fix dependencies.
1.49 2019-06-30 12:20:58+02:00 Europe/Brussels
* Alphavantage: Removed Time::HiRes dependency due to mswin32
not supporting clock_gettime calls.
1.48 2019-06-30 01:19:14+02:00 Europe/Brussels
* Alphavantage: Add a waiting mechanism to comply to
alphavantage use terms
* Alphavantage: Added several stock exchange support and
currency
* Updated modules: Union, Deka, Indiamutual, ASX, Yahoojson,
TSP, AEX, Fool
* New modules: IEXTrading, MorningstarAU, MorningstarCH,
IEXCloud
* Yahoo: removed modules referring to yahoo API, which yahoo
stopped
* BUGFIX: 'use of uninitialized value' returned by perl could
make gnucash fail when more than 15 quotes where requested
* BUGFIX: MS Windows does not support %T in strftime call
* Added new documentation files: Release.txt, Hackers-Guide,
Modules-README.yml
* We started moving known failing tests into TODO blocks
* This release is the result of hard work by Bruce Schuck,
Vincent Lucarelli, Pieter-Jan Vandormael, Manuel Friedli,
Jalon Avens, Chris Good, Mark J. Cox, Eelco Dolstra, Henrik
Ahlgren, Vinay Shastry, Mike Alexander, Erik Colson.
* Special thanks go to Bruce Schuck and Vincent Lucarelli
which joined the maintainers team!
0.20.1 change log
Mining
* Fix GBT: Restore "!segwit" and "csv" to "rules" key (luke-jr)
P2P protocol and network code
* Replace automatic bans with discouragement filter (sipa)
Wallet
* Handle concurrent wallet loading (promag)
* Minimal fix to restore conflicted transaction notifications (ryanofsky)
RPC and other APIs
* Increment input value sum only once per UTXO in decodepsbt (fanquake)
* psbt: Increment input value sum only once per UTXO in decodepsbt (achow101)
* psbt: Include and allow both non_witness_utxo and witness_utxo for segwit inputs (achow101)
GUI
* Add missing QPainterPath include (achow101)
* update Qt base translations for macOS release (fanquake)
Build system
* improve build OS configure output (skmcontrib)
* qt, build: Fix QFileDialog for static builds (hebasto)
Tests and QA
* Remove cached directories and associated script blocks from appveyor config (sipsorcery)
* appveyor: Remove clcache (MarcoFalke)
Miscellaneous
* util: Don't reference errno when pthread fails (miztake)
* Fix locking on WSL using flock instead of fcntl
4.1 - 26 July 2020
The second release of the 4.x stable series.
Between 4.0 and 4.1, the following bugfixes were accomplished:
Bug 775582 - Change "Petrol" (or Gas if seen in USA) to "Fuel".
Bug 797759 - Some transactions are not highlighted in the matching window
Bug 797787 - Feature request: preference setting to open new tabs adjacent
to currently active tab (as opposed to at the end of the tab
list).
Bug 797825 - OFX import crashes on import of investment transaction
Bug 797827 - 4.0.1 gnucash-cli seg faults on macOS Catalina
Bug 797828 - Budget Barchart was not upgraded
Upgrade to html-chart: Use period start/end instead of
date start/end
Bug 797830 - Expense over time has extra empty row
Bug 797831 - Printer not found
Bug 797834 - Ctrl+A in account register fields chimes after any element
newly focussed.
Bug 797835 - Zero Crossing in 4.0 that wasn't in 3.10
Bug 797842 - Windows: Insertion cursor invisible in Edit Account or New
Account windows until text fields have content.
Bug 797843 - Quickfill broken with Cyrillic input language
Bug 797844 - Typing account number to select account fails
Bug 797845 - Backspace key produces incorrect result
Bug 797847 - Best match probability calculation on import is too
pessimistic.
Lowering the minimum value for the auto-clear preference.
This is to allow user to still auto clear even when date
doesn't match exactly.
Bug 797850 - Account register credit/debit column headings untranslated
Bug 797853 - Crash on "Save As" in MacOS Mojave and Gnucash 4
Bug 797854 - Global Register Preference to prompt for interest payment is
not being honored.
Replace the global preference item with a per-account option,
enabled only on those account types where interest might be
paid or charged.
Bug 797858 - Transaction date is one day too early from SWIFT MT940 import.
Bug 797861 - Yearly / Monthly average reporting displays zeros
Bug 797873 - New Account Hierarchy selects en_US
The following fixes and improvements were not associated with bug reports:
Accommodate Guile-3.0 in Scheme code.
[html-style-info] Display fractional amounts as decimal in price-render
Warn against using xaccTransGetSplit for iteration instead of encouraging it.
Quickfill cells: Remove the selection after a delete.
Accommodate AQBanking < 6 use of GWEN_TIME instead of GWEN_DATE.
ensure averaging-multipler returns exact numbers rather than floats
[gnucash-cli] improve "-R show" to describe report
Don't leak the libofx contexts in gnc_file_ofx_import_process_file/
Make the edit dialog refresh the auto-interest flag display based on pref
Remove global preference for auto-interest-transfer
[Reports] Use SRFI-9 records for HTML styling.
[html-style-sheet] combine 2 similar functions
Let environment override AppleLanguages on Macs.
[balsheet-eg] remove unused functions
[balsheet-eg] modernize accrec to use srfi-9 record
[account.cpp] prevent crash in gnc_account_get_currency_or_parent.
CMakeLists: mark deprecation of .scm files
[eguile-utilities] Ensure that fmtnumeric renders numbers as decimals instead of exact fractions.
[Python Bindings] Implement keyword paramters to selected functions.
[Python Bindings] Adapt to use of sessionOpenMode in qof_session_begin
introduce python submodule deprecation.
Link with libm.so on those platforms that require it.
[account-piecharts] round account->balance to report-currency SCU
[report-utilities] ensure commodity-collector doesn't round amounts
[advanced-portfolio] simplify basis functions
[advanced-portfolio] simplify basis-builderand use scheme division which is more accurate than gnc_numeric_div. tests need to change slightly.
[git-release-notes.pl] html-escape strings in the html output.
Updated Translations: Croatian, Hebrew, Italian, Japanese, Romanian, Ukrainian
0.20.0 change log
Mining
* miner: Avoid stack-use-after-return in validationinterface
Block and transaction handling
* log: Fix UB with bench on genesis block
* feefilter: Compute the absolute fee rather than stored rate
* log: Add validation interface logging
* log: Add timing information to FlushStateToDisk()
* O(1) OP_IF/NOTIF/ELSE/ENDIF script implementation
* introduce CChainState::GetCoinsCacheSizeState
* Walk pindexBestHeader back to ChainActive().Tip() if it is invalid
* Remove REJECT code from CValidationState
* Explain why fCheckDuplicateInputs can not be skipped and remove it
* GuessVerificationProgress: cap the ratio to 1
* Templatize ValidationState instead of subclassing
* node: Add reference to mempool in NodeContext
* prevector: Avoid misaligned member accesses
* Improve UpdateTransactionsFromBlock with Epochs
* Abstract out script execution out of VerifyWitnessProgram()
* Make VerifyWitnessProgram use a Span stack
* serialization: prevent int overflow for big Coin::nHeight
* chainparams: Bump assumed valid hash
* Do not clear validationinterface entries being executed
P2P protocol and network code
* Remove BIP61 reject messages
* Supply and use asmap to improve IP bucketing in addrman
* Continue relaying transactions after they expire from mapRelay
* Avoid allocating memory for addrKnown where we don't need it
* tools: add PoissonNextSend method that returns mockable time
* SocketHandler logs peer id for close and disconnect
* Seed RNG with precision timestamps on receipt of net messages
* Fix an uninitialized read in ProcessMessage(…, "tx", …) when receiving a transaction we already have
* Don't allow resolving of std::string with embedded NUL characters. Add tests
* Fix CNetAddr::IsRFC2544 comment + tests
* config, net, test: Asmap feature refinements and functional tests
* Use rolling bloom filter of recent block txs for AlreadyHave() check
* Remove forcerelay of rejected txs
* Fix some asmap issues
* Reference instead of copy in BlockConnected range loop
* Fix use-after-free in tests
* Make addr relay mockable, add test
* Add missing cs_vNodes lock
* Hardcoded seeds update for 0.20
* Drop unknown types in getdata
* Only send a getheaders for one block in an INV
Wallet
* Replace %w by wallet name in -walletnotify script
* Remove GetDepthInMainChain dependency on locked chain interface
* bumpfee: Return PSBT when wallet has privkeys disabled
* Disable -fallbackfee by default
* Make IsTrusted scan parents recursively
* Change default address type to bech32
* Only check the hash of transactions loaded from disk
* Handle duplicate fileid exception
* descriptors: Introduce sortedmulti descriptor
* Avoid showing GUI popups on RPC errors
* Remove wallet access to some node arguments
* LearnRelatedScripts only if KeepDestination
* Split some CWallet functions into new LegacyScriptPubKeyMan
* Make ScriptPubKeyMan an actual interface and the wallet to have multiple
* Enable BnB coin selection for preset inputs and subtract fee from outputs
* Various fixes and cleanup to keypool handling in LegacyScriptPubKeyMan and CWallet
* Rename db log category to walletdb
* Avoid showing GUI popups on RPC errors
* Make -walletdir network only
* Cleanup and move opportunistic and superfluous TopUp()s
* Remove out of date comments for CalculateMaximumSignedTxSize
* Fix when sufficient preset inputs and subtractFeeFromOutputs
* Activate watchonly wallet behavior for LegacySPKM only
* Document better -keypool as a look-ahead safety mechanism
* Reset reused transactions cache
* Improve CWallet:MarkDestinationsDirty
* Get the OutputType for a descriptor
* Improve LegacyScriptPubKeyMan::CanProvide script recognition
* Pass in transactions and messages for signing instead of exporting the private keys
* Bugfix: Wallet: Safely deal with change in the address book
* descriptors: Improve descriptor cache and cache xpubs
* rpc/wallet: Initialize nFeeRequired to avoid using garbage value on failure
* Remove deprecated fee bumping by totalFee
* Fix wallet unload race condition
RPC and other APIs
* Add RPC Whitelist Feature
* cli: -stdinwalletpassphrase and non-echo stdin passwords
* Add missing fields to wallet rpc help output
* Fix bug where duplicate PSBT keys are accepted
* UTXO snapshot creation
* psbt: Check that various indexes and amounts are within bounds
* Set default bip32derivs to true for psbt methods
* improve getaddressinfo test coverage, help, code docs
* cli: Add "headers" and "verificationprogress" to -getinfo
* replace asserts in RPC code with CHECK_NONFATAL and add linter
* Expose block height of wallet transactions
* Remove unused COINBASE_FLAGS
* Simplify getaddressinfo labels, deprecate previous behavior
* deprecate getaddressinfo label
* Remove vector copy from listtransactions
* Auto-format RPCResult
* Output a descriptor in createmultisig and addmultisigaddress
* Update validateaddress RPCExamples to bech32
* Change RPCExamples to bech32
* Remove redundant types from descriptions
* Document an RPCResult for all calls; Enforce at compile time
* Add missing HelpExampleRpc for getblockfilter
* Fix broken RPCExamples for waitforblock(height)
* Remove final comma for last entry of fixed-size arrays/objects in RPCResult
* Remove unused getbalances() code
* Correctly compute redeemScript from witnessScript for signrawtransaction
* Fix rpcRunLater race in walletpassphrase
* Make rpc documentation not depend on call-time rpc args
* Avoid initialization-order-fiasco on static CRPCCommand tables
* Make verifychain default values static, not depend on global args
* Do not advertise dumptxoutset as a way to flush the chainstate
* Relock wallet only if most recent callback
GUI
* Restore RPC Console to non-wallet tray icon menu
* Don't disable the sync overlay when wallet is disabled
* Show addresses for "SendToSelf" transactions
* Add shortcuts for tab tools
* create PSBT with watch-only wallet
* Change sendcoins dialogue Yes to Send
* Always generate bitcoinstrings.cpp on make translate
* Rename debug window
* Make RPCConsole::TabTypes an enum class
* Add toolTip and placeholderText to sign message fields
* Remove BIP70 support
* Improved tooltip for send amount field
* Add placeholder text to the sign message field
* Send amount placeholder value
* Fix payAmount tooltip in SendCoinsEntry
* Cleaning up hide button tool tip
* Changed tooltip for 'Label' & 'Message' text fields to be more clear
* Fix intro dialog labels when the prune button is toggled
* Bugfix: GUI: Recognise NETWORK_LIMITED in formatServicesStr
* Bump fee returns PSBT on clipboard for watchonly-only wallets
* Remove macOS start on login code
* Show watch-only balance in send screen
* Disable 3rd-party tx-urls when wallet disabled
* Force set nPruneSize in QSettings after the intro dialog
* Move static placeholder texts to forms
* Log Qt related info
* Restore English translation option
* Set CConnman byte counters earlier to avoid uninitialized reads
* Hide HD & encryption icons when no wallet loaded
* Shortcut to close ModalOverlay
* Bugfix: GUI: Hide the HD/encrypt icons earlier so they get re-shown if another wallet is open
* Drop PeerTableModel dependency to ClientModel
* Fix unintialized WalletView::progressDialog
* Pass clientmodel changes from walletframe to walletviews
* Fix deprecated QCharRef usage
* Throttle GUI update pace when -reindex
* Fix race in WalletModel::pollBalanceChanged
* Avoid Wallet::GetBalance in WalletModel::pollBalanceChanged
* Bump transifex slug and update English translations for 0.20
* Display mapped AS in peers info window
* Translations update pre-branch
* Fix Window -> Minimize menu item
* Fix leak in CoinControlDialog::updateView
* Fix manual coin control with multiple wallets loaded
Build system
* Remove mingw linker workaround from win gitian descriptor
* Use new fork of osslsigncode for windows gitian signing
* Only pass --disable-dependency-tracking to packages that understand it
* Bump libevent to 2.1.11 in depends
* gitian: Various improvements for windows descriptor
* Disable _FORTIFY_SOURCE when enable-debug
* Switch to upstream libdmg-hfsplus
* Remove workaround for ancient libtool
* Added double quotes
* Add variable printing target to Makefiles
* depends macOS: point --sysroot to SDK
* Fix boost mac cross build with clang 9+
* Remove OpenSSL
* Update retry to current version
* nsis: Write to correct filename in first place
* Update univalue subtree
* Update leveldb to 1.22+
* Avoid hardcoded libfaketime dir in gitian
* Fix C{,XX} pickup
* Set gitian arch back to amd64
* Make Travis catch unused variables
* Bump minimum libc to 2.17 for release binaries
* Create test utility library from src/test/util/
* Remove libanl.so.1 from ALLOWED_LIBRARIES
* Fix configure report about qr
* Allow export of environ symbols and work around rv64 toolchain issue
* lcov: filter depends from coverage reports
* Add ability to skip building qrencode
* Support for S390X and POWER targets
* util: Update tinyformat to upstream
* Don't configure xcb_proto
* Remove Qt networking features
* Remove linking librt for backwards compatibility
* Remove configure checks for win libraries we don't link against
* Included test_bitcoin-qt in msvc build
* Remove WINDOWS_BITS from build system
* Set AC_PREREQ to 2.69
* Add -Wdate-time to Werror flags
* Remove double LIBBITCOIN_SERVER linking
* Consistent use of package variable
* guix: Pin Guix using guix time-machine
* pass -fno-ident in Windows gitian descriptor
* Remove --large-address-aware linker flag
* Don't embed a build-id when building libdmg-hfsplus
* Fix behavior when ALLOW_HOST_PACKAGES unset
* Add missing attributes to Win installer
* Skip i686 build by default in guix and gitian
* Add cov_fuzz target
* Add --enable-determinism configure flag
* Add Wreturn-type to Werror flags, check on more Travis machines
* Remove Boost Chrono
* Set minimum Automake version to 1.13
* guix: Remove now-unnecessary gcc make flag
* Use git archive as source tarball
* Fix libevent linking for bench_bitcoin binary
* scripts: Previous_release: improve behaviour on failed download
* Remove double LIBBITCOIN_SERVER from bench-Makefile
* Create test_fuzz library from src/test/fuzz/fuzz.cpp
* Fix boost detection for arch armv7l
* gitian: Add missing automake package to gitian-win-signer.yml
* Check libevent minimum version in configure script
* Ensure source tarball has leading directory name
Platform support
* Add Android NDK support
* macOS toolchain update
* Increase init file stop timeout
* Remove OpenSSL PRNG seeding
* Update README.md with working Android targets and API levels
* Only use D-Bus with Qt on linux
* Set minimum supported macOS to 10.12
* Appveyor install libevent[thread] vcpkg
* Remove deprecated key from macOS Info.plist
* Pass -dead_strip_dylibs to ld on macOS
* Don't use OpenGL in Qt on macOS
* Add -bind_at_load to macOS hardened LDFLAGS
* scripts: Add macho pie check to security-check.py
* random: don't special case clock usage on macOS
* scripts: Add macho dylib checks to symbol-check.py
* msvc: Ignore msvc linker warning and update to msvc build instructions
* windows: Enable heap terminate-on-corruption
* logging: Enable thread_local usage on macos
* Fix .gitignore policy in build_msvc directory
* scripts: Add macho lazy bindings check to security-check.py
* util: Fix compilation with mingw-w64 7.0.0
* Fix sysctl() detection on macOS
* random: remove getentropy() fallback for macOS < 10.12
* scripts: Add pe dylib checking to symbol-check.py
* scripts: Add macho tests to test-security-check.py
* releases: Update with new Windows code signing certificate
* Fix ASLR for bitcoin-cli on Windows
Tests and QA
* Build previous releases and run functional tests
* Add coverage to estimaterawfee and estimatesmartfee
* lint: Run the ci lint stage on mac
* Add getdescriptorinfo functional test
* Add wallet_implicitsegwit to test the ability to transform keys between address types
* Add ASSERT_DEBUG_LOG to unit test framework
* travis: Run full test suite on native macos
* Use self.chain instead of 'regtest' in all current tests
* add unit test for wallet watch-only methods involving PubKeys
* Add generatetodescriptor RPC
* Fix combine_logs.py for AppVeyor build
* Show debug log on unit test failure
* Seed test RNG context for each test case, print seed
* ci: Use busybox utils for one build
* Fix Python Docstring to include all Args
* ci: Run tests on arm
* Pass fuzzing inputs as constant references
* Add test for loadblock option and linearize scripts
* fix "tx-size-small" errors after default address change
* Speed up wallet_backup by whitelisting peers
* Speed up wallet_address_types by whitelisting peers
* Fix bug in blockfilter_index_tests
* use default address type
* ci: Enable address sanitizer
* Add testcase to simulate bitcoin schema in leveldb
* Remove no longer needed UBSan suppressions
* Add unit testing for the CompressScript function
* Test serialisation as part of deserialisation fuzzing. Test round-trip equality where possible
* Add RegTestingSetup to setup_common
* travis: Run unit and functional tests on native arm
* Skip unnecessary fuzzer initialisation. Hold ECCVerifyHandle only when needed
* ci: Disable functional tests on mac host
* Fix script_p2sh_tests OP_PUSHBACK2/4 missing
* bench: Fix negative values and zero for -evals flag
* pubkey: Assert CPubKey's ECCVerifyHandle precondition
* Added TestWrapper class for interactive Python environments
* Add new mempool benchmarks for a complex pool
* add reason checks for non-standard txs in test_IsStandard
* Fix input size assertion in wallet_bumpfee.py
* Add rpc_fundrawtransaction logging
* Add shrinkdebugfile=0 to regtest bitcoin.conf
* Speed up fundrawtransaction test
* Do not instantiate CAddrDB for static call CAddrDB::Read()
* Speed up wallet_avoidreuse, add logging
* add "diamond" unit test to MempoolAncestryTests
* Reset global args between test suites
* ci: Run non-cross-compile builds natively
* TestShell: Fix typos & implement cleanups
* Create new test library
* wallet_importmulti: use addresses of the same type as being imported
* Add missing newline in util_ChainMerge test
* Add util_ArgParsing test
* travis: Rework cache_err_msg
* ci: Make ci system read-only on the git work tree
* check custom ancestor limit in mempool_packages.py
* Update valgrind suppressions
* Check custom descendant limit in mempool_packages.py
* Remove fragile assert_memory_usage_stable
* ci: Use clang-8 for fuzzing to run on aarch64 ci systems
* Add unit test for non-standard txs with too large scriptSig
* Skip tests when utils haven't been compiled
* Add unit test for non-standard bare multisig txs
* Add bounds checks before base58 decoding
* ci: Bump to clang-8 for asan build to avoid segfaults on ppc64le
* Wait until mempool is loaded in wallet_abandonconflict
* Add functional test for non-standard txs with too large scriptSig
* Add functional test for non-standard bare multisig txs
* Add unit test for non-standard txs with wrong nVersion
* Add libtest_util library to msvc build configuration
* ci: Add big endian platform - s390x
* Move more utility functions into test utility library
* Add option --valgrind to run the functional tests under Valgrind
* ci: Add centos 7 build
* Add unit test for leveldb creation with unicode path
* Add initialization order fiasco detection in Travis
* Enable tests which are incorrectly skipped when running test_runner.py --usecli
* Fix bug in the descriptor parsing fuzzing harness
* re-enable CLI test support by using EncodeDecimal in json.dumps()
* add unit test for non-standard "scriptsig-not-pushonly" txs
* ci: Fix qemu issues
* ci: Update github actions ci vcpkg cache on msbuild update
* Change filemode of rpc_whitelist.py
* ci: Fix brew python link
* Add std::to_string to list of locale dependent functions
* Fix double-negative arg test
* ci: Combine 32-bit build with centos 7 build
* Test OP_CSV empty stack fail in feature_csv_activation.py
* Fix p2p_invalid_messages failing in Python 3.8 because of warning
* add unit test for non-standard txs with too large tx size
* Check specific reject reasons in feature_csv_activation.py
* Add p2p test for forcerelay permission
* Updated appveyor job to checkout a specific vcpkg commit ID
* fix fuzzing using libFuzzer on macOS
* bench: Fix benchmarks filters
* reset fIsBareMultisigStd after bare-multisig tests
* Fix appveyor test_bitcoin build of *.raw
* util: Allow scheduler to be mocked
* ci: Check for submodules
* Replace 'regtest' leftovers by self.chain
* Set a name for CI Docker containers
* Avoid hitting some known minor tinyformat issues when fuzzing strprintf(…)
* Add harness which fuzzes EvalScript and VerifyScript using a fuzzed signature checker
* Add --valgrind option to test/fuzz/test_runner.py for running fuzzing test cases under valgrind
* ci: Run fuzz testing test cases
* Transaction expiry from mempool
* Remove incorrect assumptions in validation_flush_tests
* Set catch_system_errors=no on boost unit tests
* Add cost_of_change parameter assertions to bnb_search_test
* Reduce unneeded whitelist permissions in tests
* Disable mockforward scheduler unit test for now
* Fix race in p2p_segwit
* Make AnalyzePSBT next role calculation simple, correct
* Add missing syncwithvalidationinterfacequeue
* Wait for both veracks in add_p2p_connection
* Bump timeouts to accomodate really slow disks
* Add bad-txns-*-toolarge test cases to invalid_txs
* rpc: change setmocktime check to use IsMockableChain
* Check that wait_until returns if time point is in the past
* Add locale fuzzer to FUZZERS_MISSING_CORPORA
* fuzz: Add assert(script == decompressed_script)
* Update FUZZERS_MISSING_CORPORA to enable regression fuzzing for all harnesses in master
* fuzz: Add option to merge input dir to test runner
* Explain why test logging should be used
* Add logging to wallet_listsinceblock.py
* Bumpfee test fix
* Add deserialization fuzzing of SnapshotMetadata
* fuzz: Add missing ECC_Start to key_io test
* Add basic test for BIP 37
* Fix mining to an invalid target + ensure that a new block has the correct hash internally
* Bugfix & simplify bn2vch using int.to_bytes
* Don't assume presence of __builtin_mul_overflow(…) in MultiplicationOverflow(…) fuzzing harness
* add executable flag for rpc_estimatefee.py
* listsinceblock block height checks
* ci: Only clone bitcoin-core/qa-assets when fuzzing
* ci: Use homebrew addon on native macos
* Add coverage for script parse error in ParseScript
* Remove unsafe BOOST_TEST_MESSAGE
* check that peer is connected when calling sync_*
* ci: Use focal for fuzzers
* add BIP37 'filterclear' test to p2p_filter.py
* Remove redundant sync_with_ping after add_p2p_connection
* fuzz: Avoid running over all inputs after merging them
* fuzz: Add CScriptNum::getint coverage
* remove rapidcheck integration and tests
* Add BIP37 remote crash bug [CVE-2013-5700] test to p2p_filter.py
* relax bumpfee dust_to_fee txsize an extra vbyte
* fuzz: Extend descriptor fuzz test
* fuzz: Extend script fuzz test
* fuzz: Add process_messages harness
* Add fuzzer version of randomized prevector test
* skip backwards compat tests if not compiled with wallet
* wallet_bumpfee assertion fixup
* Use one node to avoid a race due to missing sync in rpc_signrawtransaction
* Properly raise FailedToStartError when rpc shutdown before warmup finished
* ci: Run unit tests sequential once
* Fix unregister_all_during_call cleanup
* Set -use_value_profile=1 when merging fuzz inputs
* Remove enumeration of expected deserialization exceptions in ProcessMessage(…) fuzzer
* Add test for conflicted wallet tx notifications
* Remove const to work around compiler error on xenial
Documentation
* Doxygen-friendly script/descriptor.h comments
* Add detailed info about Bitcoin Core files
* Doxygen-friendly CuckooCache comments
* move-only: Steps for "before major release branch-off"
* Update bips.md for default bech32 addresses in 0.20.0
* Fix Makefile target in benchmarking.md
* Add missing indexes/blockfilter/basic to doc/files.md
* Fix broken bitcoin-cli examples
* Add switch on enum example to developer notes
* Update macdeploy README to include all files produced by make deploy
* github: Add warning for bug reports
* Added instructions for how to add an upsteam to forked repo
* Add a note about backporting
* Correct function name in ReportHardwareRand()
* Describe log files + consistent paths in test READMEs
* Changed miniupnp links to https
* Add developer note on c_str()
* Bip70 removal follow-up
* Fix help-debug -checkpoints
* update MSVC instructions to remove Qt OpenSSL linking
* Add template for good first issues
* Fix some misspellings
* Add ShellCheck to lint tests dependencies
* Update doc/bips.md with recent changes in master
* Added regtest config for linearize script
* Add some better examples for scripted diff
* Remove bitness from bitcoin-qt help message and manpage
* Update and improve Developer Notes
* Changed MiniUPnPc link to https in dependencies.md
* Change doxygen URL to doxygen.bitcoincore.org
* Update release process with latest changes
* Unify unix epoch time descriptions
* script: Add keyserver to verify-commits readme
* Rename wallet-tool references to bitcoin-wallet
* Add "ci" prefix to CONTRIBUTING.md
* Use recommended shebang approach in documentation code block
* Fix directory path for secp256k1 subtree in developer-notes
* Mention PR Club in CONTRIBUTING.md
* Misc RPC help fixes
* Developer notes guideline on RPCExamples addresses
* Update dependencies.md
* Add to Doxygen documentation guidelines
* Fix improper Doxygen inline comments
* Improve fuzzing docs for macOS users
* Fix doxygen errors
* Add missing supported rpcs to doc/descriptors.md
* Add note about brew doctor
* Remove PPA note from release-process.md
* Minor grammatical changes and flow improvements
* Add missing step in win deployment instructions
* Add warning against wallet.dat re-use
* Correct spelling errors in comments
* interfaces: Describe and follow some code conventions
* Explain rebase policy in CONTRIBUTING.md
* Mention MAKE=gmake workaround when building on a BSD
* Replace remaining literal BTC with CURRENCY_UNIT
* Add fuzzing quickstart guides for libFuzzer and afl-fuzz
* Fix nit in getblockchaininfo
* Comment fix merkle.cpp
* note the costs of fetching all pull requests
* Update init and reduce-traffic docs for -blocksonly
* Block-relay-only vs blocksonly
* Explain new test logging
* Update webchat URLs in README.md
* Fix git add argument
* Correct scripted-diff example link
* Fix naming of macOS SDK and clarify version
Miscellaneous
* lockedpool: When possible, use madvise to avoid including sensitive information in core dumps
* Merge settings one place instead of five places
* On bitcoind startup, write config args to debug.log
* util: Replace boost sleep with std sleep
* util: Fix compilation errors in support/lockedpool.cpp
* scripts: In linearize, search for next position of magic bytes rather than fail
* Add some general std::vector utility functions
* contrib: Bump gitian descriptors for 0.20
* scripts: Update copyright_header script to include additional files
* util: Simplify path argument for cblocktreedb ctor
* random: Remove call to RAND_screen()
* util: Add check_nonfatal and use it in src/rpc
* Replace the LogPrint function with a macro
* util: Rename decodedumptime to parseiso8601datetime
* Feed environment data into RNG initializers
* contrib: Remove accounts from bash completion
* Add assertion to randrange that input is not 0
* log: Fix log message for -par=1
* linter: Strip trailing / in path for git-subtree-check
* scripts: Search for first block file for linearize-data with some block files pruned
* scripts: Lint gitian descriptors with shellcheck
* util: Disallow network-qualified command line options
* random: mark RandAddPeriodic and SeedPeriodic as noexcept
* Fix CPUID subleaf iteration
* util: Make schedulebatchpriority advisory only
* util: Remove unwanted fields from bitcoin-cli -getinfo
* script: Fixed wget call in gitian-build.py
* Make env data logging optional
* util: Don't allow base58 decoding of non-base58 strings. add base58 tests
* util: Change getwarnings parameter to bool
* util: Don't allow base32/64-decoding or parsemoney(…) on strings with embedded nul characters. add tests
* scripts: Read suspicious hosts from a file instead of hardcoding
* util: Avoid potential uninitialized read in formatiso8601datetime(int64_t) by checking gmtime_s/gmtime_r return value
* Fix a violation of C++ standard rules where unions are used for type-punning
* util: Fail to parse empty string in parsemoney
* util: Fail to parse whitespace-only strings in parsemoney(…)
* util: Helpexamplerpc formatting
* Fix missing header in sync.h
* script: Fix script_err_sig_pushonly error string
* util: Limit decimal range of numbers parsescript accepts
* init: Replace URL_WEBSITE with PACKAGE_URL
* Remove PID file at the very end
* Avoid non-trivial global constants in SHA-NI code
* Do not expose and consider -logthreadnames when it does not work
4.0 - 28 June 2020
o Screenshot: Change a Transaction Association Dialog
o Transaction assoc illustration: Symbols
o Update "Using Entry Shortcuts"
o Remove the register type group default setting description.
o New Bill: Fix some labels to match what the dialog displays.
o Document editing entries in an employee voucher.
o Document new default layout customization for Invoices and Bills.
o Fix docbook validity errors.
o New section in help: Associating and External File with a Transaction.
o Rewrite the New Accounts Hierarch Setup section.
o Document setting register column width layout.
o Fix obsolete guide cross-reference.
o Remove obsolete Docbook declaration comments from docs
3.11 - 28 June 2020
o Bug 770132 - Price editor does not find ASX:XROAmmend last commit
German translation Patch other translations Update pt
for easier synchronization
o Bug 797783 - [PATCH] The "over" and "under" estimate in the
unrealized capital gain chapter should be reversed.
o Right align numerical column in fq-spec-tiaa
o Fix obsolete guide cross-reference.
o Appendix: add "Ticker" to distinguish from security numbers
o Note on dots in yahoo symbols
o Minor Correction to Help ManualCorrect reconciliation action on
U+C entry in table from 'n' to 'c' Modification of PR #137.
o Improve links to Selingers tutorialsUse entities, also for titles
o Modifications to Guide Ch12 to include multi-currency transactions
using trading accounts.Split the multi-currency transaction after
the initial introduction into two sections. The first is the
original dealing with the treatment of multicurrency transactions
using manual recording of the gains and losses.
3.905 - 14 June 2020
o Bug 770132 - Price editor does not find ASX:XRO
o Bug 797783 - [PATCH] The "over" and "under" estimate in the
unrealized capital gain chapter should be reversed.
o L12N:it, pt update: Vanguard is part of AlphaVantage.
o Update fq-sources.html: asx source is working again.
Also explain why you need F::Q 1.41
o Tell travis to use ubuntu-18.04-docker file
o Appendix: add "Ticker" to distinguish from security numbers.
o Note on dots in yahoo symbols.
3.904 - 7 June 2020
No changes.
3.903 - 1 June 2020
o L10N of "Improve links to Selinger's tutorials"
o Minor Correction to Help ManualCorrect reconciliation action on
U+C entry in table from 'n' to 'c' Modification of PR #137
o Improve links to Selingers tutorialsUse entities, also for titles
o Modifications to Guide Ch12 to include multi-currency transactions
using trading accounts.Split the multi-currency transaction after
the initial introduction into two sections. The first is the original
dealing with the treatment of multicurrency transactions using
manual recording of the gains and losses. The second new section
deals with gains and loss treatment using trading accounts. Basic
introduction to trading account concepts added and an example of a
transfer of funds between accounts in different currencies is added.
o Minor imrovements on Invoice IDUnification of lists
o CI for gnucash-docs should be on Ubuntu 18.04 to match gnucash.
What's New in GnuCash 4.0
Major Highlights
A new Transaction Association dialog, available from the Update
Association for Transaction menu item that has replaced the two
association items in 3.x, allows setting, changing, and deleting
associations.
A symbol (paperclip for files, chain links for URLS) is now displayed
in the Associations column (visible in double-line mode) in the
register in place of the letters when a transaction has an
association. This doesn't work on MacOS.
Associations may now be added to bills, credit notes, invoices, and
vouchers. The actual association when present is added as a link
button which is shown below the notes.
New type-ahead search is added to sequential search when selecting an
account or an Action in the register: Instead of typing the first few
characters of a top level account, the separator, the first few
characters of the next level account and so on you may instead type a
few characters of any part of a full account name and the drop-list
will be filtered to contain only matching accounts. Once you have a
small enough list you can use the arrow keys to select the account
that you want.
Command-Line
A new separate executable, gnucash-cli (gnucash-cli.exe on Microsoft
Windows) for doing command-line things like updating the prices in
your book. gnucash-cli gains the ability to run reports from the
command line. Specify reports to run by name or guid. It also provides
an export format and an output file name without which it will output
the report to stdout.
gnucash-cli --report run --name=[reportname/guid] datafile.gnucash
gnucash-cli --report run --name=[reportname/guid] --output-file=x.html datafile.gnucash
gnucash-cli --report run --name=[reportname/guid] --output-file=x.html --export-type=TYPE datafile.gnucash
gnucash-cli --help will display a screen listing all of the available
commands and their options.
The GUI program, gnucash, still responds to the options it always has,
though --get-price-quotes is deprecated in favor of gnucash-cli
--quotes get.
Graphic User Interface
When creating a new account hierarchy it's now possible to load
account templates from locales other than the one set for the user
interface.
On the Choose Accounts to Create page there are two drop-downs above
the Account Types selector, one for language and one for country, the
choices in the latter depending on the former. The default is the
current locale but they may be used to select account templates from
any locale.
When deleting accounts the destination accounts of moved splits will
be checked to ensure that they have the same commodity as the source
account. If they don't you'll get a warning and the opportunity to
pick another account or to carry on regardless.
Reversing transactions will now pop a dialog box to request a posting
date.
Business Functions
Business Document Column Widths
Entry column widths in Invoices, Bills, and Employee Vouchers may now
be saved as defaults for each type of document.
Two menu items are added to the View menu when a Bill, Invoice, or
Voucher tab has focus: "Use as Default Layout for Vendor Documents" or
"Reset Default Layout for Vendor Documents"
Vendor Documents is for Bills and is replaced by Customer or Employee
Documents for Invoices or Vouchers respectively.
The first saves the current document's column widths and makes them
the default for all documents in the same type. The second menu item
removes the customization and documents of that type will therafter
use the computed default widths.
Importing Transactions
Support for AQBanking Version 6. This is required to support new FinTS
protocols for the European Payment Services Directive (PSD2).
The Import Map Editor (Tools>Edit Import Maps) will scan for Bayesian
associations with non-existent accounts and display a dialog offering
to remove any that are found. It also adds a button at the bottom of
the Import Map Editor to delete them if one chooses not to use the
dialog.
The OFX file importer can now import more than one file at a time.
OFX imports having balance information will now offer to immediately
reconcile, passing the balance information in the file to the
reconcile info.
The import transaction matcher window column headings are changed from
R to C and from U+R to U+C, reflecting that the matcher marks
transactions cleared but doesn't reconcile them.
Account matcher will decline to match accounts with a different
commodity from the imported split if the import information includes
the commodity.
Ellipsize the Description and Memo fields in the account matcher.
Reports
A new report menu supbmenu Multicolumn contains the old
custom-multicolumn report and a new Dashboard report containing
Account reports for expenses and income, an income-expense chart, and
an account summary.
Support for UK VAT and Australian GST have been added to the
Income-GST report. The report's options are changed from source
accounts to source sales and purchase accounts to permit proper
reporting of capital purchases. N.B. This is incompatible with
previous versions of the report and will require regenerating saved
configurations.
Budgets
Optionally include the account code option in budget view.
Enable adding notes to budgets.
Account codes may now optionally be displayed in the Budget Tree
View..
Compatibility
GnuCash 4.x will not migrate old gconf settings from GnuCash 2.4.x.
Customization and Scripting
The GnuCash widget hierarchy for CSS has been revised to be more
consistent with Gtk practice. You may need to spend some time with the
GtkInspector to get your custom CSS back the way you like it.
Python bindings are now localized and their strings available for
translation.
changes in 3.2.1:
- Fix regression with expression evaluation by reverting commit
`Correction to the way parens are parsed in query expressions`
- Fix --invert breakage by reverting commit `Change --invert to invert
displayed amounts and totals, not amounts`
- Fix performance regression by reverting commit `Compare price
annotations using their textual rendering`
- Fix library path issue
- Allow specifying the Python version
- Some documentation fixes
4.1.0
Add DisputeAccepted, DisputeDisputed, and DisputeExpired webhook constants
Add three_d_secure_pass_thru to CreditCard.create, CreditCard.update, PaymentMethod.create, PaymentMethod.update, Customer.create, and Customer.update.
Add Verification validation errors for 3D Secure
Add payment_method_token to CreditCardVerificationSearch
Add recurring_customer_consent and recurring_max_amount to authentication_insight_options for PaymentMethodNonce.create
Add FileIsEmpty error code
Eliminates usage of mutable objects for function parameters.
This package got its stock quotes from web sites that were active around
2000 and that no longer exist. It had not resolved the PREFIX
placeholder, which meant it could not even ask the web sites for the
quotes. Therefore chances are high that this package is not used by
anyone.
LibOFX 0.9.15:
- Fix segfault on uninitialized iconv
- Make file format less stringent
- Minor fixes in the build system
LibOFX 0.9.14:
- Fix proprietary tags striping eating the content of the previous tag if
proprietary tag is in the middle of the line
- Don't output invalid line numbers on the console before SGML processing starts
LibOFX 0.9.13:
- Fix potential heap overflow
- Fix crash on some malformed ofx files
- Fix crash in ofxconnect on missing command line arguments
- Fix for daylight savings time handling
- Easier compile on macos: obey LIBTOOLIZE env variable, and fallback to glibtoolize
- Fix compile on win32 (mingw-w64)
- Performance an reliability fixes in header parsing
- Strip CATEGORY tag added by Chase bank
LibOFX 0.9.12:
- Fix a buffer overflow on unexpected tag names.
LibOFX 0.9.11:
- Add support for client uid, from KDE bug 366326
These PLIST files have been autogenerated by mk/haskell.mk using
HS_UPDATE_PLIST=yes during a bulk build. They will help to track changes
to the packages. The Haskell packages didn't have PLIST files because
their paths contained package hashes. These hashes are now determined by
mk/haskell.mk, which makes it easy to generate easy to read PLIST files.
- Port Python support to Python 3
- Entities are no longer regarded as defined due to being part of a
cleared transaction. `--explicit` is effectively enabled by default
and is now a no-op (PR #1819)
- Add `--average-lot-prices` to show the average of lot prices
- Add support for `%F` date format specifier (bug #1775)
- Add `commodity_price(NAME, DATE)` function
- Add `set_commodity_price(NAME, DATE)` function
- Fix buffer overflow when evaluating date
- Fix balance assertions on accounts with virtual posts (bug #543)
- Fix segfault with `ledger print` (bug #1850)
- Ensure that `apply` directives (like `apply account`) have the
required argument (bug #553)
- Format annotations using a date format that can be parsed
- Change `--invert` to invert displayed amounts and totals, not amounts
(bug #1803)
- Correct the way parens are parsed in query expressions
- Compare price annotations using their textual rendering
- Fix build failure with utfcpp 3.0 (bug #1816)
- Fix build failure due to ambiguous type (bug #1833)
Changes
This is a snap release to reverse the changes to the reconcile
window's filtering reconciled transactions with a reconcile date
after the current statement date when computing the starting balance.
It seems that many users' books have accounts with reconcile dates
in the future that were suddenly filtered out, creating an incorrect
starting balance and making it impossible to reconcile the book.
Between 3.9 and 3.10, the following bugfixes were accomplished:
Bug 620848 - Transfer Funds window - add Notes field
Bug 797006 - Balance is misleading in open subaccounts when different currencies are involved
Bug 797318 - Amounts ending in zero displayed as fractions
Bug 797666 - libgnucash/engine/test/test-recurrence.c: In function 'check_valid': 'result' may be used uninitialized
Bug 797676 - Register displays amount in transaction currency instead of register currency.
Bug 797674 - 3.9: "test-gnc-path-util" failed on Debian amd64
The following fixes and improvements were not associated with bug reports:
Update latest translation from the Translation project.
[window-reconcile] when reconciling, warn on splits having a reconcile date > statement_date
[window-reconcile] when inputing statement_date, warn if it's after today
[find-transactions] add search for reconciled date
Show transaction value, not amount, for registers with subaccounts.
If the register has subaccounts in different currencies and a transaction has splits in more than one, the transaction will incorrectly appear to be unbalanced if we total amounts because the balancing logic works on split values.
Add instance argument to Session constructor
Enables a python console to connect to the running GnuCash's session.
Make python console less noisy without --debug.
Provide locals and globals of calling context to the python console's shell on shell init
Merge Jean Laroche's '797006_subaccounts' into maint.
Add check to display warning dialog for mismatched commodities
Replicate changes in *2 files
Apply astyle to modified files
Merge Chris Mayo's iPython-fixes into maint.
Make pycons/ishell.py compatible with Python 3 and current IPython
[eguile-utilities] Prevent crash in balsheet-eg.scm
[eguile] escape-html -> gnc:html-string-sanitize
[qif-to-gnc] Properly mark intra-QIF internal transfers.
We have a revised Ukrainian translation.
v0.11.0
Bech32 implementation
Segwit implementation (for P2WSH and P2WPKH transactions) and examples
Use libsecp256k1 for signing
Implement OP_CHECKSEQUENCEVERIFY
3.9 - 29 March 2020
The tenth release of the 3.x stable series.
The following bugs have been fixed:
Bug 685102 - Scheduled Transactions don't always respect weekends for
first occurrence
Bug 794916 - Fails to find environment file at startup when installation
prefix is '/opt
Bug 796579 - Cannot go forward with empty duplicates screen
Bug 796911 - Minimum window width to large.
To fix this the text labels used have been enabled to ellipsize
at the end
Bug 796984 - Import Bills & Invoices: date of line item is not validated;
can lead to unexpected results
Bug 796985 - Import Bills & Invoices: option 'open not yet posted docs in
tab' does not open tab if invoice could not be posted
Bug 796986 - Import Bills & Invoices: in case of invalid posting date
in import file, invoice is posted with unexpected date
Bug 796987 - Import Bills & Invoices: fixing import items only works
in special case
Bug 797022 - Import Bills & Invoices: expense/income account is not
validated - leads to one-sided posting if account is invalid
Bug 797023 - Import Bills & Invoices: no user confirmation requested
for update of invoices, if new invoice is created first
Bug 797024 - Import Bills & Invoices: import matches csv data rows with
too few separators, messing up the import data
Bug 797025 - Import Bills & Invoices: the type of the post to account
is not validated - enabling A/P and A/R postings on regular
accounts
Bug 797042 - OK button in OFX importer doesn't work if nothing is
imported.
Bug 797133 - CSV Import of multicurrency transaction export in multiline
form
Bug 797139 - test-report-utilities failure after 10-march in travis
Bug 797419 - equity-statement unrealized-gain calculator uses
weighted-average
Bug 797481 - crash on close of unsaved tabs by pressing [X]
Bug 797522 - Focus after reconcile jumps to a different account
Bug 797536 - cmake errors out because it cannot find GncPkgConfig
(cmake 3.5.2)
Bug 797540 - Mapping of aqbanking accounts to gnucash accounts doesn't
work
Bug 797546 - Autocomplete not updated when account names changed
Bug 797548 - multicolumn income statement: some closing entries are not
ignored when within reporting period
Bug 797549 - Reconcile window shows S_tatement Date rather than
Statement Date.
Bug 797550 - Crash when changing register tab position
Bug 797551 - Budget totals line missing in 3.8
Reinstate Income/Expense/Transfer/Total, but rename to:
* Inflow from Income
* Outflow to Expense
* Outflow to Asset/Equity/Liability
* Remaining to Budget
Bug 797566 - Crash on use of context menu in importer
Bug 797569 - Swedish account templates not accessible
Bug 797570 - Unable to import vendors.
In the import of Customer/Vendor or Bill/Invoice, the
dialog that lists rows that were not imported shows a
scrollable view of only four rows.
Bug 797572 - Customer Report (beta): "Period Totals" includes total debit
and credits outside the current period
Change to formal accounting convention. Can swap to informal
headers if set by global preference.
Bug 797573 - Incorrect value of securities in the Asset Chart
Bug 797576 - xaccAccountOrder shouldn't sort account codes as base-36
Bug 797583 - gnc:book-add-quotes crashes when there are no quotes
Bug 797584 - New-owner - bill amount field links to wrong account
Bug 797588 - Gnucash segfaults when using mysql backend with empty
password
Bug 797591 - multiperiod b/s and PnL reports: add style sheet 'easy'
Bug 797609 - Backtraces for eguile report errors strips wrong part of
stack
Bug 797613 - Due Invoices Reminder shows Job Name instead of Company
Name
Bug 797624 - At some point Vietnam Dong seemed to drop xu (decimals)
Bug 797631 - Superfluous account selection dialog on first online
retrieval
The online id, which is needed to find a GnuCash account
for a transaction or the balance retrieved from an online
account, is already assigned to each matched GnuCash
account within the Online Banking Setup tool. The online
id is removed from the GnuCash account if it is no longer
matched with an AqBanking account.
Bug 797636 - Incorrect Online account matches cannot be deleted
A push button with text "Delete selected matches" is added
to the "Match Online accounts with GnuCash accounts" page
of the "Online Banking Setup" tool. Additionally, the
underlying tree view is set to multiple selection mode
from single selection mode. Pushing the button will remove
the matched GnuCash account from all selected AqBanking
(Online) accounts.
Bug 797638 - SIGSEGV editing transaction after closing Find Accounts
dialog.
Bug 797640 - The Reconciliation Window starting balance calculator
needs to ignore splits after statement date
Bug 797648 - Cannot reconcile both splits of a transaction with 2 splits
for bank account subaccounts if only 1 is cleared
Force all splits in a transaction for the account being
reconciled and its children to have the same
reconciliation status.
Bug 797656 - Immediate crash when retrieving quotes
Other repairs or enhancements not marked as bugs:
[report-utilities] fix gnc:account-accumulate-at-dates sorting &
operator
This commit performs 2 important fixes:
1. The account splitlist walking assumes that the split->date always
increases. This is now enforced by sorting the splitlist, *only* if
a custom split->date is offered. By default the splits are sorted by
posted_date, and if a custom split->date is used, will be
stable-sorted to ensure the algorithm works.
2. The handling of splits *ON* date boundaries is fixed. Previously if
a split->date was equal to a date boundary, it would be considered
part of the "after" date section. It is more intuitive that a date
boundary includes all splits on and before the date.
When selecting a file for OFX import, restrict the files listed to .OFX
(or .QFX)
Fix crash when changing account-separator.
Change the default focus to search entry for 'Find Account'
Fix rounding precision when importing prices from CSV
[trep-engine] subtotals when cells have monetary only
Instead of accumulating subtotals from any non-#f value, ensure value
is a gnc-monetary before accumulating subtotals. This paves the way
to allow non-monetary in RHS custom-calculated-cells.
Travis - don't try to copy the removed after-failure file to the test
container
Travis - use ctest built-in feature to verbosely log test failures
Fix tokenize_string()to prevent empty strings as Bayes account-matching
tokens and remove duplicated tokens.
Fix calculation of Bayes account-matching token info to find exactly
matching tokens only.
Clear online banking KVP from accounts no longer associated with an online
one
Account template improvements for Swiss-German KMU and Germany SKR04.
Appdata file allows packagers to include distribution release information.
Ensure that new budgets are saved instead of saving only the state
information.
Update US Income Tax information for 2019.
Correct double-counting of accounts in some cases in US Income Tax
Report.
Housekeeping - reduce the number of PACKAGE and VERSION related cmake
variables
Restrict gnucash.pot comment collection to ones beginning with
"Translators". At the recommendation of the Translation Project
coordinator.
[html-table][API] html-table can have multirow-col-headers
* NEW API: gnc:html-table-multirow-col-headers and
gnc:html-table-set-multirow-col-headers! gnc:html-table col-headers
have been augmented to support list of <th> rows.
* BACKWARD COMPATIBILITY is offered. Old use of single-row headers API
gnc:html-table-col-headers and gnc:html-table-set-col-headers! should
be unchanged; will get/set a single row of <th> elements.
* NEW functions gnc:html-table-multirow-col-headers and
gnc:html-table-set-multirow-col-headers! will get/set an arbitrary
number of rows of <th> elements.
* using old API gnc:html-table-col-headers on a table, whose multiple
row headers have been set, will lead to a warning and return the first
row only.
Translations Updated: Croatian, German, Polish, Ukrainian.
0.19.1 change log
Wallet
* Fix origfee return for bumpfee with feerate arg
* Fix unique_ptr usage in boost::signals2
* Fix issue with conflicted mempool tx in listsinceblock
* Bug: IsUsedDestination shouldn't use key id as script id for ScriptHash
* IsUsedDestination should count any known single-key address
* Reset reused transactions cache
RPC and other APIs
* cli: Fix fatal leveldb error when specifying -blockfilterindex=basic twice
* require second argument only for scantxoutset start action
* zmq: Fix due to invalid argument and multiple notifiers
* psbt: handle unspendable psbts
* psbt: check that various indexes and amounts are within bounds
GUI
* Fix missing qRegisterMetaType for size_t
* disable File->CreateWallet during startup
* Fix comparison function signature
* Fix unintialized WalletView::progressDialog
Tests and QA
* Appveyor improvement - text file for vcpkg package list
* fix "bitcoind already running" warnings on macOS
* add missing #include to fix compiler errors
Platform support
* Update msvc build for Visual Studio 2019 v16.4
* Updates to appveyor config for VS2019 and Qt5.9.8 + msvc project fixes
* bug-fix macos: give free bytes to F_PREALLOCATE
Miscellaneous
* init: Stop indexes on shutdown after ChainStateFlushed callback
* util: Add missing headers to util/fees.cpp
* Unbreak build with Boost 1.72.0
* scripts: Fix symbol-check & security-check argument passing
* Log to net category for exceptions in ProcessMessages
* Update univalue subtree
From the web site <http://furius.ca/beancount/>:
Beancount is a double-entry bookkeeping computer language that lets
you define financial transaction records in a text file, read them
in memory, generate a variety of reports from them, and provides a
web interface.
4.0.0
Split development and deployments requirements files out
Add Authentication Insight to payment method nonce create
Add ThreeDSecure test payment method nonces
Add test AuthenticationIds
Add three_d_secure_authentication_id to three_d_secure_info
Add three_d_secure_authentication_id support for transaction sale
Breaking Changes
Require Python 3.5+
Remove deprecated Transparent Redirect
Remove deprecated iDeal payment method
Apple Pay register_domains returns an ApplePayOptions object
Remove unrecognized status from Transaction, Subscription, and CreditCardVerification
Remove GrantedPaymentInstrumentUpdate kind from Webhook
Remove Coinbase references
Add GatewayTimeoutError, RequestTimeoutError exceptions
Rename DownForMaintenanceError exception to ServiceUnavailableError
Transaction line_items only returns the line items for a transaction response object. Use TransactionLineItem find_all to search all line items on a transaction, given a transaction_id
Upgrade API version to retrieve declined refund transactions
Remove all deprecated parameters, errors, and methods
3.59.0
Add RefundAuthHardDeclined and RefundAuthSoftDeclined to validation errors
Fix issue where managing Apple Pay domains would fail in Python 3.8+
Add level 2 processing options purchase_order_number, tax_amount, and tax_exempt to Transaction.submit_for_settlement
Add level 3 processing options discount_amount, shipping_amount, ships_from_postal_code, line_items to Transaction.submit_for_settlement
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
3.58.0
Add support for managing Apple Pay domains
Fix error when running against Python 3.8
Add ProcessorDoesNotSupportMotoForCardType to validation errors
Add Graphql ID to CreditCardVerification, Customer, Dispute, and Transaction
pkglint --only "https instead of http" -r -F
With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.
This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
3.8 - 29 December 2019
Note for German FinTS users: This release includes the latest fixes
in support of the PSD2 changes. The Mac and Windows bundles include
the current beta releases of AQBanking and its support library needed
to work with most German banks' implementations of FinTS.
Translators, Note Well: The obsolete "disambiguation prefix" translator
comments are removed in favor of three-parameter gettext(). See
https://lists.gnucash.org/pipermail/gnucash-devel/2019-September/044199.html
The following bugs have been fixed:
Bug 412151 - Not handling exception when guile is compiled w/o regexp
support
Disable qif-import and make-regexp if guile is compiled
without regex.
Bug 724219 - Customer Summary includes Closing Entries when reporting
across the end of year
Bug 743943 - "Edit->Post Invoice" is ambiguous.
Bug 759005 - Print negatives in red.
Bug 787295 - Allow UI jump from Business accounts to their relevant
invoice/bill/voucher
Bug 796530 - [txn csv importer] usability suggestions
Bug 796736 - Register cell pop up columns width to narrow
Bug 796945 - Find Transaction Split Search Search Criteria window does
not scroll when added criteria exceed a certain amount
Bug 797078 - "Automatic decimal point" Should Not Cause 2 Different
Behaviors
Bug 797086 - Import customer dialog – headers not translated
Bug 797279 - Reports RTL do not support RTL
Bug 797326 - Enhancement: budget's Estimate tool should ignore Closing
Entries
Bug 797356 - ninja check fails with GCC-9
Bug 797390 - xaccAccountRecomputeBalance also tallies no-closing
balances
Bug 797397 - Import Map Editor - Deletion not limited by current filter.
Bug 797401 - Invoice Reports need an overall page width set
Bug 797405 - HBCI Import PIN entry window is hidden behind log window,
program stuck
Bug 797408 - Find Transaction Window -> Search Criteria Section -> Add
Search Criteria -> Section does not expand to new size to
include a newly added Search Criteria
Bug 797416 - Enter key does not move to blank tx or next line
Bug 797418 - In budget report, column with Actual Totals for
Liabilities and Income are reversed
Bug 797430 - SEPA transfers are not executed
Avoid double init of gui Patch by Mike Pieper. Thanks!
Bug 797453 - Chart of Accounts is slow to update / redraw
Bug 797459 - Installation (for 3.7) Readme Version number shows 2.2.x
Bug 797462 - gnc:strify reports the amount and value incorrectly
Bug 797473 - UTF8 characters not processed correctly with aqbanking6
Bug 797481 - crash on close of unsaved tabs by pressing [X]
Bug 797482 - Can't edit date when using Edit Payment function
Bug 797492 - Lock up on 'Find Account'
Bug 797500 - valgrind errors - new/delete vs malloc/free
Bug 797506 - New Aging errors out with guile backtrace in case of a few
uncommon transactions
Bug 797519 - Budget Viewer Totals do not redraw upon to Sign-Reversal
changes
Bug 797520 - Balance Sheet (Multicolumn) the retained earnings amount
in the equity section has its sign reversed
Bug 797521 - Receivable Aging (beta): include earliest split
Bug 797521 - Receivable Aging (beta): prepayments logic doesn't work,
appears to use incorrect absolute value logic
Bug 797532 - Crash/Coredump Lots
Other repairs or enhancements not marked as bugs:
The Customer/Employee/Vendor reports have been rewritten. The new
versions may be found in Reports>Experimental.
[stylesheet-css] a user-customisable CSS based stylesheet
New stylesheet. Exposes a single text box for full CSS
customisability.
Allow account selection by typing into the post-to field of the payment
window
When sizing some register columns take account of 'Tot' being added.
Take account for the pop up button border in the register.
Change the date sample so it has the maximum text width possible
[new-owner-report] bugfix: balance row needs variable linked cols
Improve translations by scriptedly removing the removed colon suffix.
[report-utilities] bugfix: aging-list was incorrect. off-by-1 error.
[report-utilities] bugfix: overpayment works for AP accounts.
Swap the buttons around on the Budget Open dialogue
Swap the OK and Cancel buttons so they conform to the normal layout.
[report-utilities] bugfix: fix overpayment detection
For 1 payment to >1 invoices, previously would miscalculate
overpayment.
[budgets.scm] Budget reports handle both natural & reversed budgets.
This change is protected by a Feature: Using it will prevent the file
from being opened by earlier versions of GnuCash.
[gnc-budget-view.c] totals - 5 fundamental types
previous showed income/expense/transfers/totals budget totals, of
uncertain meaning. now shows income/expense/asset/liability/equity
budget totals. The 5 lines also become sensitive to the global
sign-reverse property.
bindings-python - drop references to gnucash-env
We no longer ship a gnucash-env script, directly use python(3)
instead
[balsheet-pnl] fix: single-date balsheet missed printing date
[balsheet-pnl] fix: hide Equity sections when not needed
* If currencies are not converted, Unrealized Gains are meaningless.
Hide them. * If there are no income/expense accounts, retained
earnings will be nil. Remove row.
Ignore trailing noise on imported transaction account numbers.
AQBanking6 uses a separate method for retrieving account numbers for
account info and transactions, where the transactions method can have
additional characters, most often the ISO4217 currency code. That
results in match failures when importing. As a work-around, compare
only the length of the account-info-generated online id when
comparing it to the transaction-generated one. Note that this is only
a partial solution: At least one German bank also appends characters
to the transaction-generated bank id and that will still cause the
match to fail.
[dialog-payment] Add warning label if payment is unattached
Completing a payment for a customer without associating with an open
invoice is allowable and is used for prepayments. Enable a warning to
inform that the payment does not have an invoice/bill document attached.
[aging] update error reporting
This error handling was for transactions in APAR accounts whereby
Transaction Currency != Owner Currency. An example is a manually
entered transaction, then assigned as payment to a customer with a
different currency. Update to modern API calls. Show the culprit
split details. Fixed example output: IGNORING TRANSACTION! Invoice
Owner: [None:] Transaction:Txn<d:28/10/19> Splits are:
Split<d:28/10/19,acc:Current,amt:$150.00,val:£150.00>
Split<d:28/10/19,acc:AR,amt:$0.00,val:-£150.00> Transaction
Currency:GBP Client Currency:AUD
Fixed German IBAN error message
Allow edit of some fields for posted invoice
Allow editing of some fields for posted invoice. For reasons, see bug
report: https://bugs.gnucash.org/show_bug.cgi?id=797400
[average-balance] show monetaries instead of numbers in data table
UK VAT template: replace obsolete EEC and EC by EU
Implements the presentation of static optical TAN challenges (photoTAN
and QR) inside the enter TAN dialogue.
[budget] fixcrash: fix crasher for some periods
eg. the following combo would previously crash: - periods from next
to current - use accumulated amounts
[budget] fixcrash: prevent crash if periods start > end
It's silly to input start-period > end-period. Nevertheless handle it
by swapping them instead of crashing. i.e. report budget periods from
end to start.
[budget-flow] fixcrash: exchange-fn needs to specify exchange date
because some exchange-fn *do* require date eg. pricedb-nearest. use
the period end-date for the exchange date.
[portfolio report] There's no report-currency. Use currency.
[window-report] show backtrace when report crashes
* exposes a SCM string last-captured-error containing last backtrace
* when rendering report-crash window, include it
New Scheme Functions:
gnc:html-markup-ol: creates an HTML ordered list.
gnc:multiline-to-html-textt: creates html-text with <br/> elements.
gnc:make-html-table-cell/min-width: Create a table-cell with min-width
style attribute
gnc:collector+ and gnc:collector-
New Deprecations:
gnc:html-table-append-ruler/at!
gnc:html-table-remove-last-row!
2.41.1:
* Fix uploading files with Unicode names (Python 2.7)
* Update Python API docs inline link
* Update `proxy.py`
2.41.0:
* Add support for `CreditNote` preview
2.40.0:
* Add list_usage_record_summaries and list_source_transactions
2.39.0:
* Add support for `Mandate`
2.38.0:
* Add support for reverse pagination
* Contributor Convenant
2.37.2:
* Implement support for stripe-should-retry and retry-after headers
2.37.1:
* Check that `error` is a dict before trying to use it to create a `StripeError`
2.37.0:
* Add `ErrorObject` to `StripeError` exceptions
* Pass `CFLAGS` and `LDFLAGS` when running tests
2.36.2:
* Use `OrderedDict` to maintain key order in API requests and responses
2.36.1:
* Use `ListObject` properties as default values in request methods
2.36.0:
* Add support for header parameters in `ListObject` request methods
AuthServiceProxy is an improved version of python-jsonrpc.
It includes the following generic improvements:
* HTTP connections persist for the life of the AuthServiceProxy object
* sends protocol 'version', per JSON-RPC 1.1
* sends proper, incrementing 'id'
* uses standard Python json lib
* can optionally log all RPC calls and results
* JSON-2.0 batch support
It also includes the following bitcoin-specific details:
* sends Basic HTTP authentication headers
* parses all JSON numbers that look like floats as Decimal, and serializes
Decimal values to JSON-RPC connections.
0.19.0.1:
Notable changes
New user documentation
Reduce memory suggests configuration tweaks for running Bitcoin Core on systems with limited memory.
New RPCs
getbalances returns an object with all balances (mine, untrusted_pending and immature). Please refer to the RPC help of getbalances for details. The new RPC is intended to replace getbalance, getunconfirmedbalance, and the balance fields in getwalletinfo. These old calls and fields may be removed in a future version.
setwalletflag sets and unsets wallet flags that enable or disable features specific to that existing wallet, such as the new avoid_reuse feature documented elsewhere in these release notes.
getblockfilter gets the BIP158 filter for the specified block. This RPC is only enabled if block filters have been created using the -blockfilterindex configuration option.
New settings
-blockfilterindex enables the creation of BIP158 block filters for the entire blockchain. Filters will be created in the background and currently use about 4 GiB of space. Note: this version of Bitcoin Core does not serve block filters over the P2P network, although the local user may obtain block filters using the getblockfilter RPC.
Updated settings
whitebind and whitelist now accept a list of permissions to provide peers connecting using the indicated interfaces or IP addresses. If no permissions are specified with an address or CIDR network, the implicit default permissions are the same as previous releases. See the bitcoind -help output for these two options for details about the available permissions.
Users setting custom dbcache values can increase their setting slightly without using any more real memory. Recent changes reduced the memory use by about 9% and made chainstate accounting more accurate (it was underestimating the use of memory before). For example, if you set a value of "450" before, you may now set a value of "500" to use about the same real amount of memory.
Updated RPCs
Note: some low-level RPC changes mainly useful for testing are described in the Low-level Changes section below.
sendmany no longer has a minconf argument. This argument was not well-specified and would lead to RPC errors even when the wallet's coin selection succeeded. Users who want to influence coin selection can use the existing -spendzeroconfchange, -limitancestorcount, -limitdescendantcount and -walletrejectlongchains configuration arguments.
getbalance and sendtoaddress, plus the new RPCs getbalances and createwallet, now accept an "avoid_reuse" parameter that controls whether already used addresses should be included in the operation. Additionally, sendtoaddress will avoid partial spends when avoid_reuse is enabled even if this feature is not already enabled via the -avoidpartialspends command line flag because not doing so would risk using up the "wrong" UTXO for an address reuse case.
RPCs which have an include_watchonly argument or includeWatching option now default to true for watch-only wallets. Affected RPCs are: getbalance, listreceivedbyaddress, listreceivedbylabel, listtransactions, listsinceblock, gettransaction, walletcreatefundedpsbt, and fundrawtransaction.
listunspent now returns a "reused" bool for each output if the wallet flag "avoid_reuse" is enabled.
getblockstats now uses BlockUndo data instead of the transaction index, making it much faster, no longer dependent on the -txindex configuration option, and functional for all non-pruned blocks.
utxoupdatepsbt now accepts a descriptors parameter that will fill out input and output scripts and keys when known. P2SH-witness inputs will be filled in from the UTXO set when a descriptor is provided that shows they're spending segwit outputs. See the RPC help text for full details.
sendrawtransaction and testmempoolaccept no longer accept a allowhighfees parameter to fail mempool acceptance if the transaction fee exceeds the value of the configuration option -maxtxfee. Now there is a hardcoded default maximum feerate that can be changed when calling either RPC using a maxfeerate parameter.
getmempoolancestors, getmempooldescendants, getmempoolentry, and getrawmempool no longer return a size field unless the configuration option -deprecatedrpc=size is used. Instead a new vsize field is returned with the transaction's virtual size (consistent with other RPCs such as getrawtransaction).
getwalletinfo now includes a scanning field that is either false (no scanning) or an object with information about the duration and progress of the wallet's scanning historical blocks for transactions affecting its balances.
gettransaction now accepts a third (boolean) argument verbose. If set to true, a new decoded field will be added to the response containing the decoded transaction. This field is equivalent to RPC decoderawtransaction, or RPC getrawtransaction when verbose is passed.
createwallet accepts a new passphrase parameter. If set, this will create the new wallet encrypted with the given passphrase. If unset (the default) or set to an empty string, no encryption will be used.
getchaintxstats RPC now returns the additional key of window_final_block_height.
getmempoolentry now provides a weight field containing the transaction weight as defined in BIP141.
The getnetworkinfo and getpeerinfo commands now contain a new field with decoded network service flags.
getdescriptorinfo now returns an additional checksum field containing the checksum for the unmodified descriptor provided by the user (that is, before the descriptor is normalized for the descriptor field).
joinpsbts now shuffles the order of the inputs and outputs of the resulting joined PSBT. Previously, inputs and outputs were added in the order PSBTs were provided. This made it easy to correlate inputs to outputs, representing a privacy leak.
walletcreatefundedpsbt now signals BIP125 Replace-by-Fee if the -walletrbf configuration option is set to true.
GUI changes
The GUI wallet now provides bech32 addresses by default. The user may change the address type during invoice generation using a GUI toggle, or the default address type may be changed with the -addresstype configuration option.
In 0.18.0, a ./configure flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now disabled by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass --enable-bip70 to ./configure.
Deprecated or removed configuration options
-mempoolreplacement is removed, although default node behavior remains the same. This option previously allowed the user to prevent the node from accepting or relaying BIP125 transaction replacements. This is different from the remaining configuration option -walletrbf.
Deprecated or removed RPCs
bumpfee no longer accepts a totalFee option unless the configuration parameter deprecatedrpc=totalFee is specified. This parameter will be fully removed in a subsequent release.
bumpfee has a new fee_rate option as a replacement for the deprecated totalFee.
generate is now removed after being deprecated in Bitcoin Core 0.18. Use the generatetoaddress RPC instead.
P2P changes
BIP 61 reject messages were deprecated in v0.18. They are now disabled by default, but can be enabled by setting the -enablebip61 command line option. BIP 61 reject messages will be removed entirely in a future version of Bitcoin Core.
To eliminate well-known denial-of-service vectors in Bitcoin Core, especially for nodes with spinning disks, the default value for the -peerbloomfilters configuration option has been changed to false. This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service flag, accepting BIP37 bloom filters, or serving merkle blocks or transactions matching a bloom filter. Users who still want to provide bloom filter support may either set the configuration option to true to re-enable both BIP111 and BIP37 support or enable just BIP37 support for specific peers using the updated -whitelist and -whitebind configuration options described elsewhere in these release notes. For the near future, lightweight clients using public BIP111/BIP37 nodes should still be able to connect to older versions of Bitcoin Core and nodes that have manually enabled BIP37 support, but developers of such software should consider migrating to either using specific BIP37 nodes or an alternative transaction filtering system.
By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out.
Miscellaneous CLI Changes
The testnet field in bitcoin-cli -getinfo has been renamed to chain and now returns the current network name as defined in BIP70 (main, test, regtest).
v0.10.2
Note: this will be the last release of python-bitcoinlib with Python 2.7 compatibility.
New RPC generatetoaddress(self,numblocks,addr).
Fixed Python 2.7 incompatibility.
Various OpenSSL fixes, including a memory leak.
v0.10.1
Identical in every way to v0.10.0, but re-uploaded under a new version to fix a PyPi issue.
v0.10.0
Minor breaking change: RPC port for regtest updated to the new v0.16.0 default.
Other changes:
Now looks for .cookie files in the datadir, if specified.
Authentication in a RPC service_url is now parsed.
Implemented bip-0037 version message.
contrib/verify-commits/ removed for now due to breakage.
v0.9.0
Now supports segwit, which breaks the API in minor ways from v0.8.0. This version introduces lots of new API functionality related to this, such as the new CScriptWitness, CTxInWitness, CTxWitness, new segwit-specific logic in SignatureHash() etc.
v0.8.0
Major breaking API change!
While this interim release doesn't by itself include segwit support, it does change the name of the CTransaction/CMutableTransaction method GetHash() to GetTxid() to prepare for a future segwit-enabled release. Incorrect calls to GetHash() will now raise a AttributeError exception with an explanation.
Since this release doesn't yet include segwit support, you will need to set the Bitcoin Core -rpcserialversion=0 option, either as a command line argument, or in your bitcoin.conf file. Otherwise the RPC interface will return segwit-serialized transactions that this release's RPC support doesn't understand.
Other changes:
Cookie file RPC authentication is now supported.
msg_header now correctly uses CBlockHeader rather than CBlock.
RPC getbalance now supports include_watchonly
RPC unlockwallet is now supported
v0.7.0
Breaking API changes:
The 'cooked' CScript iterator now returns OP_0 for the empty binary string rather than b''
The alias JSONRPCException = JSONRPCError has been removed. This alias was added for compatibility with v0.4.0 of python-bitcoinlib.
Where appropriate, RPC_INVALID_ADDRESS_OR_KEY errors are now caught properly, which means that rather than raising IndexError, RPC commands such as getblock may raise JSONRPCError instead. For instance during initial startup previously python-bitcoinlib would incorrectly raise IndexError rather than letting the callee know that RPC was unusable. Along those lines, JSONRPCError subclasses have been added for some (but not all!) of the types of RPC errors Bitcoin Core returns.
Bugfixes:
Fixed a spurious AttributeError when bitcoin.rpc.Proxy() fails.
v0.6.1
New features:
getblockheader RPC call now supports the verbose option; there's no other way to get the block height, among other things, from the RPC interface.
subtoaddress and sendmany RPC calls now support comment and subtractfeefromamount arguments.
v0.6.0
Breaking API changes:
RPC over SSL support removed to match Bitcoin Core's removal of RPC SSL support in v0.12.0 If you need this, use an alternative such as a stunnel or a SSH tunnel.
Removed SCRIPT_VERIFY constants bitcoin.core.script, leaving just the constants in bitcoin.core.scripteval; being singletons the redundant constants were broken anyway.
SCRIPT_VERIFY_EVEN_S renamed to SCRIPT_VERIFY_LOW_S to match Bitcoin Core's naming
SCRIPT_VERIFY_NOCACHE removed as Bitcoin Core no longer has it (and we never did anything with it anyway)
v0.5.1
Various small bugfixes; see git history.
New features:
New RPC calls: fundrawtransaction, generate, getblockheader
OP_CHECKLOCKTIMEVERIFY opcode constant
v0.5.0
Major fix: Fixed OpenSSL related crashes on OSX and Arch Linux. Big thanks to everyone who helped fix this!
Breaking API changes:
Proxy no longer has __getattr__ to support arbitrary methods. Use RawProxy or Proxy.call instead. This allows new wrappers to be added safely. See docstrings for details.
New features:
New RPC calls: getbestblockhash, getblockcount, getmininginfo
Signing and verification of Bitcoin Core compatible messages. (w/ pubkey recovery)
Tox tests
Sphinx docs
Notable bugfixes:
getinfo() now works where disablewallet=1
v0.4.0
Major fix: OpenSSL 1.0.1k rejects non-canonical DER signatures, which Bitcoin Core does not, so we now canonicalize signatures prior to passing them to OpenSSL. Secondly we now only generate low-S DER signatures as per BIP62.
API changes that might break compatibility with existing code:
MAX_MONEY is now a core chain parameter
MainParams now inherits from CoreMainParams rather than CoreChainParams
str() now returns hash:n format; previously was same as repr()
RawProxy() no longer has _connection parameter
Notable bugfixes:
MsgSerializable.to_bytes() no longer clobbers testnet params
HTTPS RPC connections now use port 443 as default
No longer assumes bitcoin.conf specifes rpcuser
New features:
New RPC calls: dumpprivkey, importaddress
Added P2P support for msg_notfound and msg_reject
Added support for IPv6 addr messages
3.57.1
Set correct version for PyPi
3.57.0
Forward processor_comments to forwarded_comments
Add Venmo 'TokenIssuance' gateway rejection reason
Add AmountNotSupportedByProcessor to validation error
The following bugs have been fixed:
Bug 605602 - precision of Financial Calculator seems to depend on
locale
Bug 746937 - Template transaction splits are loaded in reverse order
and then not sorted before saving. Actually not sorted
after loading because the template accounts weren't being
committed.
Bug 752395 - Start Day of weekly report doesn't respond to change in
locale
Redefines some functions to ensure weekly grouping in
transaction report obeys locale's start-of-week.
Bug 784623 - GNUCash does not work with sql backend, I can open
in read only mode. Upgrade the splits table as well, an
oversight from the original fix.
Bug 793018 - Balance (with >>eguile<<) - Report Title can't be changed
Bug 795251 - googletest detection cannot be overridden
Bug 796819 - bad icon with Spanish localization
Temporary fix for Farsi, which was afffected, too. As it
is maintained by TP, the final fix has to come from them.
Bug 796952 - Report formatting (justify) is broken
Previous patch reverted and replaced with a more correct one.
Bug 797085 - Import Bills & Invoices – headers not translated.
Make strings translatable. Translators: This adds 22 new
translatable strings.
Bug 797158 - gnc:make-account-sel-limited-option is not working
Option was being deliberately reset to default_value every
time.
Bug 797171 - Allow multiple credit/debit columns to be selected
Bug 797279 - Reports RTL do not support RTL - fix reports
Bug 797279 - Reports RTL do not support RTL - fix string
fix guile-2.0 string handling to prevent munging unicode
in report-titles etc. while loading/saving reports
Bug 797295 - problems with entering swedish åäö in company address
Bug 797297 - GNUCash is in English even though MacOS is set-up to
French.
Bug 797301 - Register Menu View > Refresh doesn't work in 'with
sub-accounts' window
Bug 797306 - "URL cannot be shown" when one clicks an account line
link in report.
Bug 797316 - New Mauritanian ouguiya MRU not supported
Bug 797319 - Mauritanian ouguiya MRO shows too few decimals
Bug 797339 - Online banking frame to small
Bug 797349 - "A"ssociate header badly translated.
Note to translators: This is about msgids of the form
"Associate:A". The correct msgstr includes the part up to
the ':' verbatim with only the part to the right of it
tranlated, e.g. "Associate:П" from uk.po. Each such msgstr
has a comment explaining this.
Bug 797353 - Add copyright and release info in appdata file
Bug 797355 - General Journal report seems to be off balance
Previously, for general-journal, each split was being
analyzed, and only the source split was counted for
totals. This change will means the source split *and* its
peers are accounted for.
Bug 797377 - cmake fails on debian-8 and ubuntu-14.04 with
gnucash.appdata.xml.in does not exist
Bug 797378 - QIF file import fails: Loading gives wrong type argument
in position 2
Bug 797389 - Random Crashes while attaching a document.
Other repairs or enhancements not marked as bugs:
New feature: Multiselection in the import transaction matcher. Use
control-left-click, shift-left-click, or click-and-drag to select
multiple unmatched transactions to match them with a single account,
then right-click to bring up a single-item context menu sith
"Assign Transfer Account".
Set a FinTS product version key when the installed AQBanking supports it.
Reworking of many translatable strings with context to use the modern
gettext three-parameter function instead of the ':' hack noted in
bug 797349.
Stop duplicate entries for the invoice taxtable cell
Do not log an error when no default tax tables are set.
Fix cmake dependency tree so that make/ninja check works without having
to first run make/ninja.
Remove the accelerator for the Clear buttons on the Loan Calculator
because they were all the same and also the same as the Close button's
accelerator.
Change the transfer account notation for single-split transactions in
basic view from "--Split Transaction--" (they're obviously not) to "None".
Correctly parse decimal values between 0 and -1 (e.g. -0.5) in register
caclulations: The negative sign was being stripped.
Require CMake 3.5 or later for all platforms.
Rework the building of libgtest.a from source when the builder sets
GTEST_ROOT or the distro doesn't provide a pre-build one.
Fix crash when trying to display a tooltip in the register split view
when a split has focus.
Fix repeated requests to create a new account when you click No.
Suppress bogus error when creating a new account from register split view.
Fix price conversion report crashes in Balance Sheet PNL and all
average balance calculations.
Upgrade the Budget reports to support accumulated accounts.
Redefine gnc:debug to use QofLog instead of writing to stdout.
Change the Balance Sheet PNL account depth to mean the deepest *selected*
account rather than the deepest account.
Set the Owner Report date option to default to today.
Much Scheme cleanup and more testing.
Deprecated API:
gnc:html-acct-table-cell - Unused.
gnc:make-general-journal-report - Unused.
gnc:easy-invoice-report-create-internal - Unused.
gnc:fancy-invoice-report-create-internal - Unused.
make-simple-class - Use make-record-type
simple-obj-getter - Use record-accessor
simple-obj-setter - Use record-modifier
simple-obj-print - Use write
simple-obj-to-list - Use record-type->list
simple=obj-from-list-obj - Use list-record-type
make-simple-obj - Use construct
gnc:time64-le-date - Unused
gnc:time64-ge-date - Unused
gnc:make-reldate-hash - Unused
gnc:get-relative-date-strings - Unused
gnc:entry-type-percent-p
gnc:make-customer-option - Unused
gnc:make-vendor-option - Unused
gnc:make-employee-option - Unused
gnc:html-build-acct-table - Unused
gnc:html-acct-table-comm-row-helper - Unused
gnc:sum-collector-stocks - Unreachable
Updated Translations: German, Hebrew, Ukrainian,
New Account Templates: Hebrew-Israel
0.18.1
P2P protocol and network code
- Add tests and documentation for blocksonly
- Avoid logging transaction decode errors to stderr
- fix: tor: Call `event_base_loopbreak` from the event's callback
- Make poll in InterruptibleRecv only filter for POLLIN events
Wallet
- Add -ignorepartialspends to list of ignored wallet options
RPC and other APIs
- Bugfix: fix pruneblockchain returned prune height
- Document iswitness flag and fix bug in converttopsbt
- Ensure that uncompressed public keys in a multisig always returns a legacy address
- Disallow extended encoding for non-witness transactions
- add 2nd arg to signrawtransactionwithkey examples
- signrawtransactionwithkey: report error when missing redeemScript/witnessScript
GUI
- fix the bug of OPEN CONFIGURATION FILE on Mac
- Show "No wallets available" in open menu instead of nothing
- Enable open wallet menu on setWalletController
- Set progressDialog to nullptr
- Fix open wallet menu initialization order
- Set `AA_EnableHighDpiScaling` attribute early
- Enable console line edit on setClientModel
- Assert QMetaObject::invokeMethod result
Build system
- Add test for GCC bug 90348
- Install bitcoin-wallet manpage
- build with -fstack-reuse=none
Tests and QA
- Pure python EC
- Add test for superfluous witness record in deserialization
- Bugfix: test/functional/rpc_psbt: Remove check for specific error message that depends on uncertain assumptions
- Add test that addmultisigaddress fails for watchonly addresses
Documentation
- Remove text about txes always relayed from -whitelist
Miscellaneous
- Catch by reference not value in wallettool
- Replace fprintf with tfm::format
2.35.1:
* Fix automatic retries of failed requests
* Clarify what `max_network_retries` does
2.35.0:
* Add `SubscriptionItem.create_usage_record` method
2.34.0:
* Remove subscription schedule revisions
- This is technically a breaking change. We've chosen to release it as a minor vesion bump because the associated API is unused.
2.33.2:
* Add support for passing full objects instead of IDs to custom methods
* Bump vendored six to latest version
2.33.1:
* Fix `del` statement to not raise `KeyError`
2.33.0:
* Listing `BalanceTransaction` objects now uses `/v1/balance_transactions` instead of `/v1/balance/history`
2.32.1:
* Fix argument name conflict
2.32.0:
* Add support for the `SetupIntent` resource and APIs
2.31.0:
* Enable request latency telemetry by default
2.30.1:
* Fix support for `CustomerBalanceTransaction`
2.30.0:
* Add support for `CustomerBalanceTransaction` resource and APIs
2.29.4:
* Remove Poetry and reinstate `setup.py`
2.29.3:
Version 2.29.2 was non-functional due to a bugged `version.py` file. This release is identical to 2.29.2 save for the version number.
2.29.2:
* Replace pipenv with poetry
2.29.1:
* Verify signatures before deserializing events
2.29.0:
* Add support for `radar.early_fraud_warning` resource
2.28.2:
* Fix a few more code quality issues
2.28.1:
* Fix a few code quality issues
2.28.0:
* Add support for the `Capability` resource and APIs
3.56.0:
Add PayPalHere details
Add networkResponseCode and networkResponseText to transactions and verifications
Add cavv, xid, ds_transaction_id, eci_flag, and three_d_secure_version, to three_d_secure_info
Add three_d_secure_info to credit_card_verification
Add GraphQLClient to BraintreeGateway class
Covers many important models used in marketing and micro-econometrics
applications. The package includes: Bayes Regression (univariate or
multivariate dep var), Bayes Seemingly Unrelated Regression (SUR),
Binary and Ordinal Probit, Multinomial Logit (MNL) and Multinomial
Probit (MNP), Multivariate Probit, Negative Binomial (Poisson)
Regression, Multivariate Mixtures of Normals (including clustering),
Dirichlet Process Prior Density Estimation with normal base,
Hierarchical Linear Models with normal prior and covariates,
Hierarchical Linear Models with a mixture of normals prior and
covariates, Hierarchical Multinomial Logits with a mixture of normals
prior and covariates, Hierarchical Multinomial Logits with a Dirichlet
Process prior and covariates, Hierarchical Negative Binomial
Regression Models, Bayesian analysis of choice-based conjoint data,
Bayesian treatment of linear instrumental variables models, Analysis
of Multivariate Ordinal survey data with scale usage heterogeneity (as
in Rossi et al, JASA (01)), Bayesian Analysis of Aggregate Random
Coefficient Logit Models as in BLP (see Jiang, Manchanda, Rossi 2009)
For further reference, consult our book, Bayesian Statistics and
Marketing by Rossi, Allenby and McCulloch (Wiley 2005) and Bayesian
Non- and Semi-Parametric Methods and Applications (Princeton U Press
2014).
The canonical form [1] of an R package Makefile includes the
following:
- The first stanza includes R_PKGNAME, R_PKGVER, PKGREVISION (as
needed), and CATEGORIES.
- HOMEPAGE is not present but defined in math/R/Makefile.extension to
refer to the CRAN web page describing the package. Other relevant
web pages are often linked from there via the URL field.
This updates all current R packages to this form, which will make
regular updates _much_ easier, especially using pkgtools/R2pkg.
[1] http://mail-index.netbsd.org/tech-pkg/2019/08/02/msg021711.html
3.6 - 30 June 2019
The seventh release of the 3.x stable series.
The following bugs have been fixed:
Bug 397927 - QIF Import: Usability: Remember window position and size
Bug 577968 - Values are not stored by pressing <TAB> in budget page
Bug 583277 - Cancel button closes QIF importer without confirmation
Bug 624176 - budget report - option for showing sum is ignored
Bug 642824 - Different actions like QIF import, other imports and...
closing book allow to assign transactions to placeholder...
accounts
Placeholder accounts do not allow transactions so when the
account picker dialog is presented, add an error dialog
for placeholder selection and a column to display that the
account is a placeholder.
Bug 646361 - Estimate budget should give option to have same amount...
in each budget period
Bug 668349 - Select Account does not return user to correct location...
in "Match payee/memos to GNUCash Accounts" screen
Bug 676810 - Wrong accounting in multi-currency budget report
Bug 679800 - Shortcut to allow population of all budgeting periods
Bug 689753 - Budget Report: Negative Numbers Not Colored Red
Bug 728873 - Account name does not focus automatically in QIF import...
assistant
Bug 751290 - Rethinking the invoice ledger view
Bug 754710 - Add column sorting to Qif import Match views
Bug 781345 - Equity disregarded by budget totals
Bug 788157 - Open Budget Menu Item Doesn't Select Default Budget
Bug 796949 - Incorrect conversion of 0,01 USD to EUR
Bug 797051 - Price Database Add Overwrites Data Without Confirmation
Bug 797089 - In the main Account Register window, the value shown...
under 'Total (Period)' excludes any transaction with date...
equal to the end date of the reporting period.
Bug 797104 - Translations not showing in receipt options
Bug 797123 - File->Export Transactions to CSV doesn't output...
transaction data
Bug 797126 - It is annoying to run cmake to get an updated mo file
Bug 797127 - Company name and address in reports not display properly
Bug 797134 - Decimal separator: Windows configured as dot,...
Gnucash shows comma.
Bug 797165 - Deleting an old quote from Price Database Core Dumps Gnucash
Bug 797169 - GnuCash hangs loading XML file
Bug 797170 - gnucash-3.5 fails to compile with GTK+3-3.20.x
Bug 797175 - Gnucash will not open from UNC paths.
Bug 797175 - Opening a file from a gvfs mount point fails
Bug 797183 - association head path with spaces displayed wrong
Bug 797185 - Correct the sorting for the Transaction Association Dialog
Bug 797186 - gtk crash closing parent window edit->stylesheets
Bug 797188 - Default invoice prints credit note as invoice
Bug 797196 - Allow for per-payment rounding in amortization calculations.
Bug 797197 - Transaction report: Error message when sorting on month
Bug 797204 - qif import: commodities throw blocking dialog in symbol...
field on every commodity
Bug 797207 - Chart reports show blank when run from the build directory
Bug 797215 - qif import: review duplicates - allow sorting candidates...
on all columns
Bug 797223 - Missing Tooltip on Edit->Preferences->Register:Actions:Tab...
order includes Transfer on Memorised Transaction
Bug 797230 - Use after free in gnucash_sheet_style_destroy.
Bug 797232 - dialog-ab.glade was written for gtk 2.16.
Bug 797233 - Balance Sheet, Chart of Accounts, and other reports...
crash when involving foreign currency stocks.
Bug 797240 - Multicolumn report not showing each report name
reportname was not correctly applied as the chart-title
Bug 797241 - Some reports skip transactions of the last day of the
selected period
Bug 797244 - Remove the invert prices for less than 1
Bug 797246 - Cleared Balance Remains Red After Turning Positive
Bug 797249 - Cutting home account causes transaction to disappear
Bug 797262 - Change "Today date format"
Bug 797266 - Missing translation settings
Bug 797277 - Assets over time ignores nested liabilities
Bug 797278 - Create an option for type of commodity for Price import
Currently when you use the 'Commodity From' column for
Price imports it can match against the wrong commodity
like COP (Conoco Philips) would match against the currency
COP (Columbian Peso). To fix this add a new column type
'From Namespace' and rename 'Commodity From' to 'From
Symbol' so they match the Security Editor.
Bug 797281 - Gnucash crashes when attempting to match online accounts
Other repairs or enhancements not marked as bugs:
Rewrite the Customer Summary Report to correctly handle multiple currencies.
Improve the Owner Report's find-first function to consider currency when
selecting the account.
Prevent cutting the "anchor" split or pasting another split on top of
it in account registers so that the transaction won't suddenly
disappear from the register page. Displays an explanatory dialog just
like trying to delete the anchor split does. Allow deleting, cutting,
and pasting over all splits in Journal View registers which don't have
anchor splits because they're not associated with any account.
Disable editing the "blank split" (the new split at the bottom of a
transaction in split view) if the transaction itself is read-only.
Use the customer and vendor currency instead of the default currency from
preferences when generating bills, invoices, or credit notes.
Allow assigning a single target account to more than one transaction in
the import matcher. To do this select the new transactions and
right-click to open a single-item context menu. Click the menu item
to open the account selection dialog box. Note that imported
transactions that match transactions already in the eriger,
i.e. those marked "update" or "reconcile and update" are not eligible
for inclusion.
This feature still has some rough edges that are being addressed for
the next release.
Use the default currency from Properties>Accounts for the summary bar
currency to make it configurable.
Allow CSV export of grand total amounts from reports using the trep-engine.
Fix XML file import failures into GnuCash for Android.
Raise minimum CMake version to 3.5 for all platforms.
Prevent crash in Aging Report when the book has no AP or AR accounts.
Fix operation of the "default budget" option.
Change the account-picker dialog to disable the OK button instead of
raising a warning dialog if the selected account is a placeholder.
Fix crash after unloading all files from the QIF import assistant.
Disable the Next button in the QIF import assistant if no files are
selected for import.
New report "Balance Sheet-PNL" combines a Balance Sheet and an Income
Statement in a single report.
Rework localization in C++ on Win32 builds, fixing several crashes and
speeding up file loading by 10x.
Create a console window for displaying stdout/stderr. Define
__MSWIN_CONSOLE__ and recompile to enable.
Keep the selection in the Securities Editor on the commodity after
editing it.
Allow the Securities Editor to stack separately from the main window.
Much more Scheme cleanup and refactoring.
Python console improvements, including switching to Python3 and not
killing GnuCash when quitting the console.
New API:
The following functions can now be used in scheduled transaction
credit/debit calculations:
gnc:amort_pmt
gnc:amort_ppmt
gnc:amort_ipmt
API Deprecations:
gnc:html-table-prepend-column!
gnc:html-acct-table-num-cols
gnc:html-acct-table-append-row!
gnc:html-acct-table-prepend-row!
gnc:html-acct-table-append-col!
gnc:html-acct-table-prepend-col!
gnc:html-acct-table-remove-last-row!
gnc:html-acct-table-render
gnc:second-html-build-acct-table
Updated Translations: Croatian, Farsi, German, Romanian, and Ukrainian
Known Issues: (long list redacted)
3.55.0
Add captureId field to local_payment_details
Add refundId field to local_payment_details
Add debugId field to local_payment_details
Add transactionFeeAmount field to local_payment_details
Add transactionFeeCurrencyIsoCode field to local_payment_details
Add refundFromTransactionFeeAmount field to local_payment_details
Add refundFromTransactionFeeCurrencyIsoCode field to local_payment_details
Add ds_transaction_id and three_d_secure_version to 3DS pass thru fields
Add payer_info field to payment_method_nonce details
Add more specific timeout errors
Add braintree.exceptions.http.timeout_error.ConnectTimeoutError (child class of TimeoutError)
Add braintree.exceptions.http.timeout_error.ReadTimeoutError (child class of TimeoutError)
Add room_tax support for transaction sale
Add no_show support for transaction sale
Add advanced_deposit support for transaction sale
Add fire_safe support for transaction sale
Add property_phone support for transaction sale
Add additional_charges support for transaction sale
Add PostalCodeIsRequiredForCardBrandAndProcessor to validation errors
Fix issue where not found error could choke on None values
0.9.2
BUG Get axis instead of figure.
0.9.1
This is a bugfix release fixing an indentation bug.
0.9.0
New features
Previously, pyfolio has required a benchmark, usually the U.S. market
returns SPY. In order to provide support for international equities and
alternative data sets, pyfolio is now completely independent of benchmarks.
If a benchmark is passed, all benchmark-related analyses will be performed;
if not, they will simply be skipped.
Performance attribution tearsheet
Improved implementation of get_turnover
Users can now pass in extra rows (as a dict or OrderedDict) to display in the perf_stats table
Maintenance
Many features have been more extensively troubleshooted, maintained and
tested.
Various fixes to support pandas versions >= 0.18.1
0.5.0
DEP: Deprecate all data reading functionality via pandas-datareader
* DEP: Deprecate all functions using pandas-datareader
* DOC: Update README with deprecation documentation
* STY: Markdown style
* STY: Markdown style again
* REV: revert previous commit
* STY: typo
* STY: consistent naming convention
* DEP: also deprecate any cacheing of data
* DEP: forgot to deprecate additional funcs
* REV: get_utc_timestamp should not be deprecated
* ENH: add function to compute returns from prices
* BUG: wrap import in try-except
* MAINT: update deprecation warning
* MAINT: move `simple_returns` func to `stats` module
* MAINT: don't raise deprecation warning for _1_bday_ago
* DOC: remove suggestions
* TST: added test for simple_returns
* MAINT: add simple_returns to init
* TST: fixed simple_returns test
* STY: use size, not shape
* TST: tests passing
* DOC: 1_bday_ago no longer deprecated
1.9.74.123:
- Correct calculation in haDelta indicator
- Use initial datalabel for non-overlaid volume plot
1.9.73.123:
- Add utility NonZeroDifference indicator
- Redefine CrossUp, CrossDown and CrossOver indicators using
NonZeroDifference to cover the case in which the crossing entities
converge right before crossing up and down
1.9.72.122:
- Cover case in which result in high-level overridden operations have
multiple lines and wer not be taken into account for minimum period
calculations
- Add "Int" variants of percentage based sizers to import
- Trades observer to show net profit instead of brutto, with parameter
to control behavior
1.9.71.122:
- Improve on indicator legend plotting to overcome matplotlib legend
reordering
- Added PercenSizerInt and AllSizerInt which truncate the returned size
to an int, suited better for stocks/futures
1.9.70.122:
- Use opening price for submission check for Market orders when
cheat-on-open is active
- Update pnlcomm on all operations and not just profit/loss locking
- Correct comment for fillalpha and add baralpha for candlestick opacity
- Use internal dict for data feed presence test and update trade observer
1.9.69.122:
- Fix offline Yahoo feed by moving the new adjclose line up to the offline
feed
- Adapt the yahoodownload tool to the current status (ex: data not reversed)
- Redownload all yahoo data feeds
1.9.68.122
- Fix call to _nextday in TradingCalendar
- Clean up and rework of Yahoo Data. The data feeds seems to be reliable
again
- IBStore Support for IND prices
1.9.67.122
- Fix compression only scenarios when resampling and resampling after
changes in 1.9.66.122
- Final correction for rollover fix introduced in 1.9.66.122
- Cover use case for mininum period calculation when all
operations/indicators don't use the data feeds directly but lines of it
1.9.66.122
- Fix regression introduced with 8f537a1c2c271eb5cfc592b373697732597d26d6
which voids the count of lost trades
- Allow rollover to distinguish between no values temporarily (with None)
and no values permanently (with False)
- Avoid math domain error for negative returns in logarithmic calculations
- Fix local variable declaration for compound returns
- Fix typo in date2num tz conversion which shows up in direct usage
1.9.65.122
- Fix commission info assigment and orderref seeking in OandaStore
- Add strategy type to OptReturn
- Fix prepend_constant for OLS_Transformation
- Fix LogReturnsRolling compression when not specified
- Have ints instead of bools in some values with 1 Trade in TradeAnalyzer
1.9.64.122
- Avoid stage2 comparison using [0] in API methods
- Support plotname, if given, as name of indicator in csv output
1.9.63.122
- Add optimization callbacks when running with 1 Core
- Correct sell_bracket by removing old append code
- Correct typo in store.py
- Pass period from RateOfChange100 to underlying ROC
1.9.62.122
- Correct PSAR acceleration capping
- Enable PandasData line extension without the need to extend datafields
1.9.61.122
- Add `_skipnan` to plotlines to allow joining two points with a line
- buy_bracket/sell_bracket allow suppressing stop/limit orders
- Add stop-loss approaches sample
- Correct codes for minutes compression
1.9.60.122
- Remove unused files
- README update, Docstring corrections, documentation corrections
- Update travis settings
1.9.58.122
- Provide default fundmode methods for all brokers
- Correct order notification if positions exist when starting the broker
and will be simulated
- Correct csv values output if object has no length
1.9.57.122
- Fix set_fundmode in bbroker
- Synchronize fund history mode with master clock
- Allow relocation of legend in plotting charts
- Adapt broker observer to fund mode
1.9.56.122
- Handle volume as string null in YahooFinanceData
- Corrections/Improvements to order history support
- Add fund history support
- Increase plotting margin of trade observers
v0.3.6
Add option to compute forward returns non-cumulatively
v0.3.5
This is a minor release from 0.3.4 that includes bugfixes, speed enhancement and compatibility with more recent pandas versions. We recommend that all users upgrade to this version.
v0.3.4
This is a minor release from 0.3.3 that includes bugfixes, small enhancements and backward compatibility breakages. We recommend that all users upgrade to this version.
v0.3.3
TEST: added tests for perf.mean_return_by_quantile
3.54.0
Add payment_method_nonce field to LocalPaymentCompleted webhook
Add transaction field to LocalPaymentCompleted webhook
Add LocalPaymentDetails to transactions
Among the changes, support was removed for Qt 4.
Due to issues with my local setup, this could not be tested with Qt 5 enabled
(currently not the default).
2.27.0:
* Add support for the TaxRate resource and APIs
2.26.0:
* Add support for the TaxId resource and APIs
2.25.0:
* Add support for the CreditNote resource and APIs
2.24.1:
* Fix encoding of nested parameters in multipart requests
2.24.0:
* Add delete class method on deletable API resources
* Add class methods for all custom API requests (e.g. Charge.capture)
2.23.0:
* Add support for the PaymentMethod resource and APIs
* Add support for retrieving a Checkout Session
* Add support for deleting a Terminal Location and Reader
2.22.0:
* Add stripe.util.convert_to_dict method for converting StripeObject instances to regular dicts
2.21.0:
* Add support for subscription schedules
2.20.3:
* Fix client telemetry implementation
2.20.2:
* Fix session initialization for multi-threaded environments
2.20.1:
* Make RequestsClient thread-safe
2.20.0:
* Reuse the default HTTP client by default
2.19.0:
* Rename CheckoutSession to Session and move it under the checkout namespace. This is a breaking change, but we've reached out to affected merchants and all new merchants would use the new approach.
2.18.1:
* Properly serialize individual on Account objects
## 3.1.3 (2019-03-31)
- Properly reject postings with a comment right after the flag (bug #1753)
- Make sorting order of lot information deterministic (bug #1747)
- Fix bug in tag value parsing (bug #1702)
- Remove the `org` command, which was always a hack to begin with (bug #1706)
- Provide Docker information in README
- Various small documentation improvements
The following bugs have been fixed:
Bug 639049 - Asset Barchart Report includes also the first day of next month transactions
If the original date is an end-of-month date, we take it as an
indicator they always want monthdelta dates to be end-of-months.
This works for monthly/quarterly/halfyearly/annual.
Bug 748431 - Wrong average balance for transactions during DST
Replace average-splits with custom loop, cycling through the
balancelist and splitlist, creating interval summaries along the way.
Bug 787401 - Test for the report system - HTML Tests.
Bug 795729 - Advanced Portfolio Report - Percentage rates not displaying leading zeros.
Bug 796498 - Incorrect starting balance in TXF Report calculations.
Bug 796530 - TxnCsvImport - fix loading of saved preset with update of seperator selection. Previously this would cause all but the first column to lose its assigned types.
Bug 796687 - Tax Entity name and type for an account won't work under "Tax Reporting Options" in Gnucash 3.2
Bug 796826 - Report HTML - not possible to suppress the document header.
Bug 796827 - Report HTML - it is not possible to suppress the document title.
Bug 796829 - Report HTML - HTML table rows are prepended not as list elements
Bug 796831 - Report-HTML - append table column correctly.
Bug 796877 - test-stress-options fails.
Bug 796946 - Mortgage and Loan Repayment Setup tool crashes when exiting "Loan Repayment Options" page.
Because libstdc++ on Windows doesn't support any C++ locales besides "C" and throws an exception if you try.
Bug 796952 - Report formatting (justify) is broken.
Bug 796956 - Aqbanking 6 will drop DTAUS
Adds support for the upcoming AQBanking 6 and removes support for AQBanking earlier than 5.3.4.
Bug 796965 - Change the default to show unused accounts.
Bug 796989 - some date/time does not honor user locale.
Bug 797002 - Program crashes when exporting tax data in txf format.
Bug 797011 - GnuCash 3.4 Crashes When Printing Checks with Custom Format.
Bug 797013 - Import Customers & Vendors: error in CMakeLists.txt - causes incomplete project in Xcode.
Bug 797029 - Import Customer & Vendors: blank name and company in import data row crashes GnuCash
Bug 797030 - Import Customer & Vendors: several issues with the matching of data rows.
Bug 797031 - Import customer & Vendors: import can create customer and vendors without address data
Bug 797041 - enum confusion in qoflog.
Bug 797046 - Tools / Price Database / Currencies UI not working since 3.4.
Bug 797067 - Date displayed incorrectly in register.
Bug 797074 - Reports with averages are displaying fractions
Convert amounts to decimal prior to adding to html-table. Also adds tests to make sure averages are displayed in 2 decimal places.
Bug 797098 - Quitting Gnucash shortly after clicking Save may abort file save.
Bug 797105 - Incorrect local-symbol for SZL currency
Bug 797136 - Balance sheet report "Show Exchange rate" broken when foreign currency is sold completely
For cases where total(amount)/total(value) = 0/0, the price is reported as 0.
Other repairs or enhancements not marked as bugs:
API: Add dedicated api to query build-time, version related compile constants and use it in several location in the code for consistent behaviour.
Budget: Save and restore the Account filter settings.
Build: Fix deprecation warnings for g_type_class_add_private.
CSV Tokenizer: Add additional test to guard against quote parsing regressions.
GUI: Replace ambiguous mnemonic for File>Export>Export Active Register...
GUI: Rearrange menu accelerators for Actions>Online Actions menu items
GUI: Add mnemonic for File>Import>Import Bills...
GUI: Move Balance-Forecast report to Reports>Assets & Liabilities
GUI: Move Void Transactions item in Report Options from the Accounts tab to the Filter tab.
I18N: Fix erratic localization of dates on Windows.
Date format selection on Windows relies on Windows National Language functions and those are unaffected by the POSIX setlocale(). We have in the past relied upon gtk initialization to handle this but it has not been reliable since the move to Gtk3. Note that this applies only when the locale is set via a Unix-style environment variable (typically LANG) or in the environment file; it's unnecessary and ignored when using the localization settings in Region & Language.
I18N: Unify phrases to remove untranslated msgids.
I18N: Restore the global locale after Guile munges it.
There's no way to change the environment locale on Windows so calling setlocale(LC_ALL, ""), as guile does in its init routine, reads the user's Language and Region settings instead of the environment variables. We save the discovered environment locale and call setlocale with it again after Guile has initialized.
Importing: Remove old (non-SEPA) online transaction code, because now in 2019 the banks will only offer SEPA transactions and no others. This in turn means we don't need the old ktoblzcheck checking functions at all so also remove the dependency.
Importing: Usability improvements for Bayes editor window
Remove the "Are you sure" question as it is simply annoying but does not help. Fix some string wordings to be more understandable.
Online Banking: No longer force existence of local BIC code.
Online Banking: Entering of TAN must use normal visibility
The visibility of the entered content was set to FALSE (=invisible) always, which was wrong for certain types of input as indicated by the GUI_INPUT_FLAGS. This should now be honored and visibility set to TRUE (=visible) for the correct flags.
Online Banking: Fix reconcile timestamps when importing balances.
Used to be start-of-day, but needs to be day-neutral.
Performance: Provide a single static instance of C++ locale.
We can't use std::locale::global because all streams imbue it by default and if it's not 'C' (aka std::locale::classic) then we must imbue all the streams that we don't want localized, and that's most of them.
Performance: Add GncDateTime::timestamp().
To provide a C++ implementation of gnc_date_timestamp and to avoid using the expensive and localized GncDateTime::format().
Performance: Implement a faster date-time serialization function.
Has the side effect of recording all date-times in XML files in UTC instead of local time with a timezone. This will help users who like to keep their files under version control because the time strings won't shift every time Daylight time begins or ends.
Performance: >Fix XML load CPU hotspot: Scrub.c xaccTransScrubPostedDate
The refactoring provides roughly 10% reduction in user CPU use for XML file load by moving an expensive function to within an if-clause where the result is used.
Performance: Speed-up of txn match dialog: Suspend GUI refresh during deletion of selected lines.
Performance: Sorting speed-up: Cache the bool value of Transaction's is_closing property.
Register: Accept URLs or file paths for files associated with transactions. File paths can be relative or absolute. A preference is provided.
Reports: Speed up the budget and cash flow report calculation by iterating over accounts only once.
Reports: Heavy scrubbing for code readability and performance.
Reports: New Report by Ryan Turner: Balance Forecast Report
This report forecasts the combined balances of the selected accounts based on the scheduled transactions and plots them on a line graph. You can set a "reserve" amount, which will draw a red line on the graph, so you can easily see if your forecast dips below a given value. There is also a "future minimum" line which shows what the lowest future balance will be at a given point. I find this useful in conjunction with the "target" line for planning.
Reports: Fix crash when loading saved-report with unknown choices.
If a saved-report with e.g. relative date, multichoice option is unknown, the report would crash, and the Report-Options would segfault. This commit fixes both: report-date defaults to 'today', multichoice-options defaults to default-value. Following this commit, if a report loads a saved-report or .gcm from a future version, a gnc:warn will be emitted and the report will not crash; it will use relative-date today. Multichoice will remain the default value. Report Options will not segfault. The user will be notified via a gnc:gui-warn dialog
Reports: Date intervals at end-of-month:
Instead of recursing the date, we calculate the next month using an index-based multiplier, and apply modulo/remainder as appropriate to determine the next month/year. Then we attempt to create new mktime, and if the resulting mktime's month is not as expected, reduce the mday by 1 until resulting month is correct. This fixes monthly intervals for end-of-month days. Test via monthly/quarterly deltas, and also includes leapyear calculation.
Reports: Date-grouping must allow indenting.
Indenting checkbox was erroneously disabled when: sortkey = date, date-subtotal = not 'none.
Reports: Table display
It is intuitive that if the user wishes to show the subtotal-table, and hide the transactions, then both the main (hidden) transactions and subtotals must be hidden as well.
Reports: Update US Income Tax information for 2018.
Scheme Deprecations:
account-assoc
account-hash
account-hashtable-ref
account-hashtable-set!
account-in-alist
account-in-list-pred
account-in-list?
account-same?
gnc-commodity-collector-commodity-count
gnc-commodity-collector-contains-commodity?
gnc:commodity-collectorlist-get-merged
gnc:exchange-by-pricedb-helper
gnc:exhange-by-pricevalue-helper
gnc:get-commoditylist-inst-prices
gnc:hook-run-danglers
gnc:make-drcr-collector
gnc:make-stats-collector
gnc:report-template-menu-name/name
gnc:report-template-name-to-id
gnc:report-template-new-options/name
gnc:report-template-renderer/name
gnc:restore-report
gnc:save-options
split-assoc
split-hash
split-hashtable-ref
split-hashtable-set!
split-in-list?
split-same?
Scheme: Replace account and split utility functions with SRFI-1 functions.
Scheme: Testing (create-transaction) adds price trading commodities/currency this will modify a test which was calibrated to record purchase price only. fix transaction creation to add prices for both purchase and sales, and also fix test which was assuming no sale price was bring recorded.
Scheme: Testing (env-create-multisplit-transaction) This is the general case for any transaction creation. Rewrite other transaction creation routines to use it. All tests still work unchanged, which confirms this function works well. This will allow tests to create multisplit transactions, of an arbitrary number of splits. If the list-of-split's values are not balanced (i.e. total 0), the engine will create an Imbalance-CUR split.
The motivation is to allow creation of complex multisplit multicommodity transactions eg USD50 + GBP20 (USD25) = EUR66 (USD75) as well as their prices GBP/USD = 25/20 and EUR/USD = 75/66.
* USD -50
* USD -25 = GBP -20
* USD +75 = EUR +66
This will be useful in creating tests for stock-based reports, whereby stock sales need splits in STOCK/ASSET/INCOME accounts.
Scheme: Redesign gnc:account-get-balances-at-dates, replacing the ignore-closing? parameter with a split->amount function parameter having a default value of xaccSplitgetAmount. (split->amount split) should return the amount of the split or #f; in the latter case the split is skipped. This allows for a more general account balance list accumulator with novel balance strategies. For example a split->amount function could test void status and return xaccSplitVoidForerAmount on void splits; test description/memo for some content and vary the returned amount accoridingly; or test the split and return 1 or 0 creating a counter. To recreate the ignore-closing use case pass (lambda (s) (and not (xaccTransGetIsClosingTxn (xaccSplitGetParent s))) (xaccSplitGetAcmount s)))
Scheme: Replace some option names. Automatically convert usage of the old names and issue a warning.
Updated Translations: Arabic, Croatian (New!), Farsi, French, German, Spanis, Ukrainian
Updated Account Templates: Belgium (French) (New!), Frsnce, Croatia (New!), Germany. Switzerland (French)
3.52.0
Deprecate GrantedPaymentInstrumentUpdate and add GrantorUpdatedGrantedPaymentMethod and RecipientUpdatedGrantedPaymentMethod
Add account_type support for transaction sale, verification, and payment_method create/update
* 3.1.2 (2019-02-05)
- Increase maximum length for regex from 255 to 4095 (bug #981)
- Initialize periods from from/since clause rather than earliest
transaction date (bug #1159)
- Check balance assertions against the amount after the posting (bug #1147)
- Allow balance assertions with multiple posts to same account (bug #1187)
- Fix period duration of "every X days" and similar statements (bug #370)
- Make option --force-color not require --color anymore (bug #1109)
- Add quoted_rfc4180 to allow CVS output with RFC 4180 compliant quoting.
- Add support for --prepend-format in accounts command
- Fix handling of edge cases in trim function (bug #520)
- Fix auto xact posts not getting applied to account total during
journal parse (bug #552)
- Transfer null_post flags to generated postings
- Fix segfault when using --market with --group-by
- Use amount_width variable for budget report
- Keep pending items in budgets until the last day they apply
- Fix bug where .total used in value expressions breaks totals
- Make automated transactions work with assertions (bug #1127)
- Improve parsing of date tokens (bug #1626)
- Don't attempt to invert a value if it's already zero (bug #1703)
- Do not parse user-specified init-file twice
- Fix parsing issue of effective dates (bug #1722, TALOS-2017-0303,
CVE-2017-2807)
- Fix use-after-free issue with deferred postings (bug #1723, TALOS-2017-0304,
CVE-2017-2808)
- Fix possible stack overflow in option parsing routine (bug #1222,
CVE-2017-12481)
- Fix possible stack overflow in date parsing routine (bug #1224,
CVE-2017-12482)
- Fix use-after-free when using --gain (bug #541)
- Python: Removed double quotes from Unicode values.
- Python: Ensure that parse errors produce useful RuntimeErrors
- Python: Expose journal expand_aliases
- Python: Expose journal_t::register_account
- Improve bash completion
- Emacs Lisp files have been moved to https://github.com/ledger/ledger-mode
- Fix build under MSYS (32-bit).
- Fix build under Cygwin.
- Various documentation improvements
From the release notes for version 0.16.2:
Wallet
* #13622 c04a4a5 Remove mapRequest tracking that just effects Qt display. (TheBlueMatt)
* #12905 cfc6f74 [rpcwallet] Clamp walletpassphrase value at 100M seconds (sdaftuar)
* #13437 ed82e71 wallet: Erase wtxOrderd wtx pointer on removeprunedfunds (MarcoFalke)
RPC and other APIs
* #13451 cbd2f70 rpc: expose CBlockIndex::nTx in getblock(header) (instagibbs)
* #13507 f7401c8 RPC: Fix parameter count check for importpubkey (kristapsk)
* #13452 6b9dc8c rpc: have verifytxoutproof check the number of txns in proof structure (instagibbs)
* #12837 bf1f150 rpc: fix type mistmatch in listreceivedbyaddress (joemphilips)
* #12743 657dfc5 Fix csBestBlock/cvBlockChange waiting in rpc/mining (sipa)
GUI
* #12432 f78e7f6 [qt] send: Clear All also resets coin control options (Sjors)
* #12617 21dd512 gui: Show messages as text not html (laanwj)
* #12793 cf6feb7 qt: Avoid reseting on resetguisettigs=0 (MarcoFalke)
Build system
* #13544 9fd3e00 depends: Update Qt download url (fanquake)
* #12573 88d1a64 Fix compilation when compiler do not support __builtin_clz* (532479301)
Tests and QA
* #13061 170b309 Make tests pass after 2020 (bmwiedemann)
* #13192 79c4fff [tests] Fixed intermittent failure in p2p_sendheaders.py (lmanners)
* #13300 d9c5630 qa: Initialize lockstack to prevent null pointer deref (MarcoFalke)
* #13545 e15e3a9 tests: Fix test case streams_serializedata_xor Remove Boost dependency. (practicalswift)
* #13304 cbdabef qa: Fix wallet_listreceivedby race (MarcoFalke)
Miscellaneous
* #12887 2291774 Add newlines to end of log messages (jnewbery)
* #12859 18b0c69 Bugfix: Include for std::unique_ptr (luke-jr)
* #13131 ce8aa54 Add Windows shutdown handler (ken2812221)
* #13652 20461fc rpc: Fix that CWallet::AbandonTransaction would leave the grandchildren, etc. active (Empact)
From the release notes for version 0.16.3:
Consensus
* #14249 696b936 Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar)
RPC and other APIs
* #13547 212ef1f Make signrawtransaction* give an error when amount is needed but missing (ajtowns)
Miscellaneous
* #13655 1cdbea7 bitcoinconsensus: invalid flags error should be set to bitcoinconsensus_err (afk11)
Documentation
* #1384411b9dbb correct the help output for -prune (hebasto)
This also fixes a denial-of-service vulnerability (CVE-2018-17144). It is
exploitable by miners and has been discovered in Bitcoin Core versions 0.14.0
up to 0.16.2. It is recommended to upgrade any of the vulnerable versions to
0.16.3 as soon as possible.
XXX pull-up (security fix)
3.51.0
Add Hiper card type support
Add Hipercard card type support
Add bin to PaymentMethodNonceDetails
Clarify support for Python versions 3.6.x and 3.7.x
Add Error indicating pdf uploads too long for dispute evidence.
Add GrantedPaymentMethodRevoked webhook response objects
2.18.0:
* Add configurable telemetry to gather information on client-side request latency
2.17.0:
* Add support for Checkout sessions
2.16.0:
* Add support for account links
2.15.0:
* Add support for providing custom CA certificate bundle
2.14.0:
* Add support for Review for Radar
2.13.0:
* Add support for ValueList and ValueListItem for Radar
2.12.1:
* Make StripeResponse a new-style class
2.12.0:
* Add new API endpoints for the Invoice resource.
2.11.1:
* Bump minimum requests version to 2.20.0 (for [CVE-2018-18074](https://nvd.nist.gov/vuln/detail/CVE-2018-18074))
2.11.0:
* Add support for the Person resource
* Add support for the WebhookEndpoint resource
2.10.1:
* Correct behavior of stripe.max_network_retries if it's reset after initial use
2.10.0:
* Add support for Stripe Terminal
2.9.0:
* Rename FileUpload to File
2.8.1:
* Don't URL-encode square brackets
* Integer-index encode all arrays
2.8.0:
* Add support for automatic network retries
2.7.0:
* Add support for reporting resources
2.6.0:
* Add support for usage record summaries
2.5.0:
* Remove unsupported Bitcoin endpoints (this is technically a breaking change, but we're releasing as a minor version because none of these APIs were usable anyway)
2.4.0:
* Add cancel support for topups
* Add support for file links
2.3.0:
* Add support for Sigma scheduled query run objects
2.2.0:
* Add support for Stripe Issuing
2.1.0:
* Add InvoiceLineItem class
2.0.3:
* Internal improvements to ApiResource.class_url
2.0.2:
* Avoid duplicate dependency on requests with Python 2.7
2.0.1:
* Fix setup.py
2.0.0:
Major version release. List of backwards incompatible changes to watch out for:
* The minimum Python versions are now 2.7 / 3.4. If you're using Python 2.6 or 3.3, consider upgrading to a more recent version.
* Stripe exception classes should now be accessed via stripe.error rather than just stripe
* Some older deprecated methods have been removed
* Trying to detach an unattached source will now raise a stripe.error.InvalidRequestError exception instead of a NotImplementedError exception
Pull requests included in this release:
* Drop support for Python 2.6 and 3.3
* Use py.test for tests
* Remove deprecated code
* Remove util.json and use json module directly everywhere
* Update setup.py and test flow
* Use pipenv
* Change exception when detaching unattached sources from NotImplementedError to stripe.error.InvalidRequestError
3.4 - 30 December 2018
o Convert help documents to use XInclude instead of SYSTEM entities
o Convert Guide and its translations to use XInclude instead of
SYSTEM entities
o Drop old DocBook xsl 1.75.2 stylesheet
o Base gnucash custom style sheet on DocBook xsl 1.79.2
o Add DocBook xsl v1.79.2
o Extract common entity declarations into a custom DTD
This custom DTD is based on the DocBook V4.5 DTD and is intended
to be used by all our documentation xml files.
o Update to DocBook XML spec 4.5
3.4 - 30 December 2018
The following bugs have been fixed:
Bug 498072 - GnuCash show taxes on invoice when individual taxes is
not checked
Bug 760825 - On duplicating a bill, the entry dates should be set to
the bill date, not to the current date - followup:
Use neutral time on entry post dates instead of canonical time
Bug 767772 - Associated file with transaction is lost when moving entry
between accounts
Bug 775580 - Inaccurate information provided for "Common Accounts" when
using "New Account Hierarchy Setup"
Bug 779565 - Treeview header combos do not work at first load
Bug 788332 - Last Reconcile Date column sorts by day of month not date
Bug 789674 - Close Book tool regression
Bug 793156 - Incorrect date sort order in Generic import matcher window
Bug 795080 - Some dates reset to 01/01/1970
Bug 795237 - Update of "wohnungsw" template
Bug 795425 - Version 2018 of german account template SKR49
Bug 796772 - Receivable Ageing Report invalid URL for Totals column
Bug 796806 - Crash after OFX import if line item dragged
Bug 796842 - Add new employee window may not fit on screen
Bug 796849 - Load another QIF file causes "that file already loaded" dialog
Bug 796875 - Unable to use arrow keys to advance past pre-filled text
in register
Bug 796878 - test-qofsession fails on x86_32.
Bug 796883 - Register text oddities
HOME and END need to be treated like right and left arrow
keys.
Bug 796886 - OFX Import does not show source account in the transaction
matching window
Bug 796887 - Remove account slot key color if there is no valid color
Bug 796893 - invoice.GetDatePosted() and other date related functions
returns strange values for uninitalised dates.
Bug 796896 - Button to complete an export not intuitively placed or
discoverable
Bug 796903 - Crash when searching invoice by Invoice Owner
Bug 796914 - Customer Summary is giving error
Bug 796915 - Update Account colour background
Bug 796940 - Invalid transaction date-posted KVP causes date-posted to
not be saved.
Bug 796944 - Tab navigation From Company Address field in New Book Options
Bug 796945 - Search Search Criteria window does not scroll when added
criteria exceed a certain amount
Bug 796948 - Scheduled Transactions Entered Since Last Run Are not Visible
Bug 796949 - Incorrect conversion of 0,01 USD to EUR
Bug 796960 - Incorrect amount sort order in Generic import matcher window
Bug 796961 - Can't overwrite existing MYSQL database, V3.3.
Bug 796967 - gnclock table not removed when using PostgreSQL.
Bug 796978 - Deleting a split of same account as register cancels the
transaction without warning
Bug 796981 - Gnucash crashes with critical error when selecting another
file
Bug 796982 - Import Bills & Invoices: change in un_escape() routine
causes description and notes fields to be mangled.
Bug 796988 - Untranslated string in CSV transaction importer
Bug 796989 - some date/time does not honor user locale
Bug 796994 - Unable to generate Tax Report because of pricedb error
Other repairs or enhancements not marked as bugs:
Set up filepath utils to determine the GNC_CONFIG_HOME in the same way
as GNC_DATA_HOME
Until now GNC_CONFIG_HOME was more or less hard-coded. Now it can be
set via environment variable GNC_CONFIG_HOME. In addition it will
automatically be created to avoid potential user confusion.
Redesign gnc-uri-utils
gnc_uri_get_components will now return NULL as protocol if the input
is a normal file system path instead of a uri (it used to
return 'file')
gnc_uri_get_protocol will now return NULL if the input is a normal
file system path instead of a uri (it used to return 'file')
gnc_uri_is_file_protocol now returns FALSE if protocol is NULL
(it used to return TRUE)
gnc_uri_is_file_uri now returns FALSE if input is a normal file
system path instead of a uri (it used to return TRUE)
a new function gnc_uri_targets_local_fs will return TRUE only if
its input is either a file uri or a normal file system path.
This function is now mostly used instead of
gnc_uri_is_file_uri in the current code base
a new function gnc_uri_is_uri is added to check whether its input
is a valid uri (has protocol, path and hostname for non-file
uris)
refer to 'scheme' instead of 'protocol' as that's the more formal
term used in uris
This involves renaming 3 functions:
gnc_uri_get_protocol -> gnc_uri_get_scheme
gnc_uri_is_known_protocol -> gnc_uri_is_known_scheme
gnc_uri_is_file_protocol -> gnc_uri_is_file_scheme
The *_protocol variants are marked as deprecated.
Additionally a number of local variables have been renamed from
protocol to scheme to support this change.
Show warnings for deprecated declarations
We're about to announce our own set of deprecated functions in
libgnucash. That would be pretty pointless if we also would silence
all deprecation warnings at the same time...
More report code-cleanup by Chris Lam, including deprecating the
following functions:
gnc:account-get-balance-at-date
gnc:account-get-total-flow
gnc-commodity-numeric-string
gnc-commodity-value->string
gnc:double-col
gnc:options-add-include-subaccounts
gnc:options-add-group-accounts
gnc:options-add-currency-selection
The following modules are deprecated:
report-system/collectors
report-system/report-collectors
Invoice: Remove H1 title and superflous option.
Printing the title twice is silly, so remove the option and the
H1 display of the title. Note that the remaining title is in a
div named "invoice-title" so it can be styled with CSS as the user
pleases from the Report Options Layout tab.
The preference, use formal accounting labels does not update the header
With a register open and you change preference 'use formal
accounting labels' it does not update the register header so add
a call back for the preference.
Make the grid lines of totals Budget tree view track the preferences
Make the grid lines of the totals tree view track the preferences
to match the account tree view above it.
Add routine to fix Account Color being set to "Not Set"
Previously the account color slot has been populated with
"Not Set" when any field for the account has been edited and
saved. This routine should run once and remove all such entries.
Performance fix in dom_chars_handler: use g_strndup instead of g_strdup
In the appdata/metadata file, rename the ID from org.gnucash.Gnucash
to org.gnucash.GnuCash to match flathub, and add a launchable ID
to link it to the desktop file.
Added double-click-on-file for the CSV transaction, price, and account
importers and exporters.
Cleaned up a variety of issues reported by the clang static analyzer.
Allow the text options widget to use all remaining space
The text option widget used for report options has only about 3
lines visible currently and will not use any available space in
the dialogue. Change the packing for this widget to expand and
fill the remaining dialogue space. If there are more than one text
option widget on a page then the available space will be shared
equally.
Add short_labels for a few toolbar buttons with long names. That should
fit a few more buttons on the toolbar.
Update iso-4217-currencies.xml, adddding VES - Bolivar Soberano, minor
updates of other VE currencies.
Python 3 bindings fixes and improvements from Christoph Holterman and
Sumit Bhardwaj.
3.50.0
Add fraud_service_provider field to risk_data
Add authorization_expires_at to Transaction
Remove invalid transaction tests
Allow PayPal payment ID and payer ID to be passed during transaction create
Add travel_flight support to industry-specific data
Add processor_response_type to Transaction, AuthorizationAdjustment, and CreditCardVerification.
Between 3.2 and 3.3, the following bugfixes were accomplished:
• Bug 771667 - Different warnings when changing reconciled splits vs. splits linked to reconciled splits.
• Bug 784420 - "Save changes on closing" window waits 2^32 seconds when "Time to wait for answer" is set 0.
• Bug 786708 - GnuCash won't load currency fractions larger than 1000000. Also create larger fractions for the account dialog.
• Bug 787439 - Segmentation Fault in Transfer dialog after clearing Date field and pressing escape.
• Bug 789594 - Unable to overwrite sqlite3 database file.
• Bug 792446 - Mixed languages in error dialog.
• Bug 794526 - Python bindings can't find loadable modules.
• Bug 794755 - Commodity Register displays fractional prices.
• Bug 794870 - If no book is opened, gnucash still asks if the user wants to save changes when opening a file.
• Bug 795821 - GnuCash could not obtain the lock for file://C:\Users\username\Documents\GnuCash\2.6.21\xxxx\xxxx.gnucash
• Bug 796054 - Unposting and reposting invoice doubles amounts.
• Bug 796137 - query.search_for outputs critical qof.object errors and prevents queries being run.
• Bug 796248 - Editing Scheduled Transaction.
• Bug 796474 - Segmentation fault while setting up online banking.
• Bug 796509 - Saved reports don't respect *some* 'Edit report options'.
• Bug 796579 - Cannot go forward with empty duplicates screen.
• Bug 796665 - Backspace Key Inoperable After Ctrl+V.
• Bug 796669 - Dark Theme Text Colors Hard to Read.
• Bug 796724 - Can't overwrite gnucash DB on MariaDB.
• Bug 796725 - 4 of 6 Date Posted options fail to return matching transactions.
• Bug 796734 - Auto-complete entry not highlighting to allow for incremental entry.
• Bug 796737 - Patch to restore gncmod-python.c.
• Bug 796739 - Toolbar buttons have no labels.
• Bug 796751 - reconcile window usability - R column should be next to Amount.
• Bug 796755 - buggy window handling at startup.
• Bug 796756 - OFX import fails to recognize associated income accounts.
• Bug 796759 - --add-price-quotes leaves a lock on the file.
• Bug 796762 - Scrollbar partially hides the delete button in the Saved Report Configurations window.
• Bug 796766 - Credit note creating 'imbalance' with wrong entries.
• Bug 796777 - CVE-2008-1391: Integer overflow in included strfmon function.
• Bug 796788 - Strange behaviour in options of multicolumn report.
• Bug 796792 - SaveAs Overwrite dialogue in background and not visible.
• Bug 796812 - gnc_date_cell_get_date and gnc_date_cell_get_date_gdate have different date validation behaviour.
• Bug 796813 - Date validation inconsistent.
• Bug 796814 - Changing a book's read-only threshold doesn't immediately affect open registers.
• Bug 796816 - Notes field in Duplicate Invoice dialogue is 'read-only'.
• Bug 796819 - Bad icon with Spanish localization.
• Bug 796820 - References to 'Gnome Bugzilla' should be changed to 'GnuCash Bugzilla'.
• Bug 796833 - Excel csv Format misprocessed.
• Bug 796839 - Find transaction won't filter on Date Posted.
• Bug 796858 - TypeError: in method 'qof_query_int32_predicate', argument 2 of type 'gint32' on gnucash.gnucash_core.QueryInt32Predicate.
3.48.0:
Add ID to Transaction in SubscriptionChargedSuccessfully test webhook
Fix dispute results in transactions not showing the correct status sometimes
Add Elo card type support
3.47.0
Add processor respone code and processor response text to authorization adjustments subfield in transaction response.
Add support for Samsung Pay
Each R package should include ../../math/R/Makefile.extension, which also
defines MASTER_SITES. Consequently, it is redundant for the individual
packages to do the same. Package-specific definitions also prevent
redefining MASTER_SITES in a single common place.
Bitcoin is a decentralized P2P electronic cash system without a central
server or trusted parties. Users hold the crypto keys to their own money
and transact directly with each other, with the help of the network to
check for double-spending.