Robotics Systems Types: Issueshttps://code.cor-lab.de/https://code.cor-lab.de/favicon.ico?14019720732016-07-14T14:59:59ZOpen Source Collaboration Platform
Redmine Bug #2612 (New): Wrong RST version used in python when building downstream project with setuptoolshttps://code.cor-lab.de/issues/26122016-07-14T14:59:59ZN. Kösternkoester@techfak.uni-bielefeld.de
<a name="Issue"></a>
<h2 >Issue<a href="#Issue" class="wiki-anchor">¶</a></h2>
<p>There is a bug which leads to python processes silently using old/not the newest RST version. To reproduce one has to</p>
<p>1. Install RST (eg. rst0.13.3)</p>
<ul>
<li>This installs RST but uses custom CMake magic to create the egg file, copy it into the lib folder and also write a <strong>rst$VERSION.pth</strong> file. This does not include crating/updating the <strong>easy-install.pth</strong> in the according lib folder as used by setuptools.</li>
</ul>
<p>2. Install a downstream python project with setuptools (used setuptools version 18.8.1) that reqires RST in the same prefix</p>
<ul>
<li>Setuptools by default checks the <strong>easy-install.pth</strong> file and updates it accordingly if RST is present and writes down the version number (rst0.13.3)</li>
</ul>
<p>3. Make changes to RST and re-install it (will lead to rst0.13.4)</p>
<ul>
<li>Same process as above.</li>
</ul>
<p>4. Update the downstream python project</p>
<ul>
<li>Setuptools will <strong>only</strong> check the <strong>easy-install.pth</strong> and realise that the version number written there (rst0.13.3) is within your provided range (eg. rst>=0.13) and therefore make the installation use this (the old) RST lib instead of the newer and installed version (rst0.13.4)</li>
</ul>
<a name="Possible-fix"></a>
<h2 >Possible fix<a href="#Possible-fix" class="wiki-anchor">¶</a></h2>
<p>When using the toolkit, one might add this post build hook:</p>
<pre>
export PYTHONPATH=${toolkit.dir}/lib/python2.7/site-packages:$PYTHONPATH
# dirty hack due to bug in cmake and/or setuptools
chmod -R u+rwx ${toolkit.dir}/lib/python2.7/site-packages/*
cd \\$WORKSPACE/build/python/stable
python2.7 setup.py install --prefix=${toolkit.dir}
cd \\$WORKSPACE/build/python/sandbox
python2.7 setup.py install --prefix=${toolkit.dir}
cd \\$WORKSPACE/build/python/deprecated
python2.7 setup.py install --prefix=${toolkit.dir}
</pre>
<p>This will install over the custom CMake install procedure and update the correct pth file. I would not say that this is a clean way.</p>
<a name="How-to-actually-fix-this"></a>
<h2 >How to actually fix this<a href="#How-to-actually-fix-this" class="wiki-anchor">¶</a></h2>
<p>Separating the languages so that individual install procedures can be done?</p> Bug #1824 (New): Wrong message URLs in sandbox package overviewhttps://code.cor-lab.de/issues/18242014-03-27T10:08:30ZAnonymous
<p>In sandbox packages, e.g. <a class="external" href="http://docs.cor-lab.de//rst-manual/trunk/html/generated/sandbox/package-rst-cbse.html">http://docs.cor-lab.de//rst-manual/trunk/html/generated/sandbox/package-rst-cbse.html</a>, links to the documentation of the contained messages are wrong.</p>
<p>E.g. for the ComponentState, the link is<br /><a class="external" href="http://docs.cor-lab.de//rst-manual/trunk/html/generated/stable/package-rst-cbse.html#rst.cbse.ComponentState">http://docs.cor-lab.de//rst-manual/trunk/html/generated/stable/package-rst-cbse.html#rst.cbse.ComponentState</a><br />where it should be<br /><a class="external" href="http://docs.cor-lab.de//rst-manual/trunk/html/generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState">http://docs.cor-lab.de//rst-manual/trunk/html/generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState</a><br />(so should be <code>../sandbox/..</code> instead of <code>../stable/..</code>)</p> Bug #1261 (Feedback): RST manual (ab)uses Sphinx' Python domain for data typeshttps://code.cor-lab.de/issues/12612012-11-26T17:04:51ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>We generate reStructuredText similar to the following</p>
<pre>
.. py:class:: rst.audition.SoundChunk
[...]
@author [...]
.. py:attribute:: data
:type: :py:class:`OCTET-VECTOR`
[...]
</pre>
<p>This works OK and renders nicely but is quite wrong semantically.</p>
<p>Is there a solution short of writing a custom Sphinx domain?</p>