As the year-end approaches, it's time to provide an overview of what
our community has achieved over the past year. At the end of last
year, I wished everybody a healthy and prosperous 2022 and now
is a time to look back and see how we did.
== Community interest ==
After years of decline in the number of hits on our website, this year
has broken the trend: ca 2,000 hits more than in 2021!
Traffic on the mailing lists was - in line with 2021 and 2020 - very low this
year. However, from the fact that during the year, we've seen the continued
increase in number of Stars and Forks on GitHub (Stars went up from 261
on 16 January 2022 to 304 today), we can conclude that there is still
interest in the project. Fortunately, with Covid behind us, new members
are coming to the project's chat channel on Element: people have time
to show their interest and contribute again.
== Releases ==
With the release of 1.10.0 on 08 October 2022, we realized our goal
to release 1.10 in the second half of the year, roughly a year after
1.9. With releases in the third quarter, we aim to provide mature software
before year-end -- when most companies close their books.
Despite the short release cycle, we were able to include a sizeable
list of new functionalities, changes and (code) cleanups through 1157
commits, 738 files changed, 236,716 added lines and 148,116 removed
lines of code (and comments) between 1.9.0 and 1.10.0.
With 37 releases across 4 maintenance branches in 2022, the project was
able to maintain the pace set in 2021 (which had 38 releases):
1.7 (4): 1.7.38 - 1.7.41
1.8 (15): 1.8.25 - 1.8.31
1.9 (6): 1.9.6 - 1.9.22
1.10 (9): 1.10.0 - 1.10.8
Which excludes the alpha, beta and release candidate releases.
== Packaging and installation ==
For 1.10, configuration has switched from the traditional "INI" file
configuration to enable/disable predefined options to a YAML based
configuration file declaring dependency injection. This switch was
made to support much more flexible customization options: entirely
new functionalities can now be added just through the configuration
file, instead of strictly en-/disabling existing ones.
== Development progress ==
This year saw similar numbers of commits as last year. Although the
number of commits was in the same range, the number of pull
requests (623) is lower than last year (827). The number of
active developers - derived from accepted commits - went back
down from 9 last year to 7 this year - the same as in 2020.
This year, too, we were able to close a number of long-standing
bugs/issues, continuing last year's focus to close as many issues
as possible in the 7-year-and-older range:
- #1133: Add listing of user login accounts and employees
- #1821: Allow page size for documents to be set through System > Defaults
- #1881: Improve user feedback on saving, posting, etc of documents
- #2321: VOID transaction does not reverse actual invoice
All from 2016 and 2015, just to name a few.
Project commits on all branches (excluding merges):
927 Erik Huelsmann*
132 Yves Lavoie*
10 Aung Zaw Win*
6 Neil Tiffin*
5 Jeff Shelley*
3 Hugh Esco
2 Chris Travers
By comparison, these are the figures for 2021:
895 Erik Huelsmann*
139 Yves Lavoie*
61 Aung Zaw Win*
11 Neil Tiffin*
4 Richard T. Weeks
1 Xin Wang
Please note that the number of commits is in no way a measure of time
spent on the project. Also note that these numbers don't include the
time spent by those taking the effort to report their problems and
taking the time to respond to developer questions as well as helping
to test solutions when developers think they solved the problem.
Similarly, there was a lot of activity with respect to issues:
Number of open issues at 2022-01-01: 158
of which remain open today: 124
Issues closed: 92
of which created before 2022-01-01: 34
Issues created: 82
of which still open: 24
Number of open issues today: 148
This amount of development activity triggers many CI/CD jobs. To run
our test workloads, we have been using GitHub Actions as well as
CircleCI, each set up to test different aspects.
There isn't much in the 1.11 Changelog that we've spent time on that wasn't
included in a 1.10 maintenance release. Areas that we're
currently spending time on, include:
- Driving the buttons on the AR/AP/Order screens from workflow configuration
- Cleaning the code base from long-deprecated coding patterns such as DBObject
- Creating more web services to drive migration of the front-end to Vue
The 148 issues that are open today summarize into these statistics:
- 8 bite-sized: a good place to start when looking to make contributions
- 51 enhancement: requesting new features added to the application
- 5 help wanted: looking for someone to help out on this issue
- 10 migration: these issues need help testing and developing migration from SQL Ledger
- 6 needs-documentation: there's not enough documentation...
(Note that an issue may fall into more than one category or none at all.)
== New functionality and improvements ==
Not an immediate feature by itself, but with 1.10 a lot of flexibility
was added through configuration by dependency injection. One of
the possibilities that have been unlocked with this change, is to have
PDF output based on other input formats than LaTeX (e.g. HTML).
The dependency injection change offers further improvements towards
increased flexibility by allowing different authentication mechanisms
and multiple workflow sources to be registered. All this to increase
possibilities for customization of installations.
== Looking forward to 2023 ==
In 2023, we'll likely release 1.11 around the third quarter;
again in a release cycle a bit shorter than a year. This year the
1.9 release branches will reach End-Of-Life status on 24 September
2023, as we have reverted back to only two concurrently supported
maintenance releases with a supported lifecycle of 2 years, meaning
that each year one will reach End-Of-Life.
And last but not least, I'm hoping for 1 or 2 new contributors (not
necessarily developers; translators, testers, documentation writers or
UI artists are all greatly appreciated!). If you want to contribute,
but don't know where to start, please contact me.
== In closing ==
Thanks to everybody who contributed to any of the above in any way,
Computerisms.ca for hosting our DNS
Freelock.com for hosting our website and mailing lists
Efficito.com for hosting our mailing list archive, apt repository,
release and download server
GitHub.com, CircleCI and coveralls.io for hosting our development workflow
My special personal thanks go to my GitHub Sponsors for supporting me
for time, efforts and (financial) resources dedicated to the project!
Leaves me only to wish everybody in our community - and their loved
ones - happy holidays and a safe and productive 2023!