Skip to content

Latest commit

 

History

History
135 lines (89 loc) · 4.91 KB

UPGRADING.md

File metadata and controls

135 lines (89 loc) · 4.91 KB

(2022-08-30) RevBank 3.5

RevBank now has a simple built-in text editor for products and market; rationale in lib/RevBank/TextArea.pod.

This comes with a new dependency, the perl module Curses::UI (debian: libcurses-ui-perl).

(2022-06-11) RevBank 3.4

RevBank now has built-in hidden accounts and balanced transactions. These accounts will be made automatically, and hidden from the user interface.

Update external scripts

If you have scripts that parse .revbank.log or revbank.products, you may want to ignore all accounts that start with - or +.

User account names that are now invalid

In the hopefully very unlikely event that you have existing user accounts that start with - or +, those will have to be renamed manually, as such accounts are no longer accessible.

Updating custom plugins (optional for now)

For your custom plugins, you may want to add ->add_contra calls to every $cart->add call that does not already have them. Unbalanced transactions will probably be deprecated in a future version.

New feature: cashbox tracking

The new cash plugin will display messages about how much the cash box should hold, whenever someone withdraws or does a cash deposit. For that to make sense, this requires the deposit_methods plugin to be enabled, and to have a "cash" deposit method.

When adding the cash plugin in revbank.plugins, make sure it is listed before stock if you have that one too. And you probably want to enable the skim plugin too, which introduces the (hidden) commands skim and unskim which can be used to keep the cash box data synchronised when someone (probably a board member) skims it.

(2022-06-04) RevBank 3.3

Raw amounts without a command are no longer supported. There was already an explicit command for unlisted products, unlisted, and for withdrawals there is now the new command withdraw. An explanatory message guides users who use the old style towards the new commands.

This change makes it possible for treasurers to more accurately deduce the intention of a revbank transaction.

When upgrading, make sure the unlisted plugin is installed in revbank.plugins. Without it, the instruction text presented when someone enters an amount is wrong and the functionality for paying for unlisted products is lost.

(2021-12-02) RevBank 3.2

Update your custom plugins!

Test your custom plugins. If they don't emit warnings about floating point numbers, or if you don't care about warnings, then no changes are required.

RevBank no longer uses floating point numbers for amounts. Instead, there are now RevBank::Amount objects, which internally store an integer number of cents, but externally stringify to formatted numbers with 2 decimal places.

To create such an object, use parse_amount as per usual.

Formatting no longer requires sprintf %.2f, just use %s instead.

Using an amount as a floating point number will now emit warnings in some cases, to alert you to the fact that this may result in rounding errors. To convert an amount to a floating point number without a warning, use $amount->float. To convert a floating point number to an amount without a warning, use RevBank::Amount->new_from_float($float).

Most hard-coded uses of floats are safe enough and transparently supported through overloaded operators, but if there are more than 2 decimal places, the operation will be disallowed.

(2019-11-05) RevBank 3

The following features were removed:

  • plugins nyan and game

    Please remove these from your revbank.plugins configuration file.

  • creating new accounts with deposit

    Use adduser instead.

Update your custom plugins!

Method $cart->is_multi_user

Method has been removed.

Method $cart->delete($user, $index)

Method has been removed.

Delete a specific entry, as returned by $cart->entries, instead.

Hooks add and added

Use add_entry and added_entry instead, which gets a RevBank::Cart::Entry object, instead.

Note that the new "entries", unlike old "items", can have a quantity other than 1.

Method $cart->add(undef, ...)

Method $cart->add($user, ...)

The add method now always creates an entry from the perspective of the current user, and returns a RevBank::Cart::Entry object to which "contras" can be added with add_contra. The contras can be used for counteracting a value with an operation on another account.

To upgrade a plugin that does a single add with undef as the first argument, simply remove the undef, . When multiple items were added that belong together, consider using add_contra for the subsequent lines; see the take and give plugins for examples.

Method $cart->select_items

Use entries instead, which takes the same kind of argument. Note that entries work slightly differently: they can have a quantity and attached contra entries. Attributes are now accessed through the has_attribute and attribute methods, instead of directly manipulating the hash.