forked from Gnucash/gnucash
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
5067 lines (4576 loc) · 250 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Version history:
------- -------
3.2 - 25 June 2018
The third release of the 3.x stable series.
The following bugs have been fixed:
Bug 787401 - Test Report System - Report Definition.
Bug 794617 - Can't compile with -DWITH_GNUCASH=NO due to scm-gnome-utils.
Bug 795101 - Scroll Bar in Reconcile Window Floats in and covers the check
boxes.
Bug 795247 - datepicker broken in Persian.
GnuCash passes dates as integer y/m/d without using locale-specific
formats, so we need to strip out 'E' and 'O' from the format when
scanning dates or determining separators in gnc-date. None of '-',
'E', or 'O' are supported by boost (and '-' causes errors), so
strip them out from formatters in gnc-datetime as well.
Bug 795253 - Have problems input Chinese.
Bug 795272 - QIF importer causes application crash if action is invalid.
Bug 795276 - Invalid date on price stops file from being parsed.
Bug 795362 - Special variable "i" not parsed in function calls.
Due to balance tests with insane random values.
Bug 795471 - Impossible to Edit Budget Unless Maximized.
Bug 795519 - Credit card payment after reconciliation.
Bug 795666 - Backslash '\' in Description field spoils CSV Import without
helpful error message.
Bug 795831 - When read only threshold set, dates are silently changed.
Display a message box informing the user of the change.
Bug 795944 - Cannot store change to Business Suppliers data.
Bug 796079 - Repeatable Crash in Tax Report Options.
Bug 796081 - Tax Schedule Report - An error occurred while running the report.
Bug 796083 - Reconcile Selection Doesn't Work Anymore.
Bug 796117 - Connecting 3.1 to an existing mysql db drops all data
Provide a backup recovery function that instead of dropping
primaries and restoring backups merges the primaries and
backups. This should handle a worst-case safe-save failure where
the backup tables don't have a complete set of rows for some
reason.
Bug 796256 - Main Window stays hidden when starting after closing main
window while minimized.
Bug 796369 - Notes lost or perhaps just not displaying when using SQLite
backend.
This bug caused data loss if you saved your SQLite3 database to a
different file or database. The problem is that in SQLite3 (though
not in MySQL or PgSQL) the subquery ((SELECT DISTINCT guid FROM
transactions)) (note the double parentheses) returns only the first
guid in the subquery's results. Some transactions are loaded by
special queries and those queries are also used to retrieve the
transaction's slots so they weren't affected.
Bug 796398 - Restrict accelerator keys to valid date range.
Bug 796409 - Incorrect Current Value for Stocks.
Missed calculating the value in the register summary bar.
Bug 796423 - Cannot Input Chinese, seems does not work with other IME too.
Toggles not in view with all rows selected weren't being redrawn.
Bug 796484 - csv import: iostream error
Unfortunately it turns out that we can't use filestreams because
they can't take path arguments containing Unicode on Windows.
Bug 796527 - invalid currency on scheduled transactions.
* Don't even check for price/exchange rate on template
transactions, there's no point.
* Check all split commodities are valid, abort transaction
creation if not.
* If the template transaction's currency isn't used by any of the
splits set the new transaction's currency to the first-found
currency if there is one, otherwise to the first-found commodity.
Bug 796537 - Transaction Report cannot sort by "num".
Bug 796586 - QIF import incorrectly converts unicode characters from UTF8
encoded file.
Bug 796595 - QIF Import Select Account button to add a new account is
labled gnc-account-new but should be New.
Bug 796600 - stock split cash-in-lieu income/asset labels backwards.
Bug 796614 - Reconciliation report contains incorrect transactions.
Bug 796638 - configuration not properly saved for CSV transactions import
form.
Other repairs or enhancements not marked as bugs:
Transaction report improvements:
* Performance: Do all filtering ops before sorting.
* Move the options summary before the subtotals table.
* New unit tests
* Enable computing averages in subtotal grid.
* Generate the subtotal grid only if the primary sort key enables
subtotals.
* Fix subtotal grid to support multiple commodities.
* New filters.
* Much cleaning and refactoring of the internals.
Cache the num-split-action book option to avoid thousands of KVP queries
for the same value when loading a register.
Create a static string for book option KVPs to save an extra malloc/free
on old compilers without small-string optimization.
Add tooltip support for register cells.
New unit tests for the balance sheet report and invoices.
Consolidate charting code into a single module.
Removed an incomplete and abandoned C implementation of QIF import.
Restored libsecret support that had been left out of CMake.
Replace old-style html style attributes with css.
Modify emitted html to be parseable by the Guile SXML module for testing.
Remove support for long-gone gtkhtml renderer.
Clean up code generating html tables.
Ensure full precision of doubles is saved to SQL.
std::iostream's operator<<(double) uses only 6 digits of precision by
default.
Make float database operations more consistent, working around dbd-sqlite3's
failure to support doubles (dbd-sqlite3, not sqlite3 itself).
Prevent crash in gnc-tree-view.c: When getting information from the state
file, protect against the key not having a '_' which is used to split the
string.
Add the full account name to the saved register settings
If you need to delete the layout for a register in the settings file,
the only thing identifying it is the account guid. To make it easier
for humans, add the full account name also.
When register pages are restored it uses the full account name.
When register pages are restored, the account is found from the full
name so if the separator changes it will fail. Instead, also save the
account guid and use that as default to find the account falling back
to the full name.
Fix misplaced try block that caused unhandled exception if year out of
range.
Fix permanent storage of vendor details: Since the data types did not match
for the billterms and taxtable, those references/guids were not saved to
the database.
Update invoice reports to use totals calculate by gncInvoice. This should
give a consistent representation of invoice data across the application.
Ensure gncEntry rounding is consistent. Internally calculated values in the
entry are never rounded. Consumers of gncEntry's calculated values can
request them either rounded or not. Next use a pragmatical approach for
calculating values on invoices based on the entry values: do the rounding
such that we never create an unbalanced transaction while posting.
That means:
* round each entry's net value before summing them in net total
* accumulate all tax totals on invoice level per tax account before
rounding
and round before before summing them in a global tax total
Hopefully this will catch a few more rounding issues in this area.
A complete solution can only offered if we allow users to manually correct
tax entries. This requires changes to user interface and data format so
that's not going to happen in gnucash 3.x.
Use Scheme SRFI-64 test framework for new Scheme unit tests.
New compilers (gcc-8.0 and Xcode 9) bring new warnings, so several fixups to
mollify them.
Lowercase all cmake commands for better readability.
Metadate migration (2.6.x->3.x) fixes for Windows.
Ensure timezone is set correctly in FreeBSD.
Updated Translations: Dutch
3.1 - 29 April 2018
The second release of the 3.x stable series.
The following bugs have been fixed:
Bug 118391 - Long currency names untranslated
Bug 769686 - Notes not imported when using update and reconcile in
import transactions from CSV
Bug 772776 - VERY large queries (over 11000 fields in IN clause) slow
down GnuCash
Bug 782144 - git-master - Save Corrupts Data File / Not Open Data File
Bug 792105 - Startup takes several minutes
Bug 793461 - Transaction matcher window blank when importing QFX
Bug 794767 - Dates default to 01/01/1970
Bug 794916 - Fails to find environment file at startup when installation
prefix is '/opt'
Bug 794936 - 3.0 does not open previously saved sqlite3 files properly
- corrupted business data
Bug 794941 - Both print icons export to pdf
Bug 794953 - Ellipsize on short tab labels
Correct error on when to ellipsize tab labels. Also as this
is used in two places separate out this to new function so
it is not duplicated.
Bug 794990 - Double click does not work on saved reports
When you double click on the saved report description nothing
happens. This was down to a conflict on a couple of call
backs and one of them was incorrectly setup.
Bug 794994 - Display Alphavantage key in full
Set the entry to expand so all the space is used to display.
Bug 795031 - 3.0 Crashes on loading when opening 2.6.19 file
Bug 795039 - Crash on startup using Technicolor Style sheet in report
Bug 795040 - GnuCash crashes when searching for a newly created bill
Bug 795049 - GnuCash 2.6.20-1 (Fedora Linux package) is unable to open
MariaDB.
Bug 795064 - Enable subtotal-only if either sortkeys are dates
This will allow 'show subtotals only' if sortkeys are
date-types. This allows, for example, prime-sortkey=date,
yearly. sec-sortkey=date, monthly.
Bug 795068 - src/optional/python-bindings missing several files
Bug 795080 - Some dates reset to 01/01/1970
An odd corner case: BST apparently came off of DST at 23:00
26 Oct 2014, so midnight that day was ambiguous about being
DST or not; that causes the local_date_time constructor to
throw in spite of the tm.is_dst element being 0 (meaning pick
standard time). Instead of just failing in that case, try
constructing a local_date_time three hours later then adjust
it back three hours. If *that* doesn't work then throw a
std::invalid argument.
Bug 795082 - CSV import crashes if a transaction's 'Account' field is
empty and no default Account set
Bug 795101 - Scrollbar floats and covers toggle buttons
When the scrollbar appears for the reconcile windows it can
float above the reconcile toggle button which make it
difficult to toggle. Move this column to the start which has
the advantage of aligning the amount column above the Total
value.
Bug 795142 - Unable to enter account codes in business sheets
In Bills, Invoices and Expense vouchers you can not enter an
account code in an account field like you can on a normal
register, enable this.
Bug 795155 - CSV import does not distinguish between deposit and withdrawal
Bug 795347 - Australian (GMT+10) OFX transactions imported have previous
days date
Bug 795377 - Reads and saves Gnucash 2.6.19 XML file, then can't reread
it, due to bad date in old file
Bug 795389 - Hard to see figures in the budget window
The budget view had hard coded black for normal values and
dark grey for other values. Changed this so normal values
are reset to default color and adjusted the grey based on
default color for theme.
Bug 795405 - All Dates in Price Database Off-By-One After 3.0 Upgrade
Bug 795446 - On Windows there is a blank tip of the day
When the tip_of_the_day.list is created a new line is
appended to the list file and on Windows this causes a blank
tip so remove the adding of the extra line.
Bug 795471 - Budget window scrolls edited cell out of site
When editing cells that have been revealed on the right by
scrolling the window snaps back to the left hiding the cell
being edited. This may be due to an underlying gtk issue
but these changes fix the issue visually.
Other repairs or enhancements not marked as bugs:
On Windows the tooltip for saved reports was incorrect
When the mouse was placed over a saved report description on Windows an
empty tooltip was displayed. Setup the query tooltip callback so it does
not display a tooltip for description column.
Fix crash when loading sql book with posted transactions
Add ability to recognize and use a pre-compiled libgmock.so.
html-font: add default font family
Windows ships with GTK2 in which the default font styles are named
"Sans" "Sans Bold" "Sans Normal" etc. There is no "Sans" font in
Windows; I vote to add a default "Sans-Serif" font-family which is
valid CSS. This ensures exported reports are shown as intended.
Several improvements to the Transaction and GST reports.
csv-impport - Allow empty amount fields
Treat empty amount fields as 0. This is necessary for example in
the case the csv import file has both a deposit and a withdrawal
column.
Remove the set transient parent setting for Reconcile window
The Reconcile option is already a window so it is not necessary to set
this value which allows the jump to transaction to work properly.
Date Format dialog flashes up when file/properties used
When you select the File/Properties dialog, in the construction of that
a 'Date Format' dialog flashes up while the date component is moved to
the properties dialog. Can mainly be seen on Windows so remove the
visible setting in glade file.
Prevent throw in gnc-pricedb.
If a price lookup is given an invalid time64/timespec (i.e. INT64_MAX)
then just return NULL instead of trying to find the nearest price.
Set GNC_VCS at build time instead of when making the tarball.
Because the tarball is always made from a VCS repo.
If there are no prices in the db, critical errors are flagged
When dialog transfer is used between two commodities and there are no
prices in the db a critical error is logged. Test for price object
being NULL before retrieving the price for the error message.
The following translations are updated: Slovak, Spanish
Known Problems:
It is not possible to overwrite SQL Databases from within GnuCash, even
though GnuCash will ask if you want to. Bug 789594
Several dates, including Accounting Period, are subject to change with
time zone and daylight-time changes. Bug 791825
Some HBCI information is not loaded correctly so the first transaction
download will re-retrieve transactions unless the beginning date is
set explicitly. Bug 792397.
The new CSV importer's Price of Shares column doesn't work. Bug 793306
The new CSV importer's numeric parser can't parse numbers of the form
x + y/z. Bug 793556.
Python bindings may not work in some installations because the bindings
are unable to find the backend modules (libgncmod-backend-dbi and
libgncmod-backend-xml). Bug 794526
Get Quotes can be slow if one has a large number of saved prices.
Bug 794644.
The Mac localization code can set the wrong encoding for strftime causing
the register's date picker to label months "Null" in some locales.
Bug 794807
On Mac, the File Open dialog will crash if one types anything.
(This is a Gtk+ bug). Bug 794809
An open register is not immediately updated when the Since Last Run
dialog creates transaction splits in the register's account. Bug 794854
GnuCash asks if one wants to save changes when quitting or opening a file
even if there's no book open. Bug 794870
Windows Defender falsly identifies the GnuCash installer as a Trojan.
Bug 794967
Some Windows users have trouble using Chinese input methods on the
Register; other controls work. Bug 795253
On Microsoft Windows the Tab key does not work in the register if the
caps-lock key is on. Bug 795294
GnuCash will crash if one attempts to import a CSV file with more than
1400 transactions. Bug 795383
Invalid input into a formula (Debit/Credit) field is inconsistent
depending on the input. Bug 795614.
3.0 - 1 April 2018
The first release of the 3.x stable series.
New Features for Users:
The headline item for this release is that GnuCash now uses the
Gtk+-3.0 Toolkit and the WebKit2Gtk API. This change was forced
on us by some major Linux distributions dropping support for
the WebKit1 API. Unfortunately the Webkit project doesn't
support Microsoft Windows so that platform will continue to use
the WebKit1 API, though with Gtk3. We've selected Gtk+-3.14.0
as the minimum version because it fully supports CSS
theming.
New editors to remove outdated or incorrect match data from the
import maps, a new user interfacs for managing files associated with
transactions, an improved facility for removing old prices from the
price database, and a way to remove deleted files from the history
list in the file menu.
New Reports: A Reconciliation Report based on the Transaction Report,a
Income GST Report, and a Cashflow Barchart report.
A new CSV importer largely rewritten in C++, adding new
features including the ability to re-import CSV files exported
from GnuCash, along with a separate CSV price importer.
A new preference panel for the Alphavantage API key so that Finance::Quote
users need not edit /etc/gnucash/environment. We've removed all
references to the various Yahoo! quote sources and made Alphavantage
the default.
Data file directories are now located appropriately to the
operating system's conventions by default:
- Windows: CSIDL_APPDATA/Gnucash
- OS X: $HOME/Application Support/Gnucash
- Linux: $XDG_CONFIG_HOME/gnucash (or the default $HOME/.config/gnucash)
It's still possible to overried with the environment variable
GNC_DOC_PATH, which replaces GNC_DOT_DIR in earlier versions of
GnuCash.
Accounts in the Bayes import map are now linked by GUID instead
of names so that the matcher won't have to be retrained if you
rename an account. The Bayesian import maps are also stored in a
flatter structure to allow faster access, especially in SQL. These
changes mean that if you have Bayesian mapping data, once converted
your database will be loadable only by GnuCash 2.6.20 and later.
MySQL and SQLite3 date storage has changed a bit. Once converted, MySQL
and SQLite3 database will be loadable only by GnuCash 2.6.19 and later.
Numerics are rewritten to allow for more significant digits. The old
6-digit-maximum fraction is now 9-digits, and prices may have up
to 18 digit precision.
Chart Reports appearance is improved, including more modern chart colours
as suggested by http://clrs.cc/.
Transaction Report improvements, including regular expression filtering
and many more options and features including a "Subtotal Summary Grid"
The subtotal summary-grid will tabulate subtotals - prime-sortkey
vertically, sec-sortkey horizontally. For example, with
prime-sortkey = accounts, sec-sortkey = date, sec-subtotal = monthly
will produce a monthly time series table.
The About dialog box layout is improved and now includes the detected
Finance::Quote version.
GnuCash will always build the locale-specific tax modules. This
was optional when building with autotools and never enabled when
building with cmake. Note that the only supported tax locales are
en_US and de_DE.
On Macs the Reconcile Window's menu moved to the menubar.
GnuCash no longer supports Guile-1.8 and now does support Guile-2.2
New Features for Developers:
Several parts of the engine and the SQL backend are rewritten
in C++, an effort that will continue in the next development
cycle. KVP is now private to libgncmod-engine and accessible
outside via qof_instance_set and qof_instance_get. KVP and GUID are
reimplemnted in C++ using boost::variant and boost::UUID respectively.
C++ unit tests require GoogleTest. While it's possible to use prebuilt
libgtest and libgmock on some distros, building static libraries for
GnuCash is preferred. It may be necessary to provide the paths to
the googletest and googlemock source with CMake parameters
GTEST_ROOT and GMOCK_ROOT respectively.
The date implementation is migrated to boost::date-time,
replacing a Glib GDateTime implementation. This makes the
earliest date recordable 1 January 1400CE instead of 1 January 1CE.
We doubt any users will be affected.
Distribution tarballs can now be built with CMake as well as
Autotools. (Rob Gowin)
We've reorganized the code into a core library directory, libgnucash, and
application-specific directory, gnucash. The python bindings are now
in a top-level directory, bindings; code pinched from other projects
is in borrowed, the account templates, check templates, and pixmaps
are consolidated in data, and common holds the cmake modules and test
framework code. The bin directory's contents have moved to the top
level gnucash directory and bin is removed.
There are now directories for gschema, gtkbuilder and ui files directly
in gnucash. In principle all files of each type should go into these
global directories. The only exception is if such a file belongs
to an optional module. In that case the file remains located inside
that module's directory. Currently we have ui, glade and gschema file
exceptions in aqb and ofx importers.
The build system is changed from Autotools to CMake. All options except
python bindings and the python console demo are enabled by default.
Highly parallel builds with Ninja are possible and recommended,
except on Microsoft Windows.
The Windows build system is rewritten to use MSYS2, Mingw-w64, Powershell,
and jhbuild.
Add a "pot" target to the build system so that translators can easily
generate a new gnucash.pot from a git repository.
Detect presence or absence of libxml2 and makeinfo during configuration;
abort if the first is missing and don't build the (mostly
obsolete) texinfo documentation if the latter is. Document
both in README.dependencies.
Replaced Timespec with time64 in the Scheme and Python bindings,
introducing many new C time64 functions to accomodate the
replacement. Timespec will eventually be removed from the C API
as well.
Some cruft removal in libgnucash/scm plus moving some code to its
only use location. "main.scm" is renamed to "utilities.scm".
The "printf" family of Scheme custom functions is replaced with
the built-in "format" facility.
Change a generally unnecessary warning about being unable to open
a module (usually because the file is still being created) to a
debug message. It appears mostly during highly parallel builds and
was distracting.
Appstream configuration is updated to the latest spec.
Added two functions to the Scheme option API:
* gnc:option-make-internal! will hide an existing option. e.g. a
derived report can set the value for a Display/* option and hide
it from the user.
* gnc:unregister-option will unregister option. This is primarily
useful for derived options e.g. another report copies from
transaction.scm and removes some options and recreates them with
different parameters.
For example, unregister existing option from section "Accounts"
name "Accounts", and recreate with different parameters
e.g. limited account types.
Drop intltool in favour or using modern gettext.
By default we require gettext 0.19.6 as this is needed to generate a
translated version of gnucash.desktop and gnucash.appdata.xml.
For platforms where this isn't available, setting ALLOW_OLD_GETTEXT=ON
will allow building but some strings will not be extracted to
gnucash.pot
Pass GTEST_ROOT and GMOCK_ROOT through to distcheck.
So that they don't have to be exported in the environment if they're
needed.
The Python Bindings and Console are now for Python 3, and enahanced to
expose more GnuCash API.
Compilation of GLib Schemas during build and installation can be
disabled by setting -DCOMPILE_GSCHEMAS=OFF. This is intended
*only* for distribution packaging scripts that run
glib-compile-schemas themselves. Otherwise note that if you install
to a DESTDIR you'll need to re-run glib-compile-scemas after moving
the contents of $DESTDIR$PREFIX/share/glib-2.0/schemas to $PREFIX.
The CuteCash front end has been removed. The code we need from
GOffice has been brought into the GnuCash code base so GOffice
is no longer a dependency. The register drawing code has been
upgraded to draw directly on a cairo surface, removing the dependency
on libgnomecanvas.
GnuCash 3.0 adds the following dependencies: Boost, ICU, Googletest.
Known Problems:
It is not possible to overwrite SQL Databases from within GnuCash, even
though GnuCash will ask if you want to. Bug 789594
There is no theming tool for Windows or Macs so users of those platforms
must apply theming by hand. Bug 791823
Accounting Period dates are subject to change with time zone and
daylight-time changes. Bug 791825
Opening a large SQL database on Windows is very slow on some machines,
merely slow on others. Bugs 792105, 794482.
Some HBCI information is not loaded correctly so the first transaction
download will re-retrieve transactions unless the beginning date is
set explicitly. Bug 792397.
The new CSV importer's Price of Shares column doesn't work. Bug 793306
Importing an OFX file on Windows fails with an empty matcher window.
Bug 793461.
The Bayes account matcher can take a long time to convert the accounts
from name string to guids. This is a one-off, happening only the
first time one imports into an account on GnuCash 3.0. Bug 794334.
The new CSV importer's numeric parser can't parse numbers of the form
x + y/z. Bug 793556.
Python bindings may not work in some installations because the bindings
are unable to find the backend modules (libgncmod-backend-dbi and
libgncmod-backend-xml). Bug 794526
Get Quotes can be slow if one has a large number of saved prices.
Bug 794644.
Some users see 1 January 1970 instead of the default date in the New
Invoice or New Bill dialog and on the unposted bill and invoice.
Bug 794767.
The Mac localization code can set the wrong encoding for strftime causing
the register's date picker to label months "Null" in some locales.
Bug 794807
On Mac, the File Open dialog will crash if one types anything. Bug 794809
An open register is not immediately updated when the Since Last Run
dialog creates transaction splits in the register's account. Bug 794854
GnuCash asks if one wants to save changes when quitting or opening a file
even if there's no book open. Bug 794870
The Online Actions menu includes some obsolete and non-functional
selections. Bug 794880.
2.6.20 - 1 April 2018
This is the final release in the 2.6 stable series.
The following bugs are fixed:
Bug 765846 - Expense Over Time for subaccounts: An error occurred while
running the report: Fix crash if acc-depth too low.
Bug 791848 - GC 2.6.x does not handle ISO dates introduced with GC 2.7
Enable reading ISO-formatted dates, recognize
GNC_FEATURE_SQLITE3_ISO_DATES.
Bug 792008 - gnucash 2.6.19 fails to build
Replace g_assert_true with g_assert for now
Bug 793278 - wrong data in charts with accumulated values (like
"net-linechart", "net-barchart" and "liabilities barchart")
Bug 794030 - relative date functions compute wrong day of month
Bug 790526 - Mathematical bug
This change will fix 'num-of-weeks-since-1/jan/1970' which
formerly used quotient to remove the fractional part of the
division. For negative values of num-of-weeks, the number is
truncated in the wrong direction (i.e. towards 0). This
change uses floor instead to ensure the num-of-weeks found
is the nearest integer LESS than the fractional number.
Other repairs or enhancements not marked as bugs:
Online HBCI actions: Remove outdated non-SEPA menu items.
Add XML namespaces for all Account Hierarchy Templates.
General cleanup of Account Hierarchy Templates.
Fix auto-selection of splits in reconcile
Really use all splits of any given day. Up to now usually the splits
of the given date were not or not all included, as the time comparison
didn't correctly ignore any given time-of-day of the splits. Instead,
all possible time-of-days should be included.
Properly detect git in case of linked worktree
Account Hierarchy for India: Set LANGUAGE=hi and LANG=en_IN to access it.
Improve Import menu entries Customer & vendors...
use same menu label as others, replace template by tooltip, add ellipsis
to entry, add comments to distinguish "Import" as verb and substantive.
Provide preference panel to set the Alpha Vantage API key needed for
Finance::Quote.
Correct the appstream definition to match the current spec.
Fix collectors and min-date handling in reports.
Updated Translations: Dutch, German, Spanish, Russian
2.7.8 - 25 March 2018
The Gnucash Development Team is pleased to release Gnucash 2.7.8,
the ninth release of an unstable series leading to Gnucash 3.0. This
release is a Release Candidate: If no bugs requiring major work are
reported the next release will be 3.0.
This release changes file locations, binding APIs, report options,
and can make your data file no longer compatible with previous
versions. See https://wiki.gnucash.org/wiki/UpdateNotes for
details.
The following bugs are fixed only in unstable/master:
Bug 787439 - Segmentation Fault in Transfer dialog after clearing
Date field and pressing escape.
Bug 794242 - Remove keep above setting for assistant hierarchy
Other repairs not marked as bugs in git:
When doing a file save from the a new start we have no key file
Test for Key_file not being NULL before trying to free it.
Stop critical error due to testing null filename
g_filename_from_uri returns NULL if it is not a file uri so test
for the file:// prefix before doing g_file_test
More transient-parent fixes.
Add missing response section to the account picker dialog.
Glade 3.20 adds surplus padding option to action area
When glade files are saved which have GtkAssistants defined a packing
section is added to the assistant action area which then causes a
warning so remove them.
Add XML namespaces for all Account Hierarchy Templates.
Increase default options dialog size: The old 400x400 was woefully
inadequate for most options especially options involving account trees.
Updated Translations: None.
2.7.7 - 18 March 2018
The Gnucash Development Team is pleased to release Gnucash 2.7.7,
the eighth release of an unstable series leading to Gnucash 3.0.
Notice that we've decided that beginning with the upcoming major
release we will use two-digit release numbers and that the next
stable release will be 3.0. Mainenance releases will be 3.1, 3.2,
etc. The next unstable release will be 3.900 and will lead to 4.0.
This release is UNSTABLE and SHOULD NOT BE USED in production.
See the KNOWN PROBLEMS list at the bottom of the announcement.
This release changes file locations, binding APIs, report options,
and can make your data file no longer compatible with previous
versions. See https://wiki.gnucash.org/wiki/UpdateNotes for
details.
New Features For Users:
For Developers and Distro packagers:
The Python Bindings and Console are now for Python 3.
It's now possible to create a GncPrice from the Python bindings
with "gnc_price_create(book)", removing the need to clone an existing
GncPrice object and modify it.
Compilation of GLib Schemas during build and installation can be
disabled by setting -DCOMPILE_GSCHEMAS=OFF. This is intended
*only* for distribution packaging scripts that run
glib-compile-schemas themselves.
The following bugs are fixed only in unstable/master:
Bug 787439 - Segmentation Fault in Transfer dialog after clearing
Date field and pressing escape.
Bug 791831 - Add python3 support.
Bug 794242 - Remove keep above setting for assistant hierarchy
Other repairs not marked as bugs in git:
Fix date corruption in SQL load. Four date elements were affected:
GncEntry::date, GncEntry::date_entered, GncInvoice::opened, and
GncInvoice::posted. This does not affect the stored values of the dates.
Fix lost Bayesian matches in SQL backend. The import-map-bayes uses a
three-part key that uses the same delimiter as a path and the SQL
backend was throwing away everything except the account guid.
More transient-window fixes and other Gtk3 cleanups.
Add xmlns namespace declarations to all of the accounts templates that
lacked it and remove the emacs mode-setting comments at the end of them.
Updated Translations: Spanish
2.7.6 - 12 March 2018
The Gnucash Development Team is pleased to release Gnucash 2.7.6,
the seventh release of an unstable series leading to Gnucash 3.0.
Notice that we've decided that beginning with the upcoming major
release we will use two-digit release numbers and that the next
stable release will be 3.0. Mainenance releases will be 3.1, 3.2,
etc. The next unstable release will be 3.900 and will lead to 4.0.
This release is UNSTABLE and SHOULD NOT BE USED in production.
See the KNOWN PROBLEMS list at the bottom of the announcement.
This release changes file locations, binding APIs, report options,
and can make your data file no longer compatible with previous
versions. See https://wiki.gnucash.org/wiki/UpdateNotes for
details.
New Features For Users:
Modernise chart colours from the dated CSS defaults to
modern colours as suggested by http://clrs.cc/.
Add "Subtotal Summary Grid" to the Transaction Report.
The subtotal summary-grid will tabulate subtotals - prime-sortkey
vertically, sec-sortkey horizontally. This will be useful, for
example, with prime-sortkey = accounts, sec-sortkey = date,
sec-subtotal = monthly... will produce a monthly time series
spreadsheet.
For Developers and Distro packagers:
Rework source directory structure for gschema, gtkbuilder and ui files.
There is now a directory for each respective file type directly in
<srcdir>/gnucash as was already the case for gschema files.
In principle all files of each type should go into these global
directories. The only exception is if such a file belongs
to an optional module. In that case the file remains located inside
that module's directory. Currently we have ui, glade and gschema file
exceptions in aqb and ofx importers.
Drop intltool in favour or using modern gettext.
By default we require gettext 0.19.6 as this is needed to generate a
translated version of gnucash.desktop and gnucash.appdata.xml.
For platforms where this isn't available, setting ALLOW_OLD_GETTEXT=ON
will allow building but some strings will not be extracted to
gnucash.pot
Pass GTEST_ROOT and GMOCK_ROOT through to distcheck.
So that they don't have to be exported in the environment if they're
needed.
The following bugs are fixed only in unstable/master:
Bug 764245 - multi-column reports include incorrect sub-reports
Bug 793460 - gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp:1941
is impossible to translate.
Bug 793467 - GnuCash crashes when trying to open a binary file
instead of a CSV.
Bug 793699 - start_spath could be used uninitialised.
Bug 793900 - 2.7.5: test failure: 105 - python-bindings.
Bug 793941 - 2.7.4: test failure on i686: 59 - test-gnc-timezone
Don't test before 1916, that's not a common GnuCash use-case.
Bug 793947 - Impossible to render printable invoice
Bug 794031 - The checkbox "Placeholder" cann't be changed in dialog
"Setup selected accounts". Enable placeholder toggle and
provide callback. The text for this account tree view
specifies "If you would like an account to be a placeholder
account, click the checkbox for that account." but they were
not enabled and no call back was defined so enabled the
toggle button and provide callback.
Bug 794083 - gnucash-2.7.5: cmake+make build installs Makefile.
Bug 794137 - 2.7.5: test failure: 60 - test-gnc-numeric.
Fixed by overloading operator<<(std::ostream&, GncNumeric) to
call operator<<(std::wostream&, GncNumeric) and convert the
result to utf8.
Other repairs not marked as bugs in git:
Csv imp settings - internalize prefix handling
This information is not relevant outside of the settings code.
The way it's implemented now each settings module defines its
own unique prefix and the generic code can just use it when
needed.
Csv import - improve memory handling in the assistant class.
Make it more RAII, in that whatever the class allocates, it should
also deallocate. This simplifies a couple of memory handling cases.
The only exception is the generic import matcher that for some reason
has chosen to deallocate itself. To be fixed when more importers are
converted to c++
Add some background info on memory management in CSV importers.
As the assistant code combines multiple memory management models care
should be taken not to mix them up. The notes should give some
insights in how to do this.
Also fix a few minor issues
- delete default copy and move constructor/assignment for the
assistant gui class
- nullify a freed pointer
Lots of transient parent warnings fixed.
Fix Segmentation fault when going to File->New.
When selecting the File->New with existing register pages open a crash
can happen as the register pages get closed forcing a page-changed
signal to queue the page focus function when there is no page. Add a
call to remove the page focus function in the ..destroy_widget function.
Also with the addition of g_idle_remove before the add when page-changed
is emitted the page focus function only gets run once.
Speed up GUID equality comparison.
Fix CPack package version number.
Currently running "ninja-build package" produces a file with an
incorrect version number. This patch passes the CMake version
variables into CPack to get the correct filename. Note, however, that
there's more work to do to get CPack to actually be useful and the
current CPack settings may be removed unless that other work is done.
Add spacing between border and text in dialog "New Accounts Hierarchy
Setup".
With register obscured the sheet kept being redrawn
When the register is obscured by another window, the sheet would get
lot of draw events. This was tracked down to getting the foreground
colour for the item-edit widget for the state GTK_STATE_FLAG_NORMAL.
Changed this to use the value obtained from gtk_widget_get_state_flags.
Use the gnc_prefs_get_bool values to update cache values.
This way is a safer way to update the cache values in case the settings
changed signal fails to trigger or there is a double trigger and the
cached value gets out of sync with the preference value.
Updated Translations: German, Norwegian, Spanish
KNOWN PROBLEMS:
Bug 789594 - Unable to overwrite splite3 database file
Bug 791823 - There is no Gtk3 theme-setting tool for Windows.
Bug 791825 - Accounting period dates off-by-1
2.7.5 - 25 February 2018
The Gnucash Development Team is pleased to release Gnucash 2.7.5,
the sixth release of an unstable series leading to Gnucash 3.0.
Notice that we've decided that beginning with the upcoming major
release we will use two-digit release numbers and that the next
stable release will be 3.0. Mainenance releases will be 3.1, 3.2,
etc. The next unstable release will be 3.900 and will lead to 4.0.
This release is UNSTABLE and SHOULD NOT BE USED in production.
See the KNOWN PROBLEMS list at the bottom of the announcement.
This release changes file locations, binding APIs, report options,
and can make your data file no longer compatible with previous
versions. See https://wiki.gnucash.org/wiki/UpdateNotes for
details.
New Features For Users:
Locate all user data and configuration files to platform-dependent
standard locations:
- Windows: CSIDL_APPDATA/Gnucash
- OS X: $HOME/Application Support/Gnucash
- Linux: $XDG_CONFIG_HOME/gnucash (or the default $HOME/.config/gnucash)
Further improvements to the Transaction and Income-GST-statement reports.
Transaction Report: omit display of $0 in subtotals in other currencies.
Previously in dual-subtotal columns, the dual-subtotal would
attempt to print all commodities in the row. This meant if user
chose common-currency thereby triggering additional commodities,
the dual-subtotal would attempt to add amounts in other
commodities which would be 0, and display the 0 amount.
For Developers and Distro packagers:
Some cruft removal in libgnucash/scm plus moving some code to its
only use location. "main.scm" is renamed to "utilities.scm".
The "printf" family of Scheme custom functions is replaced with
the built-in "format" facility.
Change a generally unnecessary warning about being unable to open
a module (usually because the file is still being created) to a
debug message. It appears mostly during highly parallel builds and
was distracting.
Added dependency information to all CMake targets, replacing a
dependency on build order that was carried over from
autotools. Highly parallel builds in ninja now complete without
interuption.
Ensure that all GtkBuilder and GtkUIManager files are correctly
installed and that no configuration of build products in those
directories are..
Appstream configuration is updated to the latest spec.
Fix installation of a gnucash-only gschemas.compiled overwriting
the system one. Note that if you install to a DESTDIR you'll need
to re-run glib-compile-scemas after moving the contents of
$DESTDIR$PREFIX/share/glib-2.0/schemas to $PREFIX.
Added two functions to the Scheme option API:
* gnc:option-make-internal! will hide an existing option. e.g. a
derived report can set the value for a Display/* option and hide
it from the user.
* gnc:unregister-option will unregister option. This is primarily
useful for derived options e.g. another report copies from
transaction.scm and removes some options and recreates them with
different parameters.
For example, unregister existing option from section "Accounts"
name "Accounts", and recreate with different parameters
e.g. limited account types.
The following bugs are fixed only in unstable/master:
Bug 787095 - Gnucash Crashes when opening old XML file.
Bug 792157 - Cannot create account with different currency
Bug 792833 - User specifies source of 'num' field'; either transaction
number or split action (requires at least GnuCash
2.5.0) Strip leading delimiters from KVP keys when
reading them from the database. Leading delimiters
are incorrectly included in databases created with
GnuCash 2.6.x.
Bug 792883 - cmake: no way to turn off -Werror
Prepend settings to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS
so that values supplied on the command line can
override the fixed settings.
Bug 792884 - cmake: gschemas.compiled missing
Bug 793122 - 2.7.3: ninja build fails.
Bug 793155 - Gnucash 2.7.4 crashes on launch MacOS 10.13.4 PB1
Bug 793278 - wrong data in charts with accumulated values (like
"net-linechart", "net-barchart" and "liabilities barchart")
Bug 793568 - "Cash Flow" report crashes
Other repairs not marked as bugs in git:
An optimization in the GncDateTime string constructor provides
substantial speed up of loading SQL databases, and one in
Scheduled Transaction creation will speed up creation of large
numbers of scheduled transactions.
More dialogs have transient-for set so that they pop up over the
window instead of in the upper left-hand corner of the monitor.
Updated Translations: German, Greek, Slovak, Spanish
A new set of business account templates for India's new GST; use
locale en_IN to enable them.
KNOWN PROBLEMS:
Bug 789594 - Unable to overwrite splite3 database file
Bug 791823 - There is no Gtk3 theme-setting tool for Windows.
Bug 791825 - Accounting period dates off-by-1
2.7.3 - 31 December 2017
The Gnucash Development Team is pleased to release Gnucash 2.7.3,
the fourth release of an unstable series leading to Gnucash 3.0.
Notice that we've decided that beginning with the upcoming major
release we will use two-digit release numbers and that the next
stable release will be 3.0. Mainenance releases will be 3.1, 3.2,
etc. The next unstable release will be 3.900 and will lead to 4.0.
This release is UNSTABLE and SHOULD NOT BE USED in production.
See the KNOWN PROBLEMS list at the bottom of the announcement.
This release changes file locations, binding APIs, report options,
and can make your data file no longer compatible with previous
versions. See https://wiki.gnucash.org/wiki/UpdateNotes for
details.
New Features For Users:
A greatly enhanced Transaction report with many new options and features
including a reconciliation report thanks to Chris Lam.
Removed 6-figure rounding from price calculations, allowing prices to
have up to 18 digit precision.
A flatter storage scheme for Bayes account-matching scores, thanks
to Aaron Laws. This is a compatibility change guarded by a feature.
GnuCash no longer supports Guile-1.8 and now does support Guile-2.2
A CSV Price importer, thanks to Bob Fewell.
Enhanced python bindings exposing more GnuCash API thanks to Guy Taylor
The following bugs are fixed only in unstable/master:
Bug 616709 - Pressing delete key while editing account name offers to
delete account.
Bug 771667 - Change reconciled splits warning
This patch displays two distinct warnings when changing
protected fields of a transaction that contains reconciled
splits. If the fields date, num and description are changed,
then the warning list the accounts that have reconciled
splits and also advises that they will be unreconciled after
editing the transaction. If the fields account, transfer,
debit or credit are changed then the warning advises that the
split will be unreconciled after editing the transaction.
There is still just one warning preference as it is all to do
with fields protected by reconciliation.
Bug 787497 - Disabling options cripples dist package PARTIAL FIX:
WITH_OFX, WITH_SQL and WITH_AQBANKING handling is fixed. The
dist files for these features are always included in the
dist tarball.
Bug 790526 - Mathematical bug
Bug 791848 - GC 2.6.x does not handle ISO dates introduced with GC 2.7.
Set a feature to prevent versions older that 2.6.20 from
loading a database from which they cannot read the
dates. Ideally we would do this only if the database is
written to, but the current persistence design includes
committing back to the database during the load so the net
effect is that the flag would be set anyway.
This is a compatibility change guarded by a feature.
Other repairs not marked as bugs in git:
Tests now pass in all timezones.
More dialogs are made "transient for" so that they pop up centered on
the main Gnucash window instead of somewhere on the left edge of the
screen.
A lot of Gtk3 issues and errors are fixed, thanks to Bob Fewell.
Test struct tm* returns from gnc_gmtime and gnc_localtime to ensure that
we don't crash for dereffing a nullptr.
Removed the gnc:numeric type from Scheme code in favor of Scheme's own
rational numbers. This allows direct conversion between
Scheme numbers and gnc_numeric without the performance or
accuracy penalties arising from using doubles as an
intermediary.
Pass KVP paths as a collection of elements instead of a delimited string.
This allows keys to contain '/'. Thanks to Aaron Laws.
Added a frameowrk for migrating preferences.
Made separate functions for finding a widget's parent window:
gnc_ui_get_gtk_window tries to find the immediate parent and
gnc_ui_get_main_window tries to find the widget's parent
toplevel, returning the first-mapped window.
Make the splash/lock screen the transient parent for dialog boxes if the
main window is not yet mapped.
Rework directory determination in CMake builds.
Sets paths for finding componenents depending on the state
of ENABLE_BINRELOC, GNC_UNINSTALLED, GNC_BUILDDIR and
whether any install paths have been set outside of
CMAKE_INSTALL_PREFIX. GNUInstallDirs changes the name of
CMAKE_INSTALL_LIBDIR depending on the operating system and
distro. When CMAKE_INSTALL_PREFIX is /usr, /usr/local, or
any subdirectory of /opt it also changes
CMAKE_INSTALL_FULL_SYSCONFDIR to /etc. An earlier commit by
Aaron Laws mirrors the name of CMAKE_INSTALL_LIBDIR to the
build library directory. It's possible for builders to set
any of the install directories anywhere they please.
Setting any directory outside of CMAKE_INSTALL_PREFIX breaks
Binreloc so the toplevel CMakeLists.txt now detects that and
disables Binreloc. If Binreloc is enabled then all path
queries use it to find paths. This works in the build
directory because the gnucash executable and all of the test
programs are in build_directory/bin and LIBDIR, DATADIR, and
SYSCONFDIR can be found in the same root path. If Binreloc
is disabled then in order to build or run programs from the
build directory one must set GNC_UNINSTALLED and set
GNC_BUILDDIR to the absolute path of the build
directory. When those are set GNC_BUILDDIR replaces
CMAKE_INSTALL_PREFIX in all paths that are subdirectories of
CMAKE_INSTALL_PREFIX; paths that are not in
CMAKE_INSTALL_PREFIX are appended whole to
GNC_BUILDDIR. This process is constent between CMake and
gnc_path_get_foo. GnuCash is unlikely to run from a DESTDIR
without Binreloc.
KNOWN PROBLEMS:
On Microsoft Windows starting the AQBanking Setup Wizard crashes GnuCash.
Bug 789594 - Unable to overwrite splite3 database file
Bug 791823 - There is no Gtk3 theme-setting tool for Windows.
Bug 791825 - Accounting period dates off-by-1
2.7.4 - 3 February 2018
The Gnucash Development Team is pleased to release Gnucash 2.7.4,
the fifth release of an unstable series leading to Gnucash 3.0.
Notice that we've decided that beginning with the upcoming major
release we will use two-digit release numbers and that the next
stable release will be 3.0. Mainenance releases will be 3.1, 3.2,
etc. The next unstable release will be 3.900 and will lead to 4.0.
This release is UNSTABLE and SHOULD NOT BE USED in production.
See the KNOWN PROBLEMS list at the bottom of the announcement.
This release changes file locations, binding APIs, report options,
and can make your data file no longer compatible with previous
versions. See https://wiki.gnucash.org/wiki/UpdateNotes for
details.
New Features For Users:
A new preference panel for the Alphavantage API key so that Finance::Quote
users need not edit /etc/gnucash/environment.
On Macs the Reconcile Window's menu moved to the menubar.
The detected Finance::Quote version is displayed in the About box.
Removed all references to the various Yahoo! quote sources and made
Alphavantage the default.