Tuesday, March 26, 2019

Reorganize Welfare repositories

I continued on #2854.

I created a new repository Lino Welfare Eupen and moved man/welfare_de to weleup/dedocs.

I moved Lino Welfare out of The lino-book package.

The welfare repo is now a library repo, similar to xl.

The welfare repository contains demo projects, specs and api for both weleup and welcht (it makes no sense to explain welfare without also explaining weleup and welcht, and it makes no sense to write technical docs about weleup without also explaining general welfare plugins).

The doctrees of welcht or weleup just contain a short description, installation instructions and links to the real docs.

We want the __init__.py files of welfare plugins refer directly to their specs page.

The doctree of welcht refers to the doctree of weleup.

As a side effect I noticed that the diag command did not yet work under Python 3. Fixed. TODO: add a test case for it.

As if to confirm that this reorganization was useful, Mélanie and Gerd did hard work and reported #2917, a bug in RefundsByPerson. This table considered children as adult only one year after the age specified in lino_xl.lib.households.Plugin.adult_age. I added a test case to cover this: Melba getting adult.

The bug itself was easy (I fixed it using a local patch on their server), but reviewing the docs and writing a test case is at least as important as fixing the bug itself. And of course this takes more time. But now it was a pure joy. Yes, Sphinx makes programmers want to document their work.

Realizing a difference afterwards

I observed an interesting linguistic phenomen:

On one side we have the customer who orders and uses an application, on the other we have the application itself. Until now I didn’t make that differentiation. And until now I can only imagine that some day we might have two different customers who use the same application.

I now ran a find and replace in the files of this blog and changed the history of Lino afterwards: welcht (where it meant the customer) becomes cpaschatelet and weleup (where it meant the customer) becomes cpaseupen. This was possible because my blog is probably the only document in the world about these things.

This problem is similar to the problem experienced by Christians with the differentiation between the concepts of “Holy Scripture” and “Word of God”. Jesus was the first to imagine that there might be more than one Holy Scriptures to reproduce an eternal and unique “Word of God”.