Thursday, July 16, 2020¶
The Lino OpenUI front end¶
Ismail is trying to get lino_openui5 running on a Windows machine. He discovered a first bug: the openui5 demo projects import settings from lino_book, which is not a good idea. I changed the openui5 demo projects to not require lino_book anymore.
I then discovered yet another bug in Lino that made OpenUI5 unusable. User objects in Django we have an attribute is_authenticated. The attribute of same name is always False for AnonymousUser. But in Lino this was a method, not an attribute. I guess that this comes from very early childhood more than 10 years ago. It seems that somebody changed it from a method into an attribute… but forgot to do this change on AnonymousUser. And Lino also had an attribute authenticated (without the prefix is_), probably also for historic reasons. Which then later led to code like this:
not_anon = u.is_authenticated if type(u.is_authenticated) == bool else u.is_authenticated()
I tidied up these things and their usage (User no longer has an attribute authenticated, and is_authenticated is no longer a method on AnonymousUser), which hopefully killed that bug thoroughly.
I released the following packages to PyPI so that Ismail can test them: The lino package 20.7.1, Lino Extensions Library 20.7.2, Lino Tera 20.7.0, OpenUI5 front end 20.7.0.
getlino test suite and docker¶
Should the prep.sh
file of getlino run docker container prune in
order to delete all stopped containers? Just to protect myself from running
into troubles after some time because my hard disk is full. On my machine that
makes sense, but what if some potential contributor tries to get started and
uses docker for other projects, and then discovers that running the getlino test
suite has removed all their containers?
# docker image rm getlino_ubuntu
I still had several unused docker images on my machine. I removed them manually docker image rm. Here is my list before running the test suite:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
getlino_ubuntu latest ea6262153601 6 hours ago 529MB
getlino_debian latest 7ed028f980a4 6 hours ago 618MB
And then after running the test suite:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
getlino_ubuntu latest 4167bd107978 About a minute ago 513MB
getlino_debian latest 4f39eb31621c 3 minutes ago 598MB
<none> <none> ea6262153601 6 hours ago 529MB
<none> <none> 7ed028f980a4 6 hours ago 618MB
ubuntu bionic d27b9ffc5667 9 days ago 64.2MB
debian buster 1b686a95ddbf 5 weeks ago 114MB
Okay, ubuntu:bionic and debian:buster were not unused. Docker downloads them
because they are the parent of the getlino images (getlino_ubuntu and
getlino_debian). But what are these <none> images? I read
https://www.projectatomic.io/blog/2015/07/what-are-docker-none-none-images/ but
do not yet feel experienced enough to decide. So I leave the prep.sh
file unchanged for now, and will manually watch my docker images from time to
time.