Hi,

The "2015 year summary" mail got a lot of positive response. With a lot of
noteworthy developments over the last half year, this is another progress
report summarizing project activity.

Feel free to respond; please follow up to the users mailing list.

== Releases ==
In the first half year of 2016, we released:
 * 1.4.22 through 1.4.29 (8 releases)
 * 1.5.0-beta4 through beta6 (3 releases)
Totalling 11 releases in 26 weeks, which means we kept up with last year's
pace of one release per 3 weeks on average.

The release process automation we built in 2015 proves a great asset:
cutting a release is roughly only half an hour work (it used to be a full
morning).

== Packaging and installation ==
Both 1.4.30 and 1.5.0 have switched from 'Makefile.PL' dependency
declaration to 'cpanfile' dependency declaration. Through this change, we
now support enhanced application deployment through 'carton' (aka Perl's
equivalent of ruby's 'bundler') as well as much simpler dependency
installation, with no more chance to clobber a system beyond the ability to
run parallel versions of LedgerSMB.

We have taken probably the last hurdle for the Docker images to *drop*
their "EXPIREMENTAL" status (for 1.5): Although all document templates were
stored in the database, any included documents (such as letterheads,
headers or footers) were still loaded off the file system. In May, we
implemented a change which now lets includes be transparently be loaded
from the database.

For most 1.4 releases, the packages on apt.ledgersmb.org have been
succesfully updated.

Packaging for other distros: There was some activity on the development
mailing list showing interest to work on a Gentoo package. Additionally,
the project would love to be able to offer Fedora/RedHat packages. We
currently don't have anybody working on this topic, but we have
rpm.ledgersmb.org or repo.ledgersmb.org reserved for the purpose of hosting
the result. Anybody with interest in starting this work, please step
forward!

== Development progress ==
The during first half year of 2016, more than 300 pull requests were merged
and more than 70 issues created and resolved.

A summary of achievements over the past half year:
 * Test coverage jumped from 11 to 25% using the web-based testing
    infrastructure (and increasing)
 * (light) testing of appropriate formatting of SQL and HTML documents
 * Discovered how to extract screenshots of failing browser-based tests
from Travis CI
 * 'cpanfile' dependency tracking for 'carton' style deployment
 * Move to aggregated Dojo sources for great speed improvement loading pages
 * Move the 'document root' from the project root to UI/ for better
security and tree layout
 * Moved away from 'Fixes.sql', the 1.4 way of deploying database changes;
   should eliminate most output (noise: false failure reports) in the logs
 * Multiple contributions to Test::BDD::Cucumber, including support for
extensions,
   to better support our testing use-cases
 * Created spin-off project Weasel (https://github.com/perl-weasel) for
sharing browser
   based testing code with other projects
 * Adopted Test::Dependencies to ensure correct dependency setting
 * Long list of 1.5 issues fixed
 * Tremendously improved SQL Ledger 3.0 migration scripting

Some user-visible changes in the application:
 * A single user account can now log in from different browsers at the same
time
   this fixes a regression from 1.3 (fixed in 1.4 and 1.5)
 * Add a 'Create' button on the 'setup.pl' front page for new company
creation
   This change was directly based on user-feedback on the users mailing list

OpenHUB (https://www.openhub.net/p/ledger-smb) still ranks us among the
0.3% highest activity open source projects. Additional stats: We have had 4
more contributors over the last 12 months than over the prior 12 months.
The committers produced over this 12-month period, a total of almost 1'000
commits, doubling the number of the previous period.

Over the last half year, I've been spending a good portion of my time
helping these new developers understand the code base so they can
effectively and efficiently contribute.

In summary: development is really very active.

== 1.5 development/ release ==
Even though most of the development mentioned above already concerns 1.5,
it seems to be fair to address it as its own category.

With the 1.5 release, we're doing things a bit differently than with prior
releases: users have told us about 1.3 and 1.4 that installation was
difficult and lacking documentation.

To prevent similar feedback about 1.5, we've written installation
instructions and 'preparing first use' instructions on the ledgersmb.org
website *before* the release. A few users (but mostly John Locke) are
testing their day-to-day scenarios with 1.5. When they hit problems, we fix
those.
Additionally, the browser tests we're developing are at this point
concentrated on the functionality that a first-time user is likely to hit.
(Next to being directed at generating the highest coverage increases.)

The documentation has been written, most of the tests has been run through
successfully. There are a quite a few test scenarios that remain to be
written. Writing these scenarios stalled in light of the other two items
and a highly needed rewrite of our testing framework. With the inception of
Weasel, that has now happened (although inception of a new project never is
the end of the work queue :-) ). All that means that the time has come to
return to writing test scripts and the fixes to the bugs the tests may find.

While this means 1.5.0 isn't being released just yet, it does mean that
when it will, it'll be our best-tested release ever. Also, even though 1.5
doesn't look all that different from 1.4, the UI works completely
differently - impacting all screens, download and upload functionality. A
change with impact this big needs to be thoroughly tested *and* is likely
to slip -- we're working on it.

== Community interest ==
The FreeNode IRC channel (irc://irc.freenode.net/#ledgersmb) is now bridged
through Matrix and available through their Vector web client at
https://vector.im/beta/#/room/#ledgersmb:matrix.org . Attendance at the
(now combined) channel has increased: we now have people active and around
the channel for most of the 24h in a day and most weekdays (including
weekends). Users are actively supported in their installation or usage
problems.

On the users mailing list we saw great contributions from users discussing
required features and much needed improvements, showing the very high
commitment of our user base.

== Future direction ==
The new developers - some of whom 'had' to work on SQL Ledger in the past -
have indicated that our code base - once they got used to it - is a relief
to work on.
This reaffirms the premise of the longer developers that we're on the right
track. A shortlist of items having been discussed:

 * Is there a better templating engine than Template Toolkit?
   We came to the conclusion that our template engine currently performs
two roles:
   1. Rendering our UI
   2. Rendering our downloadable documents
   While TT isn't fast, to perform (2), it doesn't really need to be.
   With our move to run more code on the client side, our need for a
template engine to do (1) will gradually decline. We might switch
templating engines for (1) in the distant future if we need another one for
that purpose.

 * When can we start developing services?
   In order to be able to take full advantage of Dojo, we *have* to start
implementing services real soon now (i.e. quickly after we get 1.5.0 out
the door)

 * Is (La)TeX really our best option to generate PDF output in this day and
age?
   While *only* having LaTeX available for PDF output poses a needlessly
high barrier of entry, with other options available including wkhtml2pdf
(which supports a lot of CCS2+CSS3 for layout tweaking), we agree that the
interest of our existing user base is best protected by continuation of the
(La)TeX functionality. However, we're looking for resources to add
wkhtml2pdf based PDF output in addition, in order to lower the barrier of
entry.

 * Is dojo really the best web framework we can build against?
   While this is obviously a topic which lends itself for a hugel bikeshed
debate, we have very good experience with Dojo so far. Angular prides
itself with "no complicated DOM manipulation required", but to be honest,
I'm not seeing any of that with Dojo either. As soon as one starts writing
his/her own components, that's where the DOM fiddling starts; I can't see
how Angular would prevent that. React boasts that it has much better
templating support - while templating is important, at the size and
complexity we're building our application, it's just a tiny piece of the
puzzle. Also, people have plugged various different templating engines
(Handlebars, React, dojox.DTL) into Dojo. I'm sure we can (re)use some of
that work when the time comes we need to.
Where Dojo tries to stay 'out of the way' of developers by being
non-opinionated, extensible in every respect, both Angular and React try to
be exactly the opposite: reviews on the web state that e.g. Angular can't
be combined with anything else (Do it the Angular way, or don't do it).
Concluding: the most solid, yet flexible solution which will support slow
migration - one screen at a time - as well as a quick full-scale UI rewrite
(moving parts of our UI functionality from the Perl request handlers to
client-side JS), seems to be Dojo.


I hope I've given a comprehensive, yet summarized (I know, contradictio in
terminis...) overview of what's all going on in the project.

If you have questions or feel like there are other efforts that need to be
named, please follow up to this mail on the users list (
ledger-smb-users@lists.sourceforge.net).


Thanks for your attention!


-- 
Bye,

Erik.

http://efficito.com -- Hosted accounting and ERP.
Robust and Flexible. No vendor lock-in.
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Ledger-smb-users mailing list
Ledger-smb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ledger-smb-users

Reply via email to