The GnuCash development team announces GnuCash 3.903, the first testing release
for what will soon be GnuCash 4.0.
Changes
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
For 3.903
? 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 --run-report=[reportname/guid] datafile.gnucash
? gnucash --run-report=[reportname/guid] --output-file=x.html datafile.gnucash
? gnucash --run-report=[reportname/guid] --output-file=x.html
--export-type=TYPE datafile.gnucash
? When deleting accounts the destination accounts of moved splits will be
checked to ensure that they're the same as the source. If they're not
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 there 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 there
column widths to the page section so these can temporarily have different
widths.
In previous 3.9xx releases
? 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.903
? 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.
In previous 3.9xx releases
? The source directories have been rearranged and most of the loadable modules
(e.g. libgncmod-engine.so) are now normal dynamic libraries (libgnc-engine.so),
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.91.
? 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.902 and 3.903, the following bugfixes were accomplished. Some of these
will also be fixed in GnuCash 3.11, some are for 4.0 only.
? Bug 796531 - transaction report: export file/location associated with
transaction
Displays the Transaction Association link in the Transaction Report and when
selected will open the association outside of Gnucash as it currently does when
opened from the register.
? Bug 796932 - Invoices order when assigning payments
sorts documents in dialog-payment.c by date, then by document ID.
? Bug 797052 - Autofill Selection is Corrupted After Clicking Description
? Bug 797185 - [transaction association window] sorting by column.
? Bug 797185 - Allow sorting on all Transaction Association columns
? Bug 797220 - delete account allows move of all transactions to account having
non-matching currency
? Bug 797236 - Regression: Reconcile window transaction list resets to top when
new transaction created in account.
? Bug 797264 - 3.5 can't use Chinese IME input
? Bug 797329 - Using Japanese IME to enter transactions results in unexpected
field jumps
? Bug 797388 - GnuCash 3.6 segfaults regularly.
? Bug 797648 - Cannot reconcile both splits of a transaction with 2 splits for
bank account subaccounts if only 1 is cleared
? Bug 797659 - Liabilities in budget report no longer calculate correctly
? Bug 797689 - Child dialog windows are demoted behind parent window when task
switching.
? Bug 797707 - CSV Transaction Export: custom dates should be insensitive by
default
? Bug 797717 - Summary bar changes height when opening a menu or scrolling over
an option
? Bug 797737 - Import matching can match an imported transaction to an
existing, previously matched transaction
? Bug 797743 - Monetary amounts are occasionally rendered in fractions
? Bug 797745 - Unable to change default report currency
? Bug 797748 - missing header "algorithm"
? Bug 797750 - SIGSEV in swig-engine.c
? Bug 797754 - In an account register, scrolling stops working when the mouse
pointer re-enters the scrollbar after leaving it
? Bug 797760 - Broken register split activity--cannot delete splits, unable to
tab complete account name.
? Bug 797761 - Customer report beta: opening balance tax column shows garbage
string
? Bug 797768 - View Lots sorting numbers not right.
? Bug 797770 - Reconciliation report does not consider credit transactions
The following fixes and improvements were not associated with bug reports or new
features:
? When no file is open don't ask to save it when opening another file or
quitting GnuCash.
? Add an Invoice section to dialog-utils for when the path head changes.
? Change the position the register pop up so it aligns better.
? Fix the alignment of the Notes label in Transfer dialog.
? Set the initial Split horizontal paned position to be half way when the
window is realized.
? Set the expanding column in the lot viewer to be the 'Title' and the
'Description'. Also ellipsize the description to help with long
transaction descriptions.
? Change the alignment of the numeric columns to be right aligned so the
numbers line up.
? [new-aging] speed up split->owner.
? split->owner will now cache results, bypassing gncOwnerGetOwnerFromLot
and gncInvoiceGetInvoiceFromLot for repeated calls to the same split.
? Previously each call to split->owner would allocate a new gncOwner. Now a
new gncOwner is only allocated during a cache miss. the list of gncOwners is
maintained and is purged when split->owner is called with #f. There is no
need to maintain a tofree list of gncOwners anymore.
? Instead of slow gncOwnerReturnGUID to test equality, use gncOwnerEqual
? Fix crash in case filter is less than 4 parameters.
? Change the Options GtkCheckBox to use its own built-in label and remove the
label in the first column.
? Enable the Options Checkbox label to be used to toggle values.
? Add enum SplitRegisterTypeGroup to group registers.
? Change state_section parameter for gnc_table_save_state.
? Fix clang error about type mismatch GtkWidget* != void* aka gpointer.
? HIG, I18N: Improve Budget menu entries
? I18N: fix translator comments in window-reconcile.c
? I18N: Fix several issuse with 'Help not found' strings.
? [QofLog] Replace hashtable with tree of vectors: 16x speedup.
? Make qof_log_set_file static. Used only internally.
? Move QofLogModule typedef to qoflog.h where it belongs.
? [balsheet-eg] don't use safe-cadr and safe-cdr
They are safety hacks which indicate inability to deal with lists. use lists
properly.
? [balsheet-eg] reindent process-acc-list-r
? [eguile-utilities] deprecate single-use function used only by balsheet-eg.scm
? [balsheet-eg] use "foreign" css class correctly.
? [eguile-gnc] don't catch errors in eguile-gnc.
? Initially select the last account chosen in the account picker dialogs.
Separately keeps track of last investment account, security account, and income
account. One issue is that gnc_import_select_account doesn't tell the caller
if it put up a dialog or found the online ID on an existing account. This means
the last account may be one the user didn't manually select. This may or may
not be the right thing to do.
? Transaction matcher dialogue was not closing when changing book.
? Correct parent widget for import new account dialog.
? No Selection on load for Bill Terms
Change the selection process so it selects the first entry if present on load
and also selects a newly created entry when completed.
? Change the Tax Table dialogue to be based on a GtkWindow
When using Gnucash on Microsoft Windows and a dialog opens a further dialog when
you switch away from the application and back the last dialog that has the focus
is behind the parent and it appears like the application has froze. To fix this
try to use only one level of dialogue so change the Tax Table to use a GtkWindow
with no transient parent.
? Align the import matcher help button
Move the import matcher help button to the left in the CSV transaction importer.
? Merge branch 'maint'
? Fix LIBDBI_DRIVERS_DIR generation.
? Use more precise strings in gnc-split-reg.c
You can edit the account very well, but not its transactions.
? L10N?? "F?r" klein in "Ergebnisrechnung f?r Periode" etc.
? I18N: Msgmerge recent changes
? I18N: Hotfix for bug 797725
Add a translator comment
? L10N:de_CH: Ein weiterer Tippfehler im Kontenrahmen KMU
? [test-stress-options] fix combinatorics testing
Premise: pairwise combinatorics testing is only possible when all options have
at least 2 options. The "General Journal" report is unique because it
starts with the Transaction Report options generator, and adds a few hidden
options. Unfortunately the Transaction Report receives the
"General/Stylesheet" option, with only 1 default stylesheet. The
General Journal report therefore has 1 stylesheet option with only 1 choice, and
is not acceptable to jenny for pairwise testing. It would fail the combinatorics
testing. Adding other stylesheets did not successfully allow pairwise testing.
Therefore the simplest way to test General Journal is to disable multichoice
testing whereby num(choices) is only 1.
? [Account.cpp] more xaccAccountTypeGetFundamental types
? Fix the crash that occurs when opening a new book when the
transaction-matching dialog has been opened then closed.
? Display report zoom factor with one decimal space.
? Fix transaction post_date being set to midnight local.
? Respect the environment LD_LIBRARY_PATH for loading Scheme modules and tests.
? Add a tip about announcements and other mailing lists
? Change occurrences of gdk_display_get_default to gdk_window_get_display()
? Remove some Gtk version checks in code
? Remove some Gtk version checks for CSS
? Fix libgnc-app-utils.dylib install_name_dir.
The install location changed as part of expunging libgnc-module.
Updated Translations: German, Swiss German, Ukrainian
Known Problems
? Bug 797708 - Reconcile Dialog on Import
? Bug 797746 - [reports] German umlauts not escaped
Complete list of all open bugs.
.
Documentation
Concurrent with the release of Gnucash 3.903 we're pleased to also release a
new version 3.903 of the companion Help and Tutorial and Concepts Guide.
? L10N of "Improve links to Selinger's tutorials"
? Minor Correction to Help Manual
Correct reconciliation action on U+C entry in table from 'n' to
'c' Modification of PR #137
? Improve links to Selingers tutorials
Use entities, also for titles
? 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.
? Minor imrovements on Invoice ID
Unification of lists
? CI for gnucash-docs should be on Ubuntu 18.04 to match gnucash.
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:
? ebf67b2182426ff486a5e92bdc57cffc5de160f112014294f210a70ed9172950
gnucash-3.903.tar.bz2
? fef6f3545618b6506c8e4459532673065f8d235c8b55ae368d4cb5ff50724110
gnucash-3.903.tar.gz
? 1295dbcde5bcb5dd179f4a936081f107fd3a75c91a4f73b6f2b5741a69cd46eb
gnucash-3.903.setup.exe
? 237d0cae6df20ec0e08a140f2a0e40f6f7e314db8199780c99011cfe9c85c31f
Gnucash-Intel-3.903-1.dmg
? 4a68abaded80a73da8b6ad2b2c2dd561e892e633a9eabfda5c2737042467d1ea
gnucash-docs-3.903.tar.gz
Getting GnuCash:
MacOS:
https://github.com/Gnucash/gnucash/releases/download/3.903/Gnucash-Intel-3.903-1.dmg
https://downloads.sourceforge.net/gnucash/files/gnucash%20%28unstable%29/3.903/Gnucash-Intel-3.903-1.dmg
MicrosoftWindows:
https://github.com/Gnucash/gnucash/releases/download/3.903/gnucash-3.903.setup.exe
https://downloads.sourceforge.net/gnucash%20%%28unstable%29/gnucash-3.903.setup.exe
Source:
https://github.com/Gnucash/gnucash/releases/download/3.903/gnucash-3.903.tar.bz2
https://github.com/Gnucash/gnucash/releases/download/3.903/gnucash-3.903.tar.gz
https://downloads.sourceforge.net/gnucash/gnucash%20%28unstable%29/3.903/gnucash-3.903.tar.bz2
https://downloads.sourceforge.net/gnucash/gnucash%20%28unstable%29/3.903/gnucash-3.903.tar.gz
GnuCash is now available as a flatpak from Flathub.org. Instructions for
installing and running.
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
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.
Sources:
https://github.com/Gnucash/gnucash/releases/download/3.903/gnucash-docs-3.903.tar.gz
https://downloads.sourceforge.net/gnucash%20%28unstable%29/gnucash-docs-3.903-1.tar.gz
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.