Budgets and inconsistent handling of account sign reversal.

Derek Atkins warlord at MIT.EDU
Tue Feb 23 10:20:37 EST 2010

Jeff Kletsky <gnucash at allycomm.com> writes:

> Changing the internal storage of budgets seems like it might be best
> left alone (save for copious documentation of the data-model
> inconsistency), but the accessors (and associated UI and reports) be
> modified for consistency with the rest of the app. 3rd-party reports
> and extensions written for pre-2.4.x versions would work fine in
> pre-2.4.x environments, but would likely need to be modified to
> respect the user's UI-level sign-reversal preferences.
> (As a side note, it becomes "rather challenging" to maintain backwards
> compatibility when the backend is a database, especially if any
> columns change or are deleted.)
> How far back should I be confirming compatibility? 2.2.9? 2.2.0? Before?

Definitely not before 2.2.0.   I'd definitely say at least 2.2.6, as
that is what Ubuntu/Debian is still shipping.  ;)

> Is there supposed to be guaranteed backward compatibility for anything
> but the XML backend?

Not yet...  But there will be.

I say "not yet" because 2.2.x ONLY has the XML backend.  There IS no SQL
backend in 2.2 with which you can be backwards compatible.

> Does the XML backend "gracefully ignore" tags that it doesn't
> understand? For example, if a "default budget" field is added to the
> book, is it "skipped over" on read if there isn't a corresponding data
> field for its contents to populate?

Unfortunately, no, it does NOT gracefully ignore tags that it doesn't
understand.  This is why changing the schema is challenging.  You need
to plan, get the changes in before you actually use it so that older
versions don't lose data.

> Can I assume that "backwards compatibility" allows for data that was
> created in a later version, that did not exist in an earlier version,
> not to "magically" be preserved if the user then moves forward in
> version? For example, if 2.4.x adds "default budget" then the saves as
> XML, opens in 2.2.9 (where the field does not exist), saves from
> 2.2.9, then opens in 2.4.x, then the value of "default budget" would
> likely be lost.


> Thanks!


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list