As a last test, add the following, which will help determining which part of qof_print_date_buff is playing up.

I think it should output ('locale 4)...

modified   gnucash/report/standard-reports/transaction.scm
                (add-if (column-uses? 'date)
                        (vector (_ "Date")
                                (lambda (split transaction-row?)
+                                 (gnc:pk 'locale (qof-date-format-get))
                                  (if transaction-row?
(gnc:make-html-table-cell/markup
                                       "date-cell"

On 21/1/19 12:58 pm, Stephen M. Butler wrote:
On 1/20/19 8:07 PM, Christopher Lam wrote:
There's no reason why the dates can't be changed.

The reason dates straggling 1.1.1970 was chosen was because 1.1.1970
corresponds to time 0 in time64, and I felt that having a few negative
time64 numbers would be interesting to test sorting.

However this is a weird weirdness -- the test output shows that the
transactions were sorted correctly - 31/12/69, 31/12/69, 01/01/70,
02/01/70, 02/10/70 (in d/m/y); it's just the display that is incorrect.

Moreover the display has to go through qof_print_date which takes a
time64 and returns a string.

I'd be keen to know Stephen's build and try debug this.

Here are my steps (I have a Projects folder in which is a GnuCash folder):

cd ~/Projects/GnuCash

git clone https://github.com/Gnucash/gnucash

cd gnucash

git checkout 3.4

cp -r ../debian .

(contents of above folder are available here:
https://drive.google.com/open?id=1VJmtb-Fx00PQna4yQoYm49C88Bi0hneI  )

fakeroot debian/rules clean

sudo mk0buikd-deps -ir debian/control

DEB-BUILD-OPTIONS=nocheck dpkg-build-package -rfakeroot -b -uc

(This did build the files located here:
https://drive.google.com/open?id=1fV_fURy6c77e7gf6S41lTacM7dFyy7VD   )


Stephen can you modify transaction.scm as follows and let us know the
test output? (Beware the parentheses!)

modified   gnucash/report/standard-reports/transaction.scm
@@ -1119,7 +1119,8 @@ be excluded from periodic reporting.")
                                   (if transaction-row?
(gnc:make-html-table-cell/markup
                                        "date-cell"
-                                      (qof-print-date
(xaccTransGetDate (xaccSplitGetParent split))))
+                                      (let ((date (xaccTransGetDate
(xaccSplitGetParent split))))
+                                        (gnc:pk 'date date
'qof-print-date (qof-print-date date))))
                                       ""))))

                 (add-if (column-uses? 'reconciled-date)


Hmm.  I was back on v3.4 with this test.  I'll try again with maint
checked out.


d0.0005 t1.824: ('date 1576407540 'qof-print-date 12/15/19)
[pass] line:647, test: dual amount column, with original currency headers
[pass] line:651, test: dual amount column, grand totals available
[fail] line:654, test: dual amount column, first transaction correct
transaction.scm/display options
  -> expected: ("01/03/18" "$103 income" "Root.Asset.Bank" "$103.00"
"$103.00")
  -> obtained: ("01/03/19" "$103 income" "Root.Asset.Bank" "$103.00"
"$103.00")
d0.1090 t1.933: ('date -46860 'qof-print-date 12/31/69)


On 21/1/19 7:00 am, John Ralls wrote:
On Jan 20, 2019, at 1:24 PM, Stephen M. Butler <kg...@arrl.net> wrote:

Started clean this morning by recloning the git repository.  Made much
further progress but ended up with some test failures.  Here are my
steps:

1.  sudo rm -rf gnucash

2.  git clone https://github.com/Gnucash/gnucash

3. cd gnucash

4.  git checkout -b debian

5.  cp -r ../debian .

          Here is the contents of that directory -- copied to Google
Drive:

https://drive.google.com/open?id=1VJmtb-Fx00PQna4yQoYm49C88Bi0hneI

6.  git add debian

7. git commit

          Done on my "debian" branch

8. fakeroot debian/rules clean

9.  sudo mk-build-deps -ir debian/control

10. dpkg-buildpackage -rfakeroot -b -uc

Note:  This usually failed right up front.  This time went for
nearly 10
minutes.

End testing: Jan 20 12:49 PST
+ exit 2
debian/rules:68: recipe for target 'override_dh_auto_test' failed
make[1]: *** [override_dh_auto_test] Error 2
make[1]: Leaving directory '/home/steve/Projects/GnuCash/gnucash'
debian/rules:23: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit
status 2


Here are the contents of ./.build/Testing/Temporary/*
https://drive.google.com/open?id=1_0gRAd-ymP1cEYM3pyPnvzeHI7-SSWMS
The file you want to look at for test failures is LastTest.log. You
can search for "Test Failed".

This time the test failure is in
gnucash/report/standard-reports/test/test-transaction.scm:
[pass] line:654, test: dual amount column, first transaction correct
[fail] line:678, test: dates are sorted
transaction.scm/sorting options
   -> expected: ("12/31/69" "12/31/69" "01/01/70" "02/01/70" "02/10/70")
   -> obtained: ("12/31/70" "12/31/70" "01/01/70" "02/01/70" "02/10/70")
[pass] line:684, test: sort by number

That suggests that for some reason Guile on your system can't handle
dates before 1/1/1970. That's strange, but probably not important to
many GnuCash users.

Chris Lam, any reason not to change that test to use later dates?

Regards,
John Ralls
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to