Attention: A few things merged to 'default' this week change (simplify) the
API and may also require you to make changes to your input file.


2015-07-12

  - Changed how web & report rendering code renders numbers so that it uses
the
    DisplayContext inferred from the numbers in the input file. Numbers in
the
    reports were previously using the default precision and that led to all
    sorts of inconsistencies. The numbers are now rendered using the most
common
    precision which has been seen in the input files. (This work had been
    planned for a while, as part of converting everything to use the
    DisplayContext. Next up will be converting the shell's rendering
routines.)


2015-07-11

  - WARNING: API CHANGES AHEAD. If you wrote plugins, you will need to
remove
    the 'entry' parameter to constructors of Posting().

    I removed the Posting.entry back-reference of Postings to their owning
    Transaction objects. This makes programmatically creating our data
    structures much more straight-forward and avoids us having to run
pirouettes
    around which object to create first. It also removes all manners of
"fixing
    up" transactions and removes one ultimatley unnecessary degree of
freedom
    from plugins outputs: we don't have to check that the plugins generate
    objects with correct back-references. It also makes the documentation
    simpler: I won't have to explain backreferences and how to deal with
them.
    Finally, it avoids the circular reference which could potentially make
    Python's GC do some work for no other reason.

    This happened because it occurred to me that the only really important
place
    where back-references were used were in the beancount.core.realization
code,
    and that in the RealAccount objects I could easily replace the Posting
    instances in lists of "postings or entries" into a new tuple object
    "TxnPosting" that contains a reference to the parent transaction and a
    reference to the posting. This voids the need for a back-reference, and
    makes the API really straightforward.


  - WARNING: USER-LEVEL CHANGES FOLLOW. I repatriated the following optional
    plugins to the beancount.plugins package, so that all the plugins are
in the
    same place:

       beancount.ops.auto_accounts   -> beancount.plugins.auto_accounts
       beancount.ops.implicit_prices -> beancount.plugins.implicit_prices

    This is so that the "beancount.ops" package contains only plugins run by
    default (non-optional), and so that the "beancount.plugins" only
contains
    optional plugins the user must provide.

    In doing so, I also made the "implicit_prices" plugin NOT INCLUDED BY
    DEFAULT. This plugin creates automatically Price directives for all
Postings
    which have a @ <price> annotation, thus feeding those prices into the
price
    database. If you want to keep this behaviour -- and you probably should
--
    you need to add the following in your input file:

      plugin "beancount.plugins.implicit_prices"

    (I'm considering moving move of the default plugins to be optional, in
    particular, beancount.ops.documents, not sure yet.)



Changes prior to that are here:
https://bitbucket.org/blais/beancount/src/tip/CHANGES?at=default

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to