gnucash stable: Multiple changes pushed

Christopher Lam clam at code.gnucash.org
Thu Jun 25 19:29:08 EDT 2026


Updated	 via  https://github.com/Gnucash/gnucash/commit/e5142dfd (commit)
	 via  https://github.com/Gnucash/gnucash/commit/994b04a1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3b2daddb (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b4fd332d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c7d35bcd (commit)
	 via  https://github.com/Gnucash/gnucash/commit/287c802d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/590d76cc (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2b93466c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5ee139b5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/12e2922f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/122cb6dc (commit)
	 via  https://github.com/Gnucash/gnucash/commit/00803ba0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2d1859ff (commit)
	 via  https://github.com/Gnucash/gnucash/commit/29d74209 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2a01ce23 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b3e29a81 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/24481321 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3c7e0142 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/06a79ad2 (commit)
	from  https://github.com/Gnucash/gnucash/commit/dc03a84c (commit)



commit e5142dfd970ee831a66504a4e252651c019c4aea
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Jun 26 07:26:24 2026 +0800

    Revert "[qofid.cpp] for Split and Trans reserve QofInstance* map"
    
    This reverts commit 00803ba018527f30ea3239fd60a8675009a878ef.

commit 994b04a161d43e623eefad5e9d39537f3dc0a4ce
Merge: 3b2daddb47 c7d35bcdb2
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Jun 25 12:31:53 2026 -0700

    Merge Brent McBride's 'uri-format' into future.

commit 3b2daddb477c98a4d116e6cd1c9e3a62b6a0045a
Merge: b4fd332de3 00803ba018
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Jun 25 12:13:29 2026 -0700

    Merge branch 'use-boost-flat-map' of https://github.com/christopherlam/gnucash into future

commit b4fd332de3f15cd28183c06a6c372fb29ca4b4fc
Merge: 287c802d8c dc03a84c33
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Jun 25 08:18:34 2026 -0700

    Merge branch 'stable' into future

commit c7d35bcdb2cbd8fb552e28b196cef862e92d8b39
Author: Brent McBride <mcbridebt at hotmail.com>
Date:   Tue Jun 23 19:33:40 2026 -0700

    gnc-uri: compose URIs with std::format

commit 287c802d8c22b5dfe3dbcb0d0c6ed74ae0d8f0d4
Merge: 590d76ccc4 5ee139b556
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Jun 23 16:02:03 2026 -0700

    Merge Brent McBride's 'uri-utils-cpp' into future.

commit 590d76ccc4a4ce370266d809fe246d03d83c44b6
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Jun 23 15:35:45 2026 -0700

    Clang: -Wno-character-conversion was introduced in clang 21.
    
    Gcc doesn't have it at all.

commit 2b93466c213b082bb2d382ee377a936bd695122f
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Jun 22 19:37:33 2026 -0700

    Set C and C++ standards to 23.
    
    This required some adjustments:
    * New warnings character-conversion and deprecated-volatile are
    disabled for the reasons indicated in the adjacent comments.
    * C23 is a lot stricter about function pointer signatures so some
    callbacks in gnc-frequency.c and dialog-sx-editor had to be cast using
    the long-available GLib macros.
    * C++23 is stricter about a reference (foo&) parameter taking an
    lvalue only; a lambda used in several csv-importer files was trying to
    pass an rvalue so the parameter had to be changed to perfect
    forward (foo&&).
    * C++23 doesn't allow oring together enum values from different enum
    types, even anonymous ones, so the two gnc_numeric enums for rounding
    and denominators are combined into a single enum GncNumericRoundDenom.
    * C++20's new automatic generation of comparison functions combined
    with its stricter automatic conversion rules caused trouble with
    operator==() and operator!=() for gnc::GUID and GncGUID, complaining
    about ambiguity or not being able to find operator==(const GncGuid&,
    const GncGuid&). The fix has two parts: Changing operator!=(const
    gnc::GUID&, const gnc::GUID&) to operator==(const gnc::GUID&, const
    gnc::GUID&) to resolve the conversion problem and changing the call
    forwarding operator==(const GncGuid&, const GncGuid&) to only cast the
    first argument to gnc::GUID so that it could work unambiguously with
    operator==(const gnc::GUID&, const GncGuid&).
    * python sqlite3test: C23 apparently makes AppleClang a lot pickier
    about includes.

commit 5ee139b5564944d7eb3f03fe5ae7e16211681f30
Author: Brent McBride <mcbridebt at hotmail.com>
Date:   Sun Jun 21 21:19:50 2026 -0700

    Modernize gnc-uri utilities into a GncUri C++ class

commit 12e2922fc5dd6f1ce836d88bbee33a3a4731e743
Author: Brent McBride <mcbridebt at hotmail.com>
Date:   Sun Jun 21 21:19:38 2026 -0700

    Rename gnc-uri-utils.c to gnc-uri.cpp

commit 122cb6dcca4d27077767373f527c37dd215e17a7
Author: John Ralls <jralls at ceridwen.us>
Date:   Wed Jun 17 13:29:36 2026 -0700

    Run coverage tests on ubuntu-26.04.
    
    ubuntu-latest isn't latest enough. Recent lcov v2 errors
    out if there are no GCDA files in the target directory.
    Call it with a shell script that checks first.

commit 00803ba018527f30ea3239fd60a8675009a878ef
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Wed Jun 17 11:07:55 2026 +0800

    [qofid.cpp] for Split and Trans reserve QofInstance* map

