Monday, March 20, 2017¶
Fix two regressions for Welfare¶
I fixed #1599. Nebenwirkung : Empfang hat jetzt auch einen Menübefehl “Meine Begleitungen” sowie Konfigurierung Klientenkontaktarten und Beendigungsgründe. Darf das bleiben? Oder muss das wieder weg? (Dazu müsste ich eine neue Rolle CoachingsOperator machen. Oder OfficeOperator als manager_roles_required hinzufügen und CoachingsStaff für ReceptionClerk wieder rausholen.) cal.Event hatte als manager_roles_required nur OfficeStaff, jetzt (OfficeStaff, OfficeOperator).
Reading this blog as a newsfeed¶
I published this blog (with only the first section) at 0:41 a first time. Then started RssDemon on my mobile and read it there. Then wrote this paragraph, changed the time to 0:45 and published again.
I then hit “Refresh” in RssDemon to see whether it would notice the updated post. No, it doesn’t. I guess that’s because the RSS protocol was not designed to to handle such situations.
A possible workaround might be to switch from RSS to Atom. My blog currently uses sphinxfeed for creating the rss.xml file. Needs more investigation. Not very urgent.
Inviting others to vote¶
I started #1601. But before doing this, I will do #1603 (Move the Noi plugins to XL). Because #1601 is going to cause new translatable messages.
Move the Noi plugins to XL¶
I did #1603 (Move the Noi plugins to XL).
That is, “lino_noi.lib.x” becomes “lino_xl.lib.x” for each x in deploy, clocking, faculties, tickets and votes
Mostly routine work. The biggest challenge was the following:
book/docs/api/lino_xl.lib.tickets.rst:6: WARNING:
undefined label: noi.specs.tickets
(if the link has no caption the label must precede a section header)
The problem here is how to organize documentation.
How to organize documentation¶
The docstring of the lino_xl.lib.tickets
plugin cannot, for
itself, contain very concrete usage documentation because that depends
on where the plugin is being used. Any plugin might get extended. The
plugin developer does not know it. It is the application who should
explain why and how it uses a given plugin. So the plugin docstring
can at most refer to such documentation using an external link.
But here we are in a special situation where we do have actually one pilot application which has a kind of privilege and duty of documenting the plugin.
Technically Lino Noi is a separate project and should remain
separated because if somebody wants to fork it, they probably might
not want to fork the lino_xl.lib.tickets
plugin as well.
Now imagine this fork is maintained by somebody who does not
participate in Lino and uses other development and documentation
methods. And imagine that the fork becomes stronger than its origin
and the Lino project would decide to discontinue Lino Noi. In that
case these future Lino maintainers would have to decide what to do
with their lino_xl.lib.tickets
plugin. Do they continue to
maintain it? If meanwhile it is being used by some other pilot
application (which is part of Lino), then they must change their
docstring to refer to that application. Otherwise they will probably
discontinue the plugin together with Noi, and that stronger external
fork of Noi will take over the maintenance of the plugin.
This exaple illustrates that our pilot applications (noi, welfare,
cosi, voga, avanti) have a special status. Lino also depends on
them. It is a bidirectional dependency, a partnership. We cannot
explain tickets
without noi. We cannot
explain ledger
without cosi. We might
do it (e.g. by creating an educational project in book or by creating
another pilot application), but that’s useless as long as there is no
other application than the pilot.
That’s why I currently believe that actually we should include the docs of these pilot applications (including the doctest part of their test suites!) into Book. I acted accordingly to this when I moved cosi plugins to xl.
I am a bit afraid of this trend because it will make the Book even bigger. But I see no other solution. And it seems the right direction. Another observation is that this will remove documentation from the source repositories of these applications into book. Which is actually a good thing as long as we do not yet use eggs or wheels to provide use-only packaging.
11:05 : okay, this is now checked in. There is a t least one last
thing to do: move also the team demo project from lino_noi to
lino_book. Currently the Book is deemed to fail on travis because it
requires Noi not only to be installed but also to have done
pm prep
.
Miscellaneous¶
Tanel noted that “lipik” is a better translation for “ticket” than “pilet”. “Pilet” has a strong connotation of allowing access to something. Lipik is just a piece of paper.