|
|
|
|
================
|
|
|
|
|
Docutils_ Bugs
|
|
|
|
|
================
|
|
|
|
|
|
|
|
|
|
:Author: David Goodger; open to all Docutils developers
|
|
|
|
|
:Contact: goodger@python.org
|
|
|
|
|
:Date: $Date: 2017-06-09 13:02:35 +0200 (Fr, 09 Jun 2017) $
|
|
|
|
|
:Revision: $Revision: 8103 $
|
|
|
|
|
:Copyright: This document has been placed in the public domain.
|
|
|
|
|
|
|
|
|
|
.. _Docutils: http://docutils.sourceforge.net/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugs in Docutils?!? Yes, we do have a few. Some are old-timers that
|
|
|
|
|
tend to stay in the shadows and don't bother anybody. Once in a while
|
|
|
|
|
new bugs are born. From time to time some bugs (new and old) crawl
|
|
|
|
|
out into the light and must be dealt with. Icky.
|
|
|
|
|
|
|
|
|
|
This document describes how to report a bug, and lists known bugs.
|
|
|
|
|
|
|
|
|
|
.. contents::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
How To Report A Bug
|
|
|
|
|
===================
|
|
|
|
|
|
|
|
|
|
If you think you've discovered a bug, please read through these
|
|
|
|
|
guidelines before reporting it.
|
|
|
|
|
|
|
|
|
|
First, make sure it's a new bug:
|
|
|
|
|
|
|
|
|
|
* Please check the list of `known bugs`_ below and the `SourceForge
|
|
|
|
|
Bug Tracker`_ to see if it has already been reported.
|
|
|
|
|
|
|
|
|
|
* Are you using the very latest version of Docutils? The bug may have
|
|
|
|
|
already been fixed. Please get the latest version of Docutils from
|
|
|
|
|
the repository_ or from the current snapshot_ and check again. Even
|
|
|
|
|
if your bug has not been fixed, others probably have, and you're
|
|
|
|
|
better off with the most up-to-date code.
|
|
|
|
|
|
|
|
|
|
If you don't have time to check the latest snapshot, please report
|
|
|
|
|
the bug anyway. We'd rather tell you that it's already fixed than
|
|
|
|
|
miss reports of unfixed bugs.
|
|
|
|
|
|
|
|
|
|
* If Docutils does not behave the way you expect, look in the
|
|
|
|
|
documentation_ (don't forget the FAQ_!) and `mailing list archives`_
|
|
|
|
|
for evidence that it should behave the way you expect.
|
|
|
|
|
|
|
|
|
|
If you're not sure, please ask on the Docutils-users_ mailing list
|
|
|
|
|
first.
|
|
|
|
|
|
|
|
|
|
---------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
If it's a new bug, the most important thing you can do is to write a
|
|
|
|
|
simple description and a recipe that reproduces the bug. Try to
|
|
|
|
|
create a `minimal example`_ that demonstrates the bug. The easier you
|
|
|
|
|
make it to understand and track down the bug, the more likely a fix
|
|
|
|
|
will be.
|
|
|
|
|
|
|
|
|
|
.. _minimal example:
|
|
|
|
|
|
|
|
|
|
.. sidebar:: minimal example
|
|
|
|
|
|
|
|
|
|
A `minimal working example` is a complete example which is as as small and
|
|
|
|
|
simple as possible. It should be complete and working, so that
|
|
|
|
|
|
|
|
|
|
* you cannot accidentally omit information important to diagnosing
|
|
|
|
|
the problem and
|
|
|
|
|
* the person responding can just copy-and-paste the code to try it out.
|
|
|
|
|
|
|
|
|
|
To construct an example which is as small as possible, the rule
|
|
|
|
|
quite simple: *remove/leave out anything which is not necessary*.
|
|
|
|
|
|
|
|
|
|
See also: `What is a minimal working example?`__, `LaTeX FAQ`__
|
|
|
|
|
|
|
|
|
|
__ http://www.minimalbeispiel.de/mini-en.html
|
|
|
|
|
__ http://www.tex.ac.uk/cgi-bin/texfaq2html?label=minxampl
|
|
|
|
|
|
|
|
|
|
Now you're ready to write the bug report. Please include:
|
|
|
|
|
|
|
|
|
|
* A clear description of the bug. Describe how you expected Docutils
|
|
|
|
|
to behave, and contrast that with how it actually behaved. While
|
|
|
|
|
the bug may seem obvious to you, it may not be so obvious to someone
|
|
|
|
|
else, so it's best to avoid a guessing game.
|
|
|
|
|
|
|
|
|
|
* A complete description of the environment in which you reproduced
|
|
|
|
|
the bug:
|
|
|
|
|
|
|
|
|
|
- Your operating system & version.
|
|
|
|
|
- The version of Python (``python -V``).
|
|
|
|
|
- The version of Docutils (use the "-V" option to most Docutils
|
|
|
|
|
front-end tools).
|
|
|
|
|
- Any private modifications you made to Docutils.
|
|
|
|
|
- Anything else that could possibly be relevant. Err on the side
|
|
|
|
|
of too much information, rather than too little.
|
|
|
|
|
|
|
|
|
|
* A literal transcript of the *exact* command you ran, and the *exact*
|
|
|
|
|
output. Use the "--traceback" option to get a complete picture.
|
|
|
|
|
|
|
|
|
|
* The exact input and output files. Create a `minimal example`_
|
|
|
|
|
of the failing behaviour — it is better to attach complete files
|
|
|
|
|
to your bug report than to include just a summary or excerpt.
|
|
|
|
|
|
|
|
|
|
* If you also want to include speculation as to the cause, and even a
|
|
|
|
|
patch to fix the bug, that would be great!
|
|
|
|
|
|
|
|
|
|
The best place to send your bug report is to the `SourceForge Bug
|
|
|
|
|
Tracker`_. That way, it won't be misplaced or forgotten. In fact, an
|
|
|
|
|
open bug report on SourceForge is a constant irritant that begs to be
|
|
|
|
|
squashed.
|
|
|
|
|
|
|
|
|
|
Thank you!
|
|
|
|
|
|
|
|
|
|
(This section was inspired by the `Subversion project's`__ BUGS__
|
|
|
|
|
file.)
|
|
|
|
|
|
|
|
|
|
__ http://subversion.tigris.org/
|
|
|
|
|
__ http://svn.collab.net/viewcvs/svn/trunk/BUGS?view=markup
|
|
|
|
|
|
|
|
|
|
.. _repository: docs/dev/repository.html
|
|
|
|
|
.. _snapshot: http://docutils.sourceforge.net/#download
|
|
|
|
|
.. _documentation: docs/
|
|
|
|
|
.. _FAQ: FAQ.html
|
|
|
|
|
.. _mailing list archives: http://docutils.sf.net/#mailing-lists
|
|
|
|
|
.. _Docutils-users: docs/user/mailing-lists.html#docutils-users
|
|
|
|
|
.. _SourceForge Bug Tracker:
|
|
|
|
|
http://sourceforge.net/p/docutils/bugs/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Known Bugs
|
|
|
|
|
==========
|
|
|
|
|
|
|
|
|
|
Also see the `SourceForge Bug Tracker`_.
|
|
|
|
|
|
|
|
|
|
* .. _error reporting:
|
|
|
|
|
|
|
|
|
|
Calling rst2s5.py with a non-existent theme (``--theme
|
|
|
|
|
does_not_exist``)
|
|
|
|
|
causes exceptions. Such errors should be handled more gracefully.
|
|
|
|
|
|
|
|
|
|
* The "stylesheet" setting (a URL, to be used verbatim) should be
|
|
|
|
|
allowed to be combined with "embed_stylesheet". The stylesheet data
|
|
|
|
|
should be read in using urllib. There was an assumption that a
|
|
|
|
|
stylesheet to be embedded should exist as a file on the local
|
|
|
|
|
system, and only the "stylesheet_path" setting should be used.
|
|
|
|
|
|
|
|
|
|
* ``utils.relative_path()`` sometimes returns absolute _`paths on
|
|
|
|
|
Windows` (like ``C:/test/foo.css``) where it could have chosen a
|
|
|
|
|
relative path.
|
|
|
|
|
|
|
|
|
|
Furthermore, absolute pathnames are inserted verbatim, like
|
|
|
|
|
``href="C:/test/foo.css"`` instead of
|
|
|
|
|
``href="file:///C:/test/foo.css"``.
|
|
|
|
|
|
|
|
|
|
.. gmane web interface is down.
|
|
|
|
|
TODO: find this article in the Sourceforge mail archives
|
|
|
|
|
For details, see `this posting by Alan G. Isaac
|
|
|
|
|
<http://article.gmane.org/gmane.text.docutils.user/1569>`_.
|
|
|
|
|
|
|
|
|
|
* Footnote label "5" should be "4" when processing the following
|
|
|
|
|
input::
|
|
|
|
|
|
|
|
|
|
ref [#abc]_ [#]_ [1]_ [#4]_
|
|
|
|
|
|
|
|
|
|
.. [#abc] footnote
|
|
|
|
|
.. [#] two
|
|
|
|
|
.. [1] one
|
|
|
|
|
.. [#4] four
|
|
|
|
|
|
|
|
|
|
Output::
|
|
|
|
|
|
|
|
|
|
<document source="<stdin>">
|
|
|
|
|
<paragraph>
|
|
|
|
|
ref
|
|
|
|
|
<footnote_reference auto="1" ids="id1" refid="abc">
|
|
|
|
|
2
|
|
|
|
|
|
|
|
|
|
<footnote_reference auto="1" ids="id2" refid="id5">
|
|
|
|
|
3
|
|
|
|
|
|
|
|
|
|
<footnote_reference ids="id3" refid="id6">
|
|
|
|
|
1
|
|
|
|
|
|
|
|
|
|
<footnote_reference auto="1" ids="id4" refid="id7">
|
|
|
|
|
5
|
|
|
|
|
<footnote auto="1" backrefs="id1" ids="abc" names="abc">
|
|
|
|
|
<label>
|
|
|
|
|
2
|
|
|
|
|
<paragraph>
|
|
|
|
|
footnote
|
|
|
|
|
<footnote auto="1" backrefs="id2" ids="id5" names="3">
|
|
|
|
|
<label>
|
|
|
|
|
3
|
|
|
|
|
<paragraph>
|
|
|
|
|
two
|
|
|
|
|
<footnote backrefs="id3" ids="id6" names="1">
|
|
|
|
|
<label>
|
|
|
|
|
1
|
|
|
|
|
<paragraph>
|
|
|
|
|
one
|
|
|
|
|
<footnote auto="1" backrefs="id4" ids="id7" names="4">
|
|
|
|
|
<label>
|
|
|
|
|
5
|
|
|
|
|
<paragraph>
|
|
|
|
|
four
|
|
|
|
|
|
|
|
|
|
* IDs are based on names. Explicit hyperlink targets have priority
|
|
|
|
|
over implicit targets. But if an explicit target comes after an
|
|
|
|
|
implicit target with the same name, the ID of the first (implicit)
|
|
|
|
|
target remains based on the implicit name. Since HTML fragment
|
|
|
|
|
identifiers based on the IDs, the first target keeps the name. For
|
|
|
|
|
example::
|
|
|
|
|
|
|
|
|
|
.. contents::
|
|
|
|
|
|
|
|
|
|
Section
|
|
|
|
|
=======
|
|
|
|
|
|
|
|
|
|
.. _contents:
|
|
|
|
|
|
|
|
|
|
Subsection
|
|
|
|
|
----------
|
|
|
|
|
|
|
|
|
|
text with a reference to contents_ and section_
|
|
|
|
|
|
|
|
|
|
.. _section:
|
|
|
|
|
|
|
|
|
|
This paragraph is explicitly targeted with the name "section".
|
|
|
|
|
|
|
|
|
|
When processed to HTML, the 2 internal hyperlinks (to "contents" &
|
|
|
|
|
"section") will work fine, but hyperlinks from outside the document
|
|
|
|
|
using ``href="...#contents"`` and ``href="...#section"`` won't work.
|
|
|
|
|
Such external links will connect to the implicit targets (table of
|
|
|
|
|
contents and "Section" title) instead of the explicit targets
|
|
|
|
|
("Subsection" title and last paragraph).
|
|
|
|
|
|
|
|
|
|
Hyperlink targets with duplicate names should be assigned new IDs
|
|
|
|
|
unrelated to the target names (i.e., "id"-prefix serial IDs).
|
|
|
|
|
|
|
|
|
|
* The "contents" ID of the local table of contents in
|
|
|
|
|
``test/functional/expected/standalone_rst_pseudoxml.txt`` is lost in
|
|
|
|
|
the HTML output at
|
|
|
|
|
``test/functional/expected/standalone_rst_html4css1.html``.
|
|
|
|
|
|
|
|
|
|
* _`Blank first columns` in simple tables with explicit row separators
|
|
|
|
|
silently swallow their input. They should at least produce system
|
|
|
|
|
error messages. But, with explicit row separators, the meaning is
|
|
|
|
|
unambiguous and ought to be supported::
|
|
|
|
|
|
|
|
|
|
============== ==========
|
|
|
|
|
Table with row separators
|
|
|
|
|
============== ==========
|
|
|
|
|
and blank
|
|
|
|
|
-------------- ----------
|
|
|
|
|
entries
|
|
|
|
|
-------------- ----------
|
|
|
|
|
in first
|
|
|
|
|
-------------- ----------
|
|
|
|
|
columns.
|
|
|
|
|
============== ==========
|
|
|
|
|
|
|
|
|
|
Added a commented-out test case to
|
|
|
|
|
test/test_parsers/test_rst/test_SimpleTableParser.py.
|
|
|
|
|
|
|
|
|
|
* _`Footnote references with hyperlink targets` cause a possibly
|
|
|
|
|
invalid node tree and make the HTML writer crash::
|
|
|
|
|
|
|
|
|
|
$ rst2pseudoxml.py
|
|
|
|
|
[1]_
|
|
|
|
|
|
|
|
|
|
.. _1: URI
|
|
|
|
|
<document source="<stdin>">
|
|
|
|
|
<paragraph>
|
|
|
|
|
<footnote_reference ids="id1" refuri="URI">
|
|
|
|
|
1
|
|
|
|
|
<target ids="id2" names="1" refuri="URI">
|
|
|
|
|
|
|
|
|
|
* Anonymous references have "name" attributes. Should they? Are they
|
|
|
|
|
used? See ``test/test_parsers/test_rst/test_inline_markup.py``.
|
|
|
|
|
|
|
|
|
|
* <reference> elements have a "name" attribute, not "names". The
|
|
|
|
|
attribute should be "names"; this is an inconsistency.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
..
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: indented-text
|
|
|
|
|
indent-tabs-mode: nil
|
|
|
|
|
sentence-end-double-space: t
|
|
|
|
|
fill-column: 70
|
|
|
|
|
End:
|