ANNOUNCE: GnuCash 3.905 Released

John Ralls jralls at
Sun Jun 14 19:19:31 EDT 2020

The GnuCash development team announces GnuCash 3.905, the fourth testing release for what will soon be GnuCash 4.0.


Baseline requirements

Operating Systems:

	• Linux: Ubuntu 18.04LTS
	• MacOS: 10.13
	• Windows: 8.1
Software Dependencies:

	• C++ standard is now C++17, requires gcc 8.0 or clang 6.0.
	• Cmake 3.10
	• boost 1.67.0
	• gettext 0.19.6 for general use, 0.20 to generate gnucash.pot.
	• glib-2.0 2.56.1, gtk 3.22.30
	• googletest 1.8.0
	• ICU, any version.
	• libdbi 0.8.3
	• libxml2 2.9.4
	• swig 3.0.12 Now required for building from tarballs as well as from git.
	• Webkit 2.4.11 Mac & Win32, 2.14.1 Linux/BSD
New Features

The intent is to have command categories with subcommands to better enable a richer command line capability as illustrated with the new report commands list and show.

	• 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
The GUI command, gnucash responds to the same command line arguments. In order to provide more options its syntax (and gnucash-cli's) for quote retrieval is changed from --add-quotes to --quotes get.

	• 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.
	• New type-ahead search added to sequential search when selecting an account 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.
	• Python bindings are now localized and their strings available for translation.
	• The new reports introduced in the Experimental Reports menu are moved to the main menu and the old reports hidden; the old reports can be unhidden by running GnuCash from the commandline with the --extra argument. That will cause the old reports to appear in their regular locations on the menu labeled (legacy). Note that new reports use different options and layouts and you may need to adjust your saved report configurations.
	• A new Transaction Association dialog, available from the new Update Transaction Association item in the register context menu, provides the ability to have multiple associations for a single transaction. Associations may now be easily removed.
	• Allow Associations to be added to invoices. The actual association when present is added as a link button which is shown below the notes.
	• A symbol is now displayed on transactions in the register when they have an attachment and the selected font supports the symbol.
	• The OFX file importer can now import more than one file at a time.
	• 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.
	• When importing, the matcher will no longer offer to match a transaction to one that has already matched in a previous import, nor will it offer to match more than one imported transaction to a single existing transaction.
	• Support for UK VAT and Australian GST added to the Income-GST report. The reports 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.
	• Add option to save Layout for Business items
Add two menu items under windows, one to save an existing layout for Invoices, Bills and Vouchers to their respective default layouts so the user set column widths will be used. The second menu item will reset the column widths to defaults and remove the default layout. Open Business items will also save their column widths to the page section so these can temporarily have different widths.

	• The matcher window columns 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. (Bug 797338)
	• OFX imports having balance information will now offer to immediately reconcile, passing the balance information in the file to the reconcile info.
	• Improve quickfill in the account pickers to filter the choices based on any part of the name.
	• 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.
	• 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. (Bug 797472)
	• New Account - Online Account match list to the Import Map Editor.
	• New invalid maps dialog in the Import Map Editor. (Bug 797612)
	• Optionally include the account code option in budget view.
	• 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.
	• Enable adding notes to budgets. (Bug 693180)
	• Support for AQBanking Version 6. This is required to support new FinTS protocols and the European Privacy Directive.
	• GnuCash 4.x will not migrate old gconf settings from GnuCash 2.4.x.
	• Reversing transactions will now pop a dialog box to request a posting date. (Bug 782455)
	• The Accounts page has a new optional column for the hidden property to make it easier to toggle it. Note that in order to see hidden accounts you must still enable that in the Filter by... dialog. (Bug 797486)
	• The Customer, Vender, and Employee overviews have a process-payment toolbar. (Bug 797605).
	• Account codes may now optionally be displayed in the Budget Tree View. (Bug 797489).
New/Revised Reports

	• Income-GST
	• Owner Report
Significant Code Changes

In 3.905


In previous 3.9xx releases

	• The signature for qof_session_begin(), QofSession::begin(), and QofBackend::begin() are changed to use an enum SessionOpenMode instead of three booleans.
	• gnucash-bin.c has been split into 4 parts, mostly C++:
		• gnucash.cpp, the GUI executable.
		• gnucash-cli.cpp, the command-line executable.
		• gnucash-commands.cpp, implementation for the commands that can be run from the command-line.
		• gnucash-app-core.cpp, common code required by both the command line and gui programs.
		• There's also an auxiliary file, gnucash-windows-locale.c because the localization code proved resistant to compiling as C++. We're planning another auxiliary file for the MacOS localization.
	• A new mock facility for several engine classes to permit better-isolated unit testing of components that depend on those classes.
	• Register filter and sort values are saved in the book's state file (book.gcm) in the user's configdir instead of in the book.
	• QofSession no longer creates its book, instead one must create a book first and pass that to qof_session_new()/QofSession::QofSession().
	• Add option to save Layout for Register items
Add two menu items under windows, one to save an existing register layout based on the register type to there respective default layouts so the user set column widths will be used when opening registers. The second menu item will reset the column widths to defaults and remove the associated default layout. Open registers will also save their column widths to the page section so these can temporarily have different widths.

	• Input Method handling in the register is moved to the GtkEntry where it belongs.
	• gnc_get_current_session() no longer creates an empty session if there isn't one already open.
	• The source directories have been rearranged and most of the loadable modules (e.g. are now normal dynamic libraries (, shorn of their gnc-module adapters. Make sure that you clean and rebuild your build directory.
	• All functions marked as deprecated in 3.x are now removed. If you have custom reports be sure to examine gnucash.trace for deprecation warnings and update your reports before trying them in GnuCash 3.905.
	• libgncmod-generic-import is now libgnc-generic-import.
	• Scheme no longer uses libgncmodule, always do (use-modules (gnucash foo))
	• Autocompletion improvements for the transfer-account field.
	• New test for invalid mappings for online accounts and a dialog to fix them.
	• jqplot is replaced by chartjs.
	• Separate most Guile binding code from the code that it wraps. It's now located in bindings/guile.
	• Improve Google test integration in cmake. CMake now requires only GTEST_ROOT and only when cmake isn't able to find Google test without help.
	• Unit tests for Scheme code with SRFI64.
Deprecations (will be removed in GnuCash 5.0

	• gnc:substring-replace-from-to
Between 3.904 and 3.905, the following bugfixes were accomplished. Some of these will also be fixed in GnuCash 3.11, some are for 4.0 only.

	• Bug 796993 - Gnucash should warn the user in case of missing Alphavantage API key instead of silently failing
	• Bug 797531 - Improve behaviour when following a hyperlink to a split that's filtered in the register
Currently if a jump to a filtered register is made, this could be from a report, other register, reconcile window and transaction associations and the destination split is not shown the jump will end up at the last active cell. This could be confusing so add a test for the destination split being visible and warn the user with an option to temporarily clear the filter.

	• Bug 797746 - [reports] German umlauts not escaped
	• Bug 797790 - [Transaction Association] Change dialogue: use existing information to determine the default folder
When there is no association set, if the file option is chosen set the default folder for the file chooser to that of the path head preference.

	• Bug 797791 - [Windows] list of command line options after 'gnucash.exe --help'?
Make gnucash-cli a console application on Windows so that its output will be redirected to the connected console.

	• Bug 797799 - Add Tip of the Day for "Notes" field
	• Bug 797804 - Date entry field is glitchy (v3.904 regression)
The following fixes and improvements were not associated with bug reports or new features:

	• Ensure balance-sheet balances do not ignore closing entries, including them in closing balances from profit&loss.
	• [balsheet-pnl] value-collector doesn't need to ignore closing
The value-collector is only used to tally account balances for asset&liability accounts. These accounts never have closing entries. No need to test closing property.

	• [trep-engine] don't create intermediate cells object
from cell-calculators (a list of column-info), the cells object (list of column-data) was created unnecessarily. use cell-calculators directly.

	• [gnucash-cli] --report show/list outputs to stdout
and their error messages output to stderr

	• I18N: Improve tooltip about double-line-mode
Suggestion by Adrien Monteleone

	• Drop unused boost::locale::generator instantiations
We now have one single case in gnc-locale-utils and all code uses gnc_get_boost_locale to get the proper locale.

	• Fix translations using boost::locale::translate
	• Fix report dependencies that caused Xcode build failure.
	• Update Schedule Transaction Template dialog status bar
Copy the functions from gnc_main_window that updates the status bar with the action tooltips to gnc_window so that both GncMainWindow and GncEmbeddedWindow can use without duplicating code.

	• Add the Register width menu options to the Scheduled Transaction Template dialog.
	• [balance-sheet] hide trading-accounts if use-trading-accts? is unset
	• Fix a null parent error in the New Account Hierarchy Assistant.
Updated Translations: German

Known Problems

	• Bug 797786 - New Balance Sheet does not balance when multiple currencies and commodities (stock holdings) are included
	• Bug 797800 - [help screen items] clarification welcome
Complete list of all open bugs.


Between 3.904 and 3.905, the following bugfixes were accomplished:

	• Bug 770132 - Price editor does not find ASX:XRO
	• Bug 797783 - [PATCH] The "over" and "under" estimate in the unrealized capital gain chapter should be reversed.
The following fixes and improvements were not associated with bug reports:

	• L12N:it, pt update: Vanguard is part of AlphaVantage
This changed already, when yahoo shut csv interface

	• Update fq-sources.html: asx source is working again
Also explain why you need F::Q 1.41

	• Tell travis to use ubuntu-18.04-docker file
	• Appendix: add "Ticker" to distinguish from security numbers
	• Note on dots in yahoo symbols
Getting GnuCash for Windows and MacOS

GnuCash is provided for both Microsoft Windows 8.1® and later and MacOS 10.13 (High Sierra)® and later in pre-built, all-in-one packages. An installer is provided for Microsoft Windows® while the MacOS® package is a disk image containing a drag-and-drop application bundle.

The SHA256 Hashes for the downloadable files are:

	• 20409d89f7e2af6756dcec85b7321b0cbe68e8c6eaaf300c6741136a58d9e2a0  gnucash-3.905.tar.bz2
	• 7a95263708bc0960d870f50d29fd20cfb3d7fcedbb16ee6d1aaac8f91b9a93d0  gnucash-3.905.tar.gz
	• 9a92191796416cce934aebd0458dbf84e326a633fae9d457a1fd0d4fd55050fa  gnucash-3.905.setup.exe
	• b0a9a4f69bdc33defe5f29a5d7956fcf42001ba04f62ec72b07ff401e853bd7a  Gnucash-Intel-3.905-1.dmg
	• 565bd71b89dbce29f6ae9530cf44d9290df89000500f0a68602a056f95caa6c6  gnucash-docs-3.905.tar.gz



GnuCash is now available as a flatpak from Instructions for installing and running.

Getting GnuCash as source code
If you want to compile GnuCash 3.905 for yourself, the source code can be downloaded from:

You can also checkout the sources directly from the git repository, see for instructions.

To compile GnuCash from the source code by yourself, you will need at least Gtk+ 3.22.29, Guile 2.0, Boost 1.67, WebKitGtk 2.4, GoogleTest 1.8.0, cmake 3.10 and SWIG 2.0.12 if compiling from git. Please consult the README.dependencies file in the sources for the exact list of dependencies and versions.

Getting the documentation

If you want to compile the GnuCash Documentation 3.905 for yourself, the source code can be downloaded from:

Note that the documentation for unstable releases is not on the GnuCash website. It is built daily and may be found on the development server under the locale directory; "C" is English, "de" is German, and so on.

The documentation is included in the MacOS and Windows application bundles.
About the Program

GnuCash is a free, open source accounting program released under the GNU General Public License (GPL) and available for GNU/Linux, *BSD, Solaris, MacOS, and Microsoft Windows. Programming on GnuCash began in 1997, and its first stable release was in 1998.

More information about the gnucash-announce mailing list