Wednesday, August 19, 2020

Aha, on my machine the getlino test suite fails here:

...
Requirement already satisfied, skipping upgrade: packaging in ./env/lib/python3.7/site-packages (from bleach) (20.4)
Requirement already satisfied, skipping upgrade: six>=1.9.0 in ./env/lib/python3.7/site-packages (from bleach) (1.15.0)
Requirement already satisfied, skipping upgrade: pyparsing>=2.0.2 in ./env/lib/python3.7/site-packages (from packaging->bleach) (2.4.7)
Installing collected packages: bleach
Successfully installed bleach-3.1.5
mysql -u root -p -e "create user 'cosi1'@'localhost' identified by 'POzS7VPLwys';"
Enter password:

Change: the getlino.utils.MySQL.run() method must not specify the -p option when we are running in batch.

On travis (https://travis-ci.com/github/lino-framework/getlino/builds/180007302) it fails for another reason:

docker.errors.APIError: 400 Client Error: Bad Request ("client version 1.39 is too new. Maximum supported API version is 1.38")

I first thought that this just means a little change in our .travis.yml file:

pip3 install docker==1.38

But no. This results in:

$ pip3 install docker==1.38
ERROR: Could not find a version that satisfies the requirement docker==1.38 (from versions: 2.0.0, 2.0.1, 2.0.2, 2.1.0, 2.2.0, 2.2.1, 2.3.0, 2.4.0, 2.4.1, 2.4.2, 2.5.0, 2.5.1, 2.6.0, 2.6.1, 2.7.0, 3.0.0, 3.0.1, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.2.0, 3.2.1, 3.3.0, 3.4.0, 3.4.1, 3.5.0, 3.5.1, 3.6.0, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 4.0.0, 4.0.1, 4.0.2, 4.1.0, 4.2.0, 4.2.1, 4.2.2, 4.3.0)
ERROR: No matching distribution found for docker==1.38
The command "pip3 install docker==1.38" failed and exited with 1 during .

Ecosia found this article and though I don’t understand Spanish, I saw that it suggests

client = docker.from_env(version='auto')

Seems that this was it.

Then another problem:

Traceback (most recent call last):
  File "/home/travis/build/lino-framework/getlino/tests/test_docker.py", line 161, in test_production_server
    res = self.run_docker_command(mastercmd.format(cmd))
  File "/home/travis/build/lino-framework/getlino/tests/test_docker.py", line 40, in run_docker_command
    ln = ln.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 4095: unexpected end of data

I also added some “–quiet” options to apt-get install and pip install commands because now that we can see the output, it’s a bit too much of it. Here is just a little fragment:

Collecting python_dateutil
Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)

   |█▍                              | 10 kB 2.6 MB/s eta 0:00:01
   |████▎                           | 30 kB 3.8 MB/s eta 0:00:01
   |█████▊                          | 40 kB 3.2 MB/s eta 0:00:01
   |████████▋                       | 61 kB 3.9 MB/s eta 0:00:01
   |███████████▌                    | 81 kB 3.6 MB/s eta 0:00:01
   |█████████████                   | 92 kB 3.8 MB/s eta 0:00:01
   |███████████████▉                | 112 kB 3.8 MB/s eta 0:00:01
   |█████████████████▎              | 122 kB 3.8 MB/s eta 0:00:01
   |████████████████████▏           | 143 kB 3.8 MB/s eta 0:00:01
   |███████████████████████         | 163 kB 3.8 MB/s eta 0:00:01
   |████████████████████████▌       | 174 kB 3.8 MB/s eta 0:00:01
   |███████████████████████████▍    | 194 kB 3.8 MB/s eta 0:00:01
   |████████████████████████████▉   | 204 kB 3.8 MB/s eta 0:00:01
   |███████████████████████████████▊| 225 kB 3.8 MB/s eta 0:00:01
   |████████████████████████████████| 227 kB 3.8 MB/s

How to use Ansible

I opened #3757.

Created a file /etc/ansible/ansible.cfg and pasted the default content from their example

I added a first host /etc/ansible/hosts

First success:

$ ansible all -m ping
[WARNING]: Platform linux on host lino-framework.org is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
lino-framework.org | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

I read the mentioned page, but didn’t understand how to get rid of the warning. I tried to set interpreter_python = auto_silent in my /etc/ansible/ansible.cfg, which was wrong.

$ ansible all -a “/bin/echo hello”

GitLab pages

I saw the “Edit on GitHub” in the Ansible docs and wondered whether GitLab has this as well…

https://stackoverflow.com/questions/48223039/gitlab-pages-docs-generated-with-sphinx

I downloaded the example .gitlab-ci.yml file from https://gitlab.com/pages/sphinx into the root of my hw project, I changed “.” into “docs” when calling sphinx-build.

Not yet done because I want to use sphinxcontrib.youtube, which doesn’t work when installed via pip on Python 3. There is at least one fork for it, but installing that fork requires git.