Thursday, December 13, 2018¶
And here we go for our next version of Lino! The new
lino.modlib.summaries.Summarized
mixin didn’t yet update its fields
during checkdata
.
And I had no pangs of conscience to completely review the API at that occasion:
Summarizable becomes Summarized, Summary becomes MonthlySlaveSummary, a new
attribute delete_them_all
to make sure the developer
knows what it means. I updated the specs for lino.modlib.summaries
, but
am aware that it is still far from being complete.
I released 2018-12-13 on PyPI which also requires two changes in XL,
so also this requires a version bump to 18.12.3. 2018-12-13 also has a
little change lino.utils.jsgen.py2js()
, this is Tonis’ work.
OMG! It seems that we really need separate release notes for Lino and XL.
Actually even separate release notes won’t be of practical use, here is an example:
The API optimizations in lino.modlib.summaries
also cause a change in
the database structure for the lino_xl.lib.userstats
plugin: until now
the userstats.Summary model had a pointer to system.SiteConfig which was
completely useless. This field now goes away. This plugin is not used in any
production site, so there is no need to write a release note about it.
Changes in the database structure should usually be mentioned in the release notes, at least if they are not handled automatically. Until now I handle such changes in a very simple way: when the production site wants a new version, I simply restore a snapshot of the production site into a new version and look at the error messages. I often do this on the fly some evening when they are not working. While this approach is very economic on administrative costs, it has the disadvantage that Hamza or Tonis would have difficulties to do it without me (the guy who wrote the changes).
All this took me a whole day. And I am sure that none of our customers would agree to pay for this work. OTOH if I were a customer, I would refuse to use a framework where such changes are not being done. And of course as a programmer I refuse to maintain applications on an unmaintained framework.
I realized that lino_welfare.modlib
was missing in the API. And the
API was hidden in the Contributor’s Guide, not it is at the top-level index of
the Lino book.