Monday, July 25, 2016¶
Bugfix: running commands with options per_project
¶
When running a command on all projects using per_project
, then
it was no longer possible to run commands with arguments. For
example:
$ pp inv ci --today 20160724
usage: per_project [-h] [-s START] [-u UNTIL] [cmd [cmd ...]]
per_project: error: unrecognized arguments: --today 20160724
This was a case for nargs=argparse.REMAINDER.
Help texts¶
Ticket #985. starts to give first visible results. I am still discovering the general workflow.
I fixed a design flaw: there was only one target per project doctree,
but e.g. the doctree of Developer Guide must write a
help_texts.py
file to both lino.modlib.lino_startup
and lino_xl.lib.xl
.
I realized that it must not be a builder but a perfectly normal extension which just listens to the html builder and writes its files when that builder finishes.
I renamed the lino.sphinxcontrib.help_text_builder
module
into lino.sphinxcontrib.help_texts_extractor
I removed the inv bh
command since it is no longer needed. The
help_texts.py
is automatically created at the end of
inv bd
(though only when all documents have been parsed
during that build, i.e. only after inv clean
)
A last thing to observe is project interdependency: since the help texts for lino and xl are being updated only when book is being built, there might be side effects for the projects in between. That is, I cannot simply run:
$ pp inv clean bd pd prep test
But must split them at least into these:
$ pp inv clean bd pd
$ pp inv prep test
The most time-consuming part of this ticket is of course yet to do: convert existing code so that it uses the new feature.
Developer’s Guide¶
Grigorij reported more problems in Writing Python fixtures.
The examples in this document were indeed very outdated and failed completely. I invested 3 hourse to give it a profound review, moved it to a directory on its own and added test cases. Actually the filename “dumpy” should also change.
AttributeError: ‘module’ object has no attribute ‘chdir’¶
Build 439 fails on drone.io with the following error:
$ python --version
Python 2.7.3
$ pip --version
pip 1.4.1 from /home/ubuntu/virtualenv/python2.7/lib/python2.7/site-packages (python 2.7)
$ pip install -U setuptools
Downloading/unpacking setuptools from https://pypi.python.org/packages/0a/f0/904432438dda1b4ed33c668392756bb45ae25a945458dd34d8215e68bdd7/setuptools-25.0.1.zip#md5=ce37e9e9f395a97fcf3ce3f1babb1f98
Running setup.py egg_info for package setuptools
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/home/ubuntu/virtualenv/python2.7/build/setuptools/setup.py", line 194, in <module>
here and os.path.chdir(here)
AttributeError: 'module' object has no attribute 'chdir'
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/home/ubuntu/virtualenv/python2.7/build/setuptools/setup.py", line 194, in <module>
here and os.path.chdir(here)
AttributeError: 'module' object has no attribute 'chdir'
The same command on my machine works fine:
$ pip install -U setuptools
Collecting setuptools
Downloading setuptools-25.1.0-py2.py3-none-any.whl (442kB)
100% |████████████████████████████████| 450kB 532kB/s
Installing collected packages: setuptools
Found existing installation: setuptools 20.6.7
Uninstalling setuptools-20.6.7:
Successfully uninstalled setuptools-20.6.7
Successfully installed setuptools-25.1.0
I tried by inserting “pip install -U pip”, and then it worked. 440. Afterwards I removed that line again and it still worked (441). So the problem seems to have been temporary. I see no other explanation for the moment…