commit 2d1859ff3e9e88c1fb723b246ed80407f479d95b
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat May 30 23:36:04 2026 +0800

    [qofid.cpp] use boost::unordered_flat_map
    
    to store guid->qof entities
    
    note this is appropriate if the map values are QofInstance* pointers,
    because unordered_flat_map does not guarantee stable iterators.

commit 29d74209a7b6edbe00abf9501b7ffe59256dccfd
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Jun 14 12:05:47 2026 +0800

    [guid.cpp] create templated guid_hash function
    
    for arbitrary sized hashes

commit 2a01ce23763756d7c3241a76bf08415193bd2d3b
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Jun 16 13:57:56 2026 +0800

    [guid.cpp] plug char* guid_to_string leak
    
    it seems unused however

commit b3e29a81fdfd784b1dc9229577fa289ff2c13afa
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Jun 14 10:30:02 2026 +0800

    [qofid.cpp] use ctor/dtor for QofCollection
    
    which will make it easier to construct in-place in book->hash_of_collections

commit 24481321def01af9406d16a87faeaa1865c1d09a
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Jun 11 14:01:04 2026 -0700

    Replace deprecated g_module_build_path with g_build_filename
    
    Note that deducing the module file extension is now done by g_module_open.

commit 3c7e01420ad448a4ca05b2b8db7c1a8199c5c9df
Author: John Ralls <jralls at ceridwen.us>
Date:   Wed Jun 10 21:34:56 2026 -0700

    Replace mac dependencies tarball.
    
    Provides new ICU required for the future branch.

commit 06a79ad25d8022b55c77e896b9cb24c333b7780f
Author: John Ralls <jralls at ceridwen.us>
Date:   Wed Jun 10 21:34:56 2026 -0700

    Create branch future for 6.0 development.



Summary of changes:
 .github/workflows/ci-tests.yml                     |   8 +-
 .github/workflows/coverage.yml                     |   4 +-
 .github/workflows/mac-tests.yaml                   |  17 +-
 CMakeLists.txt                                     |  67 ++--
 README.dependencies                                |  38 +-
 bindings/python/sqlite3test.c                      |   4 +-
 common/cmake_modules/GncCoverage.cmake             |  41 +-
 gnucash/gnome-utils/gnc-frequency.c                |  24 +-
 gnucash/gnome-utils/gnc-main-window.cpp            |  31 +-
 gnucash/gnome/dialog-sx-editor.c                   |  26 +-
 gnucash/gnome/gnc-plugin-page-invoice.cpp          |   1 -
 .../csv-imp/assistant-csv-price-import.cpp         |   7 +-
 .../csv-imp/assistant-csv-trans-import.cpp         |  11 +-
 gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp |   7 +-
 .../import-export/csv-imp/gnc-imp-settings-csv.cpp |   1 -
 gnucash/import-export/csv-imp/gnc-import-tx.cpp    |   2 +-
 gnucash/register/ledger-core/split-register.c      |   2 +-
 libgnucash/backend/dbi/gnc-backend-dbi.cpp         |  37 +-
 .../backend/dbi/test/test-backend-dbi-basic.cpp    |  18 +-
 libgnucash/backend/xml/gnc-backend-xml.cpp         |  14 +-
 libgnucash/backend/xml/gnc-xml-backend.cpp         |   7 +-
 .../backend/xml/test/gtest-load-save-files.cpp     |  20 +-
 libgnucash/backend/xml/test/gtest-xml-contents.cpp |   7 +-
 libgnucash/backend/xml/test/test-load-xml2.cpp     |   7 +-
 libgnucash/core-utils/gnc-filepath-utils.h         |   3 +
 libgnucash/engine/Account.cpp                      |   1 -
 libgnucash/engine/CMakeLists.txt                   |   3 +-
 libgnucash/engine/gnc-numeric.h                    |   8 +-
 libgnucash/engine/gnc-uri-utils.c                  | 429 ---------------------
 libgnucash/engine/gnc-uri-utils.h                  |  37 --
 libgnucash/engine/gnc-uri.cpp                      | 409 ++++++++++++++++++++
 libgnucash/engine/gnc-uri.hpp                      | 119 ++++++
 libgnucash/engine/guid.cpp                         |  17 +-
 libgnucash/engine/guid.hpp                         |  20 +-
 libgnucash/engine/qof-backend.cpp                  |  11 +-
 libgnucash/engine/qofid.cpp                        |  71 ++--
 libgnucash/engine/qofsession.cpp                   |   7 +-
 libgnucash/engine/test/CMakeLists.txt              |   6 +-
 libgnucash/engine/test/gtest-gnc-uri.cpp           | 170 ++++++++
 libgnucash/engine/test/test-gnc-uri-utils.c        |  84 +++-
 libgnucash/gnc-module/test/test-dynload.c          |  19 +-
 po/POTFILES.in                                     |   2 +-
 42 files changed, 1056 insertions(+), 761 deletions(-)
 delete mode 100755 libgnucash/engine/gnc-uri-utils.c
 create mode 100755 libgnucash/engine/gnc-uri.cpp
 create mode 100644 libgnucash/engine/gnc-uri.hpp
 create mode 100644 libgnucash/engine/test/gtest-gnc-uri.cpp



More information about the gnucash-patches mailing list