:date: 2021-03-11 ======================== Thursday, March 11, 2021 ======================== Getting the book to build on readthedocs ======================================== Yesterday I had a Skype chat with Charles from China. It turned out that he had been reading the docs on `lino.readthedocs.io `__! The last successful build there was a year and 4 months ago! I vaguely remember that last time it failed because they have some quota and the book was too big. Now I tried again and saw that they have (of course!) evolved since then and that I had a :file:`.readthedocs.yml`, but maybe they require it to be named :file:`.readthedocs.yaml`. I renamed it and updated the requirements setting to use our central :file:`requirements.dev.txt` file. Nice. That was one of the disturbing things, that you needed an extra :file:`requirements.txt` file in the docs subdirectory. But it still fails (`build 13215043 `__:: running build_ext building '_ldap' extension creating build/temp.linux-x86_64-3.7 creating build/temp.linux-x86_64-3.7/Modules gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DHAVE_SASL -DHAVE_TLS -DHAVE_LIBLDAP_R -DHAVE_LIBLDAP_R -DLDAPMODULE_VERSION=3.3.1 -DLDAPMODULE_AUTHOR=python-ldap project -DLDAPMODULE_LICENSE=Python style -IModules -I/home/docs/.pyenv/versions/3.7.9/include/python3.7m -c Modules/LDAPObject.c -o build/temp.linux-x86_64-3.7/Modules/LDAPObject.o In file included from Modules/LDAPObject.c:3:0: Modules/common.h:15:10: fatal error: lber.h: No such file or directory #include ^~~~~~~~ compilation terminated. error: command 'gcc' failed with exit status 1 ---------------------------------------- ERROR: Command errored out with exit status 1: /home/docs/checkouts/readthedocs.org/user_builds/lino/envs/master/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ykcugga8/python-ldap_83a5250d16a044fa869a8c46aa4c0922/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ykcugga8/python-ldap_83a5250d16a044fa869a8c46aa4c0922/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-exm7_nyl/install-record.txt --single-version-externally-managed --compile --install-headers /home/docs/checkouts/readthedocs.org/user_builds/lino/envs/master/include/site/python3.7/python-ldap Check the logs for full command output. So the `pip install python_ldap` doesn't work. Yes, python_ldap has some `build prerequisites `__, but readthedocs doesn't seem to have an option where I can tell it to install them. I read `their docs page `__ but couldn't find any such option. So I abandoned once more. Publish the Lino Book on GitLab =============================== Before deleting the project on RTD, I should publish the docs somewhere else. On GitHub pages? Last time I tried this, it was a bit twisted because GitHub doesn't care much about Sphinx. And anyway I want to move to GitLab. Current situation:: $ go book $ git remote -v show origin git@github.com:lino-framework/book.git (fetch) origin git@github.com:lino-framework/book.git (push) Let's try to change this (as instructed `here `__):: $ go book $ git push --set-upstream git@gitlab.com:lino-framework/book.git master Counting objects: 23898, done. Delta compression using up to 2 threads. Compressing objects: 100% (7741/7741), done. Writing objects: 100% (23898/23898), 34.35 MiB | 622.00 KiB/s, done. Total 23898 (delta 17150), reused 22397 (delta 15930) remote: Resolving deltas: 100% (17150/17150), done. remote: remote: remote: The private project lino-framework/book was successfully created. remote: remote: To configure the remote, run: remote: git remote add origin git@gitlab.com:lino-framework/book.git remote: remote: To view the project, visit: remote: https://gitlab.com/lino-framework/book remote: remote: remote: To gitlab.com:lino-framework/book.git * [new branch] master -> master Branch 'master' set up to track remote branch 'master' from 'git@gitlab.com:lino-framework/book.git'. Before I can add a remote, I must remove the existing remote:: $ git remote rm origin $ git remote add origin git@gitlab.com:lino-framework/book.git Yes, seems that it worked:: $ git remote -v show origin git@gitlab.com:lino-framework/book.git (fetch) origin git@gitlab.com:lino-framework/book.git (push) Next step is to add a :xfile:`.gitlab-ci.yml` file. I just copied that of the :ref:`mentori` project, which is already on GitLab. Evening session =============== Yes, I moved the :ref:`Community Guide ` from GitHub to GitLab. This was easier because there is no test suite, just a Sphinx build. And then :ref:`atelier`, which I also released to PyPI because :ref:`book` has intersphinx dependencies to it. .. So instead of saying - https://www.lino-framework.org - https://community.lino-framework.org - https://atelier.lino-framework.org we will now get used to say - https://lino-framework.gitlab.io/book - https://lino-framework.gitlab.io/cg - https://lino-framework.gitlab.io/atelier Yes, it's less easy to remember, but we would install redirects on LF when it is back. Next time I will continue to move repositories from GH to GL. It will take some time until all links in all docs are updated.