Download GnuCash 4.0
Version 4.0 of GnuCash has been released. The “old” 3.x branch is still maintained and version 3.11 has also been released at the same time. GnuCash is a cross platform and open source accounting program for individuals and small businesses. It uses the double entry system and is able to easily keep track of, for example, bank accounts, investments, income and expenses, budgets, mortgages and loans and can of course create reports and graphs. The release notes for version 4.0 mention the following changes and improvements:
Baseline requirements:
Operating System:
- 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
- google test 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.
- Web Kit 2.4.11 Mac & Win32, 2.14.1 Linux/BSD
New Features:
- 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 guide. 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
- 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
- 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.
- 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.
- 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.
- 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.
- 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. NB This is incompatible with previous versions of the report and will require regenerating saved configurations.
- 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 for the European Payment Services Directive (PSD2).
- 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, Vendor, 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:
- 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().
- 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 (eg libgncmod-engine.so) are now normal dynamic libraries (libgnc-engine.so), shorn of their gnc-module adapters. Make sure 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 4.0.
- 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 has been replaced by chartjs.
- Separate most Guile binding code from the code that it wraps. It’s now located in bindings/guile.
- Improve Google tests 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
Version number | 4.0 |
Release status | Final |
Operating systems | Linux, macOS, Windows 8, Windows 10 |
Website | GnuCash |
Download | https://www.gnucash.org/download.phtml |
File size | 142.00MB |
License type | GPL |