1.5.0 Released

Submitted by ehu on Sun, 12/18/2016 - 04:05
Security release
Release candidate

The LedgerSMB project is proud to announce the release of 1.5.0, the start of a new line of maintenance releases.

This release can be summarized as a major user experience boost through improvements in performace, look and stability. Performance improvements are being achieved by moving from per-request-invoked CGI-scripts to a preloaded-PSGI application as well as moving to a single-page web application using the Dojo toolkit.

On the project's website both installation instructions and upgrade instructions are available.

UI changes

  • LedgerSMB now frameless (ChrisT)
  • Full use of Dojo widgets (ErikH)
  • Compressed/compiled Dojo for better performance (JohnL)
  • Reports and screens can now be bookmarked (Chris T)
  • Optionally can add unapproved trans. to some reports (Chris T)

Price Matrix Enhancements

  • Quantity discounts can be set in the pricematrix (Chris T)
  • Price matrix now filters on currency (Chris T)

Template changes

  • All document templates (including INCLUDEs) now in-database (Erik H, #854)
  • 1.4's <?lsmb LETTERHEAD ?> now <?lsmb INCLUDE letterhead ?>
  • 1.3's INCLUDE extensions dropped;
  • <?lsmb INCLUDE letterhead.tex ?> -> <?lsmb INCLUDE letterhead ?>

Code Cleanup

  • Relying on Plack for webserver integration; stub scripts removed (ChrisT)
  • Removed LedgerSMB's custom dojo page loader (ErikH)
  • Removed dead code (coveralls.io used for identification) (ErikH)
  • Removed dependency on Class::Struct (ChrisT)
  • Removed all inserts into chart view (ChrisT, GH 931)
  • Removed long-broken French chart of accounts (ChrisT)
  • Removed unused saved trial balance components (ChrisT, GH 775)
  • Source tree restructuring: libraries in lib/, docroot in UI/ (ErikH)

API Enhancements

  • Moved a great deal of code into PGObject framework on CPAN (ChrisT)
  • Session handling committed before main action (Chris T, GH 943)

Quality assurance

  • Verification of pre-defined Chart of Accounts files (ChrisT)
  • Assurance of completeness of 'use'-tested source files (ErikH)
  • Extended 'use'-tests to cover full set of source files (ErikH)
  • New tests validating source code requirements, such as (ErikH)
    • Reject code using certain modules (Data::Dumper, Carp::Always, ...)
    • Reject code which isn't formatted correctly
    • Reject code which uses certain constructs
  • Basic verification of PO (translation) files (ErikH)
  • Basic automated in-browser testing through SauceLabs.com (ErikH/ChrisT)
  • Basic automated in-browser testing with PhantomJS (ErikH)


  • Expansion of web based translation support through Transifex (ErikH)


ChrisT is Chris Travers
ErikH is Erik Huelsmann
JohnL is John Locke