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
.readthedocs.yml, but maybe they require it to be named
.readthedocs.yaml. I renamed it and updated the requirements setting to
use our central
requirements.dev.txt file. Nice. That was one of the
disturbing things, that you needed an extra
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 <lber.h> ^~~~~~~~ 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 = '"'"'/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.
$ go book $ git remote -v show origin firstname.lastname@example.org:lino-framework/book.git (fetch) origin email@example.com:lino-framework/book.git (push)
Let’s try to change this (as instructed here):
$ go book $ git push --set-upstream firstname.lastname@example.org: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 email@example.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 'firstname.lastname@example.org:lino-framework/book.git'.
Before I can add a remote, I must remove the existing remote:
$ git remote rm origin $ git remote add origin email@example.com:lino-framework/book.git
Yes, seems that it worked:
$ git remote -v show origin firstname.lastname@example.org:lino-framework/book.git (fetch) origin email@example.com:lino-framework/book.git (push)
Yes, I moved the Community Guide from GitHub to GitLab. This was easier because there is no test suite, just a Sphinx build.
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.