You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(5) |
May
(27) |
Jun
(22) |
Jul
(72) |
Aug
(82) |
Sep
(86) |
Oct
(138) |
Nov
(100) |
Dec
(62) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(122) |
Feb
(147) |
Mar
(92) |
Apr
(82) |
May
(101) |
Jun
(153) |
Jul
(37) |
Aug
(34) |
Sep
(46) |
Oct
(46) |
Nov
(6) |
Dec
(38) |
2004 |
Jan
(64) |
Feb
(81) |
Mar
(36) |
Apr
(194) |
May
(329) |
Jun
(272) |
Jul
(68) |
Aug
(74) |
Sep
(150) |
Oct
(57) |
Nov
(62) |
Dec
(63) |
2005 |
Jan
(78) |
Feb
(30) |
Mar
(137) |
Apr
(78) |
May
(54) |
Jun
(122) |
Jul
(72) |
Aug
(110) |
Sep
(80) |
Oct
(75) |
Nov
(125) |
Dec
(79) |
2006 |
Jan
(100) |
Feb
(15) |
Mar
(41) |
Apr
(67) |
May
(30) |
Jun
(11) |
Jul
(14) |
Aug
(22) |
Sep
(20) |
Oct
(14) |
Nov
(11) |
Dec
(15) |
2007 |
Jan
(17) |
Feb
(16) |
Mar
(35) |
Apr
(21) |
May
(33) |
Jun
(50) |
Jul
(12) |
Aug
(7) |
Sep
(2) |
Oct
(6) |
Nov
(5) |
Dec
(2) |
2008 |
Jan
(14) |
Feb
(20) |
Mar
(35) |
Apr
(9) |
May
(57) |
Jun
(21) |
Jul
(42) |
Aug
(4) |
Sep
(13) |
Oct
(76) |
Nov
(40) |
Dec
(55) |
2009 |
Jan
(26) |
Feb
(15) |
Mar
(3) |
Apr
(67) |
May
(32) |
Jun
(39) |
Jul
(59) |
Aug
(31) |
Sep
(59) |
Oct
(64) |
Nov
(21) |
Dec
(10) |
2010 |
Jan
(21) |
Feb
(3) |
Mar
(116) |
Apr
(33) |
May
(9) |
Jun
(28) |
Jul
(21) |
Aug
(23) |
Sep
(146) |
Oct
(70) |
Nov
(31) |
Dec
(57) |
2011 |
Jan
(33) |
Feb
(22) |
Mar
(11) |
Apr
(21) |
May
(51) |
Jun
(47) |
Jul
(35) |
Aug
(26) |
Sep
(25) |
Oct
(34) |
Nov
(61) |
Dec
(51) |
2012 |
Jan
(75) |
Feb
(31) |
Mar
(26) |
Apr
(16) |
May
(24) |
Jun
(24) |
Jul
(31) |
Aug
(46) |
Sep
(36) |
Oct
(28) |
Nov
(37) |
Dec
(21) |
2013 |
Jan
(16) |
Feb
(56) |
Mar
(31) |
Apr
(44) |
May
(45) |
Jun
(29) |
Jul
(38) |
Aug
(18) |
Sep
(12) |
Oct
(16) |
Nov
(21) |
Dec
(11) |
2014 |
Jan
(13) |
Feb
(14) |
Mar
(28) |
Apr
(7) |
May
(72) |
Jun
(33) |
Jul
(21) |
Aug
(1) |
Sep
(6) |
Oct
(14) |
Nov
(18) |
Dec
(22) |
2015 |
Jan
(23) |
Feb
(108) |
Mar
(76) |
Apr
(114) |
May
(60) |
Jun
(9) |
Jul
(8) |
Aug
(9) |
Sep
(42) |
Oct
(9) |
Nov
|
Dec
(7) |
2016 |
Jan
(6) |
Feb
(15) |
Mar
(7) |
Apr
|
May
(33) |
Jun
(3) |
Jul
(19) |
Aug
(12) |
Sep
(6) |
Oct
(16) |
Nov
(17) |
Dec
(125) |
2017 |
Jan
(66) |
Feb
(98) |
Mar
(29) |
Apr
(32) |
May
(63) |
Jun
(98) |
Jul
(26) |
Aug
(33) |
Sep
(19) |
Oct
(77) |
Nov
(31) |
Dec
(27) |
2018 |
Jan
(32) |
Feb
(11) |
Mar
(5) |
Apr
(12) |
May
(4) |
Jun
(9) |
Jul
(9) |
Aug
(13) |
Sep
(11) |
Oct
(6) |
Nov
(23) |
Dec
(2) |
2019 |
Jan
(26) |
Feb
(12) |
Mar
(20) |
Apr
(18) |
May
(7) |
Jun
(22) |
Jul
(81) |
Aug
(129) |
Sep
(32) |
Oct
(18) |
Nov
(11) |
Dec
(44) |
2020 |
Jan
(19) |
Feb
(10) |
Mar
(38) |
Apr
(4) |
May
(9) |
Jun
(15) |
Jul
(29) |
Aug
(79) |
Sep
(12) |
Oct
(22) |
Nov
(10) |
Dec
(37) |
2021 |
Jan
(16) |
Feb
(14) |
Mar
(20) |
Apr
(100) |
May
(21) |
Jun
(19) |
Jul
(13) |
Aug
(13) |
Sep
(37) |
Oct
(112) |
Nov
(64) |
Dec
(22) |
2022 |
Jan
(209) |
Feb
(38) |
Mar
(11) |
Apr
(10) |
May
(55) |
Jun
(104) |
Jul
(35) |
Aug
(10) |
Sep
(21) |
Oct
(21) |
Nov
(50) |
Dec
(12) |
2023 |
Jan
(6) |
Feb
|
Mar
(3) |
Apr
(41) |
May
(48) |
Jun
(9) |
Jul
(6) |
Aug
(25) |
Sep
(3) |
Oct
(22) |
Nov
(56) |
Dec
(12) |
2024 |
Jan
(5) |
Feb
(5) |
Mar
(38) |
Apr
(62) |
May
(12) |
Jun
(10) |
Jul
(3) |
Aug
(59) |
Sep
(2) |
Oct
(36) |
Nov
(14) |
Dec
(3) |
2025 |
Jan
(5) |
Feb
(19) |
Mar
(7) |
Apr
(65) |
May
(11) |
Jun
(13) |
Jul
(46) |
Aug
(7) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Günter M. <mi...@us...> - 2025-08-10 11:02:44
|
- **status**: open --> pending-remind - **Comment**: Thank you for the contribution. Unfortunately, we cannot include the patch without a change in the Docutils specification, https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#standalone-hyperlinks, which limits the supported URI schemes to the ones listed in the Official IANA Registry of URI Schemes and the W3C's Retired Index of WWW Addressing Schemes. While I don't see a "gemini" URI scheme as a particular problematic case, adding non-registered schemes should be done with special care and consideration. Up to now, we (as Docutils developers) did not start to take this task onto ourselfs but relied on the abovementined sources. Mind, that the mapping in `doctuils.utils.urischemes` only considers the recognition of [standalone hyperlinks](https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#standalone-hyperlinks). At places where an URI is expected (the link block of external hyperlink targets or the argument of an "image" or "figure" directive) any scheme is recognised, so the creation of valid "gemini" links is possible as, e.g., ~~~ A link_, `anonymous link`__, `indirect link with embedded target <link_>`__, `link with embedded URI <gemini://example.org/gemtext3>`__. The reference text of links with embedded target may also be omitted, in which case the URI will be duplicated for use as the reference text: so `<gemini://example.org/gemtext3>`__ gives the same result as a standalone hyperlink. gemini://example.org/other-gemtext .. _link: gemini://example.org/my-gemtext __ gemini://example.org/other-gemtext ~~~ --- **[patches:#200] Add the gemini:// URI scheme** **Status:** pending-remind **Group:** None **Created:** Tue Dec 20, 2022 04:40 PM UTC by Fabien LOISON **Last Updated:** Tue Dec 20, 2022 04:40 PM UTC **Owner:** nobody **Attachments:** - [gemini.patch](https://sourceforge.net/p/docutils/patches/200/attachment/gemini.patch) (529 Bytes; text/x-patch) Hello, I am currently working on a tool to convert reStructuredText files to Gemtext and I noticed the `gemini://...` URIs (used by the [Gemini Protocol](https://en.wikipedia.org/wiki/Gemini_(protocol))) were not automatically converted into links. I attached a small patch that adds the `gemini` scheme to the `docutils.utils.urischemes.schemes` dictionary. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/patches/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/patches/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-08-08 18:26:23
|
Could you re-try with [r10197] or the attached patch if this gets a more telling log or and maybe some output? Attachments: - [0001-Catch-invalid-node.parent-when-switching-section-lev.patch](https://sourceforge.net/p/docutils/bugs/_discuss/thread/e488751d7e/e5ae/attachment/0001-Catch-invalid-node.parent-when-switching-section-lev.patch) (3.4 kB; text/x-patch) --- **[bugs:#508] qemu build problem after docutils update to 0.22** **Status:** open **Created:** Mon Aug 04, 2025 08:23 AM UTC by Thomas Klausner **Last Updated:** Fri Aug 08, 2025 05:12 PM UTC **Owner:** nobody After updating docutils in pkgsrc to 0.22 (with sphinx 8.2.3), qemu 10.0.3 (https://gitlab.com/qemu-project/qemu) stopped building. The output is not very clear: ``` [5596/6204] Generating docs/QEMU manual with a custom command FAILED: [code=2] docs/docs.stamp /scratch/emulators/qemu/work/.tools/bin/env CONFDIR=/usr/pkg/etc/qemu/qemu /scratch/emulators/qemu/work/qemu-10.0.3/build/pyvenv/bin/sphinx-build -q -j auto -Dversion=10.0.3 -Drelease= -Ddepfile=docs/docs.d -Ddepfile_sta mp=docs/docs.stamp -b html -d /scratch/emulators/qemu/work/qemu-10.0.3/build/docs/manual.p /scratch/emulators/qemu/work/qemu-10.0.3/docs /scratch/emulators/qemu/work/qemu-10.0.3/build/docs/manual Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:70: CRITICAL: Inconsistent title style: skip from level 1 to 3. Valid requests ^^^^^^^^^^^^^^ Established title styles: =/= - ^ [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:73: CRITICAL: Inconsistent title style: skip from level 1 to 4. 10:17:35 [41/1829] Clock management: """"""""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:107: CRITICAL: Inconsistent title style: skip from level 1 to 4. PIO and memory access: """""""""""""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:215: CRITICAL: Inconsistent title style: skip from level 1 to 4. IRQ management: """"""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:239: CRITICAL: Inconsistent title style: skip from level 1 to 4. Setting interrupt level: """""""""""""""""""""""" Established title styles: =/= - ^ " [docutils] Sphinx parallel build error! Versions ======== * Platform: netbsd11; (NetBSD-11.99.1-amd64-x86_64-64bit-ELF) * Python version: 3.13.5 (CPython) * Sphinx version: 8.2.3 * Docutils version: 0.22 * Jinja2 version: 3.1.6 * Pygments version: 2.19.2 Last Messages ============= reading sources... [ 91%] system/s390x/protvirt .. system/target-loongarch reading sources... [ 94%] system/target-m68k .. system/target-sparc64 reading sources... [ 97%] system/target-xtensa .. tools/qemu-nbd Loaded Extensions ================= * sphinx.ext.mathjax (8.2.3) * alabaster (1.0.0) * sphinxcontrib.applehelp (2.0.0) * sphinxcontrib.devhelp (2.0.0) * sphinxcontrib.htmlhelp (2.1.0) * sphinxcontrib.serializinghtml (2.0.0) * sphinxcontrib.qthelp (2.0.0) * depfile (1.0) * hxtool (1.0) * kerneldoc (1.0) * qapi_domain (1.0) * qapidoc (2.0) * qmp_lexer (unknown version) * dbusdoc (1.0) * sphinxcontrib.jquery (4.1) * sphinx_rtd_theme (unknown version) Traceback ========= File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/parallel.py", line 137, in _join_one raise SphinxParallelError(*result) sphinx.errors.SphinxParallelError: TypeError: unsupported operand type(s) for +: 'NoneType' and 'list' The full traceback has been saved in: /tmp/sphinx-err-gj6pt4nj.log To report this error to the developers, please open an issue at <https://github.com/sphinx-doc/sphinx/issues/>. Thanks! Please also report this if it was a user error, so that a better error message can be provided next time. ``` The full traceback from the log lists docutils code as the origin of the breakage: ``` Traceback ========= (Error in parallel process) Traceback (most recent call last): File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/parallel.py", line 83, in _process ret = func(arg) # type: ignore[call-arg] File "/usr/pkg/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 603, in read_process self.read_doc(docname, _cache=False) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 648, in read_doc publisher.publish() ~~~~~~~~~~~~~~~~~^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/core.py", line 269, in publish self.document = self.reader.read(self.source, self.parser, ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ self.settings) ^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/io.py", line 103, in read self.parse() ~~~~~~~~~~^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/readers/__init__.py", line 101, in parse self.parser.parse(self.input, document) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/parsers.py", line 86, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 165, in run results = StateMachineWS.run(self, input_lines, input_offset, input_source=document['source']) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2356, in explicit_markup self.explicit_list(blank_finish) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2381, in explicit_list newline_offset, blank_finish = self.nested_list_parse( ~~~~~~~~~~~~~~~~~~~~~~^ self.state_machine.input_lines[offset:], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<2 lines>... blank_finish=blank_finish, ^^^^^^^^^^^^^^^^^^^^^^^^^^ match_titles=self.state_machine.match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 312, in nested_list_parse state_machine.run(block, input_offset, memo=self.memo, ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ node=node, match_titles=match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 191, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2659, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2366, in explicit_construct return method(self, expmatch) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2103, in directive return self.run_directive( ~~~~~~~~~~~~~~~~~~^ directive_class, match, type_name, option_presets) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2153, in run_directive result = directive_instance.run() File "/scratch/emulators/qemu/work/qemu-10.0.3/docs/sphinx/qapidoc.py", line 620, in run contentnode = self.transmogrify(schema) File "/scratch/emulators/qemu/work/qemu-10.0.3/docs/sphinx/qapidoc.py", line 549, in transmogrify nested_parse_with_titles(self.state, content, contentnode) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/nodes.py", line 378, in nested_parse_with_titles ret = state.nested_parse(content, content_offset, node, match_titles=True) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 275, in nested_parse state_machine.run(block, input_offset, memo=self.memo, ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ node=node, match_titles=match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 191, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 3024, in text self.section(title.lstrip(), source, style, lineno + 1, messages) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 321, in section self.new_subsection(title, lineno, messages) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 370, in new_subsection self.parent += section_node File "/usr/pkg/lib/python3.13/site-packages/docutils/nodes.py", line 736, in __radd__ return other + self.children ~~~~~~^~~~~~~~~~~~~~~ TypeError: unsupported operand type(s) for +: 'NoneType' and 'list' ``` Even with the "CRITICAL: Inconsistent title style" problems fixed, the build stops. Any ideas what the problem is or how to fix it? Thanks. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-08-08 17:12:10
|
What is strange, though is that Sphinx' autodoc extension does not have a problem with the new section parsing algorithm. Which extension does the extraction of docstrings rsp. the combination of the docstrings into a document? --- **[bugs:#508] qemu build problem after docutils update to 0.22** **Status:** open **Created:** Mon Aug 04, 2025 08:23 AM UTC by Thomas Klausner **Last Updated:** Fri Aug 08, 2025 10:05 AM UTC **Owner:** nobody After updating docutils in pkgsrc to 0.22 (with sphinx 8.2.3), qemu 10.0.3 (https://gitlab.com/qemu-project/qemu) stopped building. The output is not very clear: ``` [5596/6204] Generating docs/QEMU manual with a custom command FAILED: [code=2] docs/docs.stamp /scratch/emulators/qemu/work/.tools/bin/env CONFDIR=/usr/pkg/etc/qemu/qemu /scratch/emulators/qemu/work/qemu-10.0.3/build/pyvenv/bin/sphinx-build -q -j auto -Dversion=10.0.3 -Drelease= -Ddepfile=docs/docs.d -Ddepfile_sta mp=docs/docs.stamp -b html -d /scratch/emulators/qemu/work/qemu-10.0.3/build/docs/manual.p /scratch/emulators/qemu/work/qemu-10.0.3/docs /scratch/emulators/qemu/work/qemu-10.0.3/build/docs/manual Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:70: CRITICAL: Inconsistent title style: skip from level 1 to 3. Valid requests ^^^^^^^^^^^^^^ Established title styles: =/= - ^ [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:73: CRITICAL: Inconsistent title style: skip from level 1 to 4. 10:17:35 [41/1829] Clock management: """"""""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:107: CRITICAL: Inconsistent title style: skip from level 1 to 4. PIO and memory access: """""""""""""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:215: CRITICAL: Inconsistent title style: skip from level 1 to 4. IRQ management: """"""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:239: CRITICAL: Inconsistent title style: skip from level 1 to 4. Setting interrupt level: """""""""""""""""""""""" Established title styles: =/= - ^ " [docutils] Sphinx parallel build error! Versions ======== * Platform: netbsd11; (NetBSD-11.99.1-amd64-x86_64-64bit-ELF) * Python version: 3.13.5 (CPython) * Sphinx version: 8.2.3 * Docutils version: 0.22 * Jinja2 version: 3.1.6 * Pygments version: 2.19.2 Last Messages ============= reading sources... [ 91%] system/s390x/protvirt .. system/target-loongarch reading sources... [ 94%] system/target-m68k .. system/target-sparc64 reading sources... [ 97%] system/target-xtensa .. tools/qemu-nbd Loaded Extensions ================= * sphinx.ext.mathjax (8.2.3) * alabaster (1.0.0) * sphinxcontrib.applehelp (2.0.0) * sphinxcontrib.devhelp (2.0.0) * sphinxcontrib.htmlhelp (2.1.0) * sphinxcontrib.serializinghtml (2.0.0) * sphinxcontrib.qthelp (2.0.0) * depfile (1.0) * hxtool (1.0) * kerneldoc (1.0) * qapi_domain (1.0) * qapidoc (2.0) * qmp_lexer (unknown version) * dbusdoc (1.0) * sphinxcontrib.jquery (4.1) * sphinx_rtd_theme (unknown version) Traceback ========= File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/parallel.py", line 137, in _join_one raise SphinxParallelError(*result) sphinx.errors.SphinxParallelError: TypeError: unsupported operand type(s) for +: 'NoneType' and 'list' The full traceback has been saved in: /tmp/sphinx-err-gj6pt4nj.log To report this error to the developers, please open an issue at <https://github.com/sphinx-doc/sphinx/issues/>. Thanks! Please also report this if it was a user error, so that a better error message can be provided next time. ``` The full traceback from the log lists docutils code as the origin of the breakage: ``` Traceback ========= (Error in parallel process) Traceback (most recent call last): File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/parallel.py", line 83, in _process ret = func(arg) # type: ignore[call-arg] File "/usr/pkg/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 603, in read_process self.read_doc(docname, _cache=False) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 648, in read_doc publisher.publish() ~~~~~~~~~~~~~~~~~^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/core.py", line 269, in publish self.document = self.reader.read(self.source, self.parser, ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ self.settings) ^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/io.py", line 103, in read self.parse() ~~~~~~~~~~^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/readers/__init__.py", line 101, in parse self.parser.parse(self.input, document) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/parsers.py", line 86, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 165, in run results = StateMachineWS.run(self, input_lines, input_offset, input_source=document['source']) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2356, in explicit_markup self.explicit_list(blank_finish) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2381, in explicit_list newline_offset, blank_finish = self.nested_list_parse( ~~~~~~~~~~~~~~~~~~~~~~^ self.state_machine.input_lines[offset:], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<2 lines>... blank_finish=blank_finish, ^^^^^^^^^^^^^^^^^^^^^^^^^^ match_titles=self.state_machine.match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 312, in nested_list_parse state_machine.run(block, input_offset, memo=self.memo, ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ node=node, match_titles=match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 191, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2659, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2366, in explicit_construct return method(self, expmatch) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2103, in directive return self.run_directive( ~~~~~~~~~~~~~~~~~~^ directive_class, match, type_name, option_presets) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2153, in run_directive result = directive_instance.run() File "/scratch/emulators/qemu/work/qemu-10.0.3/docs/sphinx/qapidoc.py", line 620, in run contentnode = self.transmogrify(schema) File "/scratch/emulators/qemu/work/qemu-10.0.3/docs/sphinx/qapidoc.py", line 549, in transmogrify nested_parse_with_titles(self.state, content, contentnode) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/nodes.py", line 378, in nested_parse_with_titles ret = state.nested_parse(content, content_offset, node, match_titles=True) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 275, in nested_parse state_machine.run(block, input_offset, memo=self.memo, ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ node=node, match_titles=match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 191, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 3024, in text self.section(title.lstrip(), source, style, lineno + 1, messages) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 321, in section self.new_subsection(title, lineno, messages) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 370, in new_subsection self.parent += section_node File "/usr/pkg/lib/python3.13/site-packages/docutils/nodes.py", line 736, in __radd__ return other + self.children ~~~~~~^~~~~~~~~~~~~~~ TypeError: unsupported operand type(s) for +: 'NoneType' and 'list' ``` Even with the "CRITICAL: Inconsistent title style" problems fixed, the build stops. Any ideas what the problem is or how to fix it? Thanks. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-08-08 10:05:10
|
You are right. As also seen in [#509], the CRITICAL errors are just on top of the problem (and helped to find the reasong beeing some "docstring reading" extension (plus docstrings that include section headings) beeing incompatible with Docutils 0.22. (Unfortunately, the new section algorithm was only tested with Sphinx, not with Sphinx extensions and docstrings containing section headings.) --- **[bugs:#508] qemu build problem after docutils update to 0.22** **Status:** open **Created:** Mon Aug 04, 2025 08:23 AM UTC by Thomas Klausner **Last Updated:** Thu Aug 07, 2025 01:36 PM UTC **Owner:** nobody After updating docutils in pkgsrc to 0.22 (with sphinx 8.2.3), qemu 10.0.3 (https://gitlab.com/qemu-project/qemu) stopped building. The output is not very clear: ``` [5596/6204] Generating docs/QEMU manual with a custom command FAILED: [code=2] docs/docs.stamp /scratch/emulators/qemu/work/.tools/bin/env CONFDIR=/usr/pkg/etc/qemu/qemu /scratch/emulators/qemu/work/qemu-10.0.3/build/pyvenv/bin/sphinx-build -q -j auto -Dversion=10.0.3 -Drelease= -Ddepfile=docs/docs.d -Ddepfile_sta mp=docs/docs.stamp -b html -d /scratch/emulators/qemu/work/qemu-10.0.3/build/docs/manual.p /scratch/emulators/qemu/work/qemu-10.0.3/docs /scratch/emulators/qemu/work/qemu-10.0.3/build/docs/manual Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:70: CRITICAL: Inconsistent title style: skip from level 1 to 3. Valid requests ^^^^^^^^^^^^^^ Established title styles: =/= - ^ [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:73: CRITICAL: Inconsistent title style: skip from level 1 to 4. 10:17:35 [41/1829] Clock management: """"""""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:107: CRITICAL: Inconsistent title style: skip from level 1 to 4. PIO and memory access: """""""""""""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:215: CRITICAL: Inconsistent title style: skip from level 1 to 4. IRQ management: """"""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:239: CRITICAL: Inconsistent title style: skip from level 1 to 4. Setting interrupt level: """""""""""""""""""""""" Established title styles: =/= - ^ " [docutils] Sphinx parallel build error! Versions ======== * Platform: netbsd11; (NetBSD-11.99.1-amd64-x86_64-64bit-ELF) * Python version: 3.13.5 (CPython) * Sphinx version: 8.2.3 * Docutils version: 0.22 * Jinja2 version: 3.1.6 * Pygments version: 2.19.2 Last Messages ============= reading sources... [ 91%] system/s390x/protvirt .. system/target-loongarch reading sources... [ 94%] system/target-m68k .. system/target-sparc64 reading sources... [ 97%] system/target-xtensa .. tools/qemu-nbd Loaded Extensions ================= * sphinx.ext.mathjax (8.2.3) * alabaster (1.0.0) * sphinxcontrib.applehelp (2.0.0) * sphinxcontrib.devhelp (2.0.0) * sphinxcontrib.htmlhelp (2.1.0) * sphinxcontrib.serializinghtml (2.0.0) * sphinxcontrib.qthelp (2.0.0) * depfile (1.0) * hxtool (1.0) * kerneldoc (1.0) * qapi_domain (1.0) * qapidoc (2.0) * qmp_lexer (unknown version) * dbusdoc (1.0) * sphinxcontrib.jquery (4.1) * sphinx_rtd_theme (unknown version) Traceback ========= File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/parallel.py", line 137, in _join_one raise SphinxParallelError(*result) sphinx.errors.SphinxParallelError: TypeError: unsupported operand type(s) for +: 'NoneType' and 'list' The full traceback has been saved in: /tmp/sphinx-err-gj6pt4nj.log To report this error to the developers, please open an issue at <https://github.com/sphinx-doc/sphinx/issues/>. Thanks! Please also report this if it was a user error, so that a better error message can be provided next time. ``` The full traceback from the log lists docutils code as the origin of the breakage: ``` Traceback ========= (Error in parallel process) Traceback (most recent call last): File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/parallel.py", line 83, in _process ret = func(arg) # type: ignore[call-arg] File "/usr/pkg/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 603, in read_process self.read_doc(docname, _cache=False) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 648, in read_doc publisher.publish() ~~~~~~~~~~~~~~~~~^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/core.py", line 269, in publish self.document = self.reader.read(self.source, self.parser, ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ self.settings) ^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/io.py", line 103, in read self.parse() ~~~~~~~~~~^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/readers/__init__.py", line 101, in parse self.parser.parse(self.input, document) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/parsers.py", line 86, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 165, in run results = StateMachineWS.run(self, input_lines, input_offset, input_source=document['source']) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2356, in explicit_markup self.explicit_list(blank_finish) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2381, in explicit_list newline_offset, blank_finish = self.nested_list_parse( ~~~~~~~~~~~~~~~~~~~~~~^ self.state_machine.input_lines[offset:], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<2 lines>... blank_finish=blank_finish, ^^^^^^^^^^^^^^^^^^^^^^^^^^ match_titles=self.state_machine.match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 312, in nested_list_parse state_machine.run(block, input_offset, memo=self.memo, ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ node=node, match_titles=match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 191, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2659, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2366, in explicit_construct return method(self, expmatch) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2103, in directive return self.run_directive( ~~~~~~~~~~~~~~~~~~^ directive_class, match, type_name, option_presets) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2153, in run_directive result = directive_instance.run() File "/scratch/emulators/qemu/work/qemu-10.0.3/docs/sphinx/qapidoc.py", line 620, in run contentnode = self.transmogrify(schema) File "/scratch/emulators/qemu/work/qemu-10.0.3/docs/sphinx/qapidoc.py", line 549, in transmogrify nested_parse_with_titles(self.state, content, contentnode) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/nodes.py", line 378, in nested_parse_with_titles ret = state.nested_parse(content, content_offset, node, match_titles=True) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 275, in nested_parse state_machine.run(block, input_offset, memo=self.memo, ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ node=node, match_titles=match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 191, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 3024, in text self.section(title.lstrip(), source, style, lineno + 1, messages) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 321, in section self.new_subsection(title, lineno, messages) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 370, in new_subsection self.parent += section_node File "/usr/pkg/lib/python3.13/site-packages/docutils/nodes.py", line 736, in __radd__ return other + self.children ~~~~~~^~~~~~~~~~~~~~~ TypeError: unsupported operand type(s) for +: 'NoneType' and 'list' ``` Even with the "CRITICAL: Inconsistent title style" problems fixed, the build stops. Any ideas what the problem is or how to fix it? Thanks. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-08-07 13:11:22
|
This looks like the problem reported in [bugs:508]. Could you check the Sphinx log? Do you use "autodoc" or similar extensions to extract docstrings? --- **[bugs:#509] regression with docutils 0.22: unsupported operand type(s) for +: 'NoneType' and 'list'** **Status:** open **Created:** Wed Aug 06, 2025 06:13 PM UTC by Oliver Smith **Last Updated:** Wed Aug 06, 2025 06:13 PM UTC **Owner:** nobody Hello, after upgrading to docutils 0.22, building documentation for the pmbootstrap project fails: ~~~ Traceback (most recent call last): File "/usr/lib/python3.12/site-packages/sphinx/cmd/build.py", line 432, in build_main app.build(args.force_all, args.filenames) File "/usr/lib/python3.12/site-packages/sphinx/application.py", line 426, in build self.builder.build_update() File "/usr/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 375, in build_update self.build( File "/usr/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 403, in build updated_docnames = set(self.read()) ^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 519, in read self._read_serial(docnames) File "/usr/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 584, in _read_serial self.read_doc(docname) File "/usr/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 648, in read_doc publisher.publish() File "/usr/lib/python3.12/site-packages/docutils/core.py", line 269, in publish self.document = self.reader.read(self.source, self.parser, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/sphinx/io.py", line 103, in read self.parse() File "/usr/lib/python3.12/site-packages/docutils/readers/__init__.py", line 101, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.12/site-packages/sphinx/parsers.py", line 86, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 165, in run results = StateMachineWS.run(self, input_lines, input_offset, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2354, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2366, in explicit_construct return method(self, expmatch) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2103, in directive return self.run_directive( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2153, in run_directive result = directive_instance.run() ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/sphinxcontrib/autoprogram.py", line 262, in run nested_parse_with_titles(self.state, result, node) File "/usr/lib/python3.12/site-packages/sphinx/util/nodes.py", line 378, in nested_parse_with_titles ret = state.nested_parse(content, content_offset, node, match_titles=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 275, in nested_parse state_machine.run(block, input_offset, memo=self.memo, File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 191, in run results = StateMachineWS.run(self, input_lines, input_offset) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 2787, in underline self.section(title, source, style, lineno - 1, messages) File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 321, in section self.new_subsection(title, lineno, messages) File "/usr/lib/python3.12/site-packages/docutils/parsers/rst/states.py", line 370, in new_subsection self.parent += section_node File "/usr/lib/python3.12/site-packages/docutils/nodes.py", line 736, in __radd__ return other + self.children ~~~~~~^~~~~~~~~~~~~~~ TypeError: unsupported operand type(s) for +: 'NoneType' and 'list' ~~~ Source code: https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/ Tested with commit: 5927ff70b8d2468d5d0e2c978bc1fe30d036fd7f Distribution: Alpine Linux Edge --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-08-07 13:07:13
|
The reason is an incompatibility of Sphinx or one of the Sphinx extensions with the new section parsing algorithm introduced in commit [r10093] with updates in [r10129], [r10131], [r10131]. The unhelpful "TypeError" is displayed because Sphinx carries on after a CRITICAL problem which leads to follow-up problems (here, `self.parent` beeing None instead of an Element instance). The error reported by Docutils gives some hints. Let's dissect the first message: ~~~ /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:70: CRITICAL: Inconsistent title style: skip from level 1 to 3. Valid requests ^^^^^^^^^^^^^^ Established title styles: =/= - ^ [docutils] ~~~ It provides the source file and line (system/qtest.c, line 70) and a reason (`Inconsistent title style: skip from level 1 to 3.`). How does it come to this conclusion: * The parser keeps a record of section adornment styles in the `memo` attribute of the `document` object. These are the "Established title styles" (under- and overline with `=` for level 1, underline with `-` for level 2, and underline with `^` for level 3. The new section header uses an underline with `^`. Hence, the new section should be at level 3. * The current section level is determined scanning the parent elements of the current element for `<section>` elements. Level 1 means that one parent section was found. A the level (depth) of a section element is determined from its physical nesting level, it is impossible to represent a level 3 section inside a level 1 section in the doctree. ### Why does the Docutils update trigger this problem? The source is a docstring in a C file. Some extension must have been used to extract it and include it (together with other docstrings) in a wrapper document. When including a source, there are two strategies to handle section adornment styles: 1. enforce a consistent style hierarchy across all included parts, 2. establish a new style hierarchy for the included parts. It seems as if with previous Docutisl versions there was strategy 2 and now its stratagy 1. This is most likely not intended but a side effect of the changes to the inner working of the parser. To fix it, we would need to know which extension is used to extract the docstrings and cooperate with its developers. --- **[bugs:#508] qemu build problem after docutils update to 0.22** **Status:** open **Created:** Mon Aug 04, 2025 08:23 AM UTC by Thomas Klausner **Last Updated:** Mon Aug 04, 2025 08:23 AM UTC **Owner:** nobody After updating docutils in pkgsrc to 0.22 (with sphinx 8.2.3), qemu 10.0.3 (https://gitlab.com/qemu-project/qemu) stopped building. The output is not very clear: ``` [5596/6204] Generating docs/QEMU manual with a custom command FAILED: [code=2] docs/docs.stamp /scratch/emulators/qemu/work/.tools/bin/env CONFDIR=/usr/pkg/etc/qemu/qemu /scratch/emulators/qemu/work/qemu-10.0.3/build/pyvenv/bin/sphinx-build -q -j auto -Dversion=10.0.3 -Drelease= -Ddepfile=docs/docs.d -Ddepfile_sta mp=docs/docs.stamp -b html -d /scratch/emulators/qemu/work/qemu-10.0.3/build/docs/manual.p /scratch/emulators/qemu/work/qemu-10.0.3/docs /scratch/emulators/qemu/work/qemu-10.0.3/build/docs/manual Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. Possible precedence problem between ! and pattern match (m//) at /scratch/emulators/qemu/work/qemu-10.0.3/docs/../scripts/kernel-doc line 1597. /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:70: CRITICAL: Inconsistent title style: skip from level 1 to 3. Valid requests ^^^^^^^^^^^^^^ Established title styles: =/= - ^ [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:73: CRITICAL: Inconsistent title style: skip from level 1 to 4. 10:17:35 [41/1829] Clock management: """"""""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:107: CRITICAL: Inconsistent title style: skip from level 1 to 4. PIO and memory access: """""""""""""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:215: CRITICAL: Inconsistent title style: skip from level 1 to 4. IRQ management: """"""""""""""" Established title styles: =/= - ^ " [docutils] /scratch/emulators/qemu/work/qemu-10.0.3/docs/../system/qtest.c:239: CRITICAL: Inconsistent title style: skip from level 1 to 4. Setting interrupt level: """""""""""""""""""""""" Established title styles: =/= - ^ " [docutils] Sphinx parallel build error! Versions ======== * Platform: netbsd11; (NetBSD-11.99.1-amd64-x86_64-64bit-ELF) * Python version: 3.13.5 (CPython) * Sphinx version: 8.2.3 * Docutils version: 0.22 * Jinja2 version: 3.1.6 * Pygments version: 2.19.2 Last Messages ============= reading sources... [ 91%] system/s390x/protvirt .. system/target-loongarch reading sources... [ 94%] system/target-m68k .. system/target-sparc64 reading sources... [ 97%] system/target-xtensa .. tools/qemu-nbd Loaded Extensions ================= * sphinx.ext.mathjax (8.2.3) * alabaster (1.0.0) * sphinxcontrib.applehelp (2.0.0) * sphinxcontrib.devhelp (2.0.0) * sphinxcontrib.htmlhelp (2.1.0) * sphinxcontrib.serializinghtml (2.0.0) * sphinxcontrib.qthelp (2.0.0) * depfile (1.0) * hxtool (1.0) * kerneldoc (1.0) * qapi_domain (1.0) * qapidoc (2.0) * qmp_lexer (unknown version) * dbusdoc (1.0) * sphinxcontrib.jquery (4.1) * sphinx_rtd_theme (unknown version) Traceback ========= File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/parallel.py", line 137, in _join_one raise SphinxParallelError(*result) sphinx.errors.SphinxParallelError: TypeError: unsupported operand type(s) for +: 'NoneType' and 'list' The full traceback has been saved in: /tmp/sphinx-err-gj6pt4nj.log To report this error to the developers, please open an issue at <https://github.com/sphinx-doc/sphinx/issues/>. Thanks! Please also report this if it was a user error, so that a better error message can be provided next time. ``` The full traceback from the log lists docutils code as the origin of the breakage: ``` Traceback ========= (Error in parallel process) Traceback (most recent call last): File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/parallel.py", line 83, in _process ret = func(arg) # type: ignore[call-arg] File "/usr/pkg/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 603, in read_process self.read_doc(docname, _cache=False) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 648, in read_doc publisher.publish() ~~~~~~~~~~~~~~~~~^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/core.py", line 269, in publish self.document = self.reader.read(self.source, self.parser, ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ self.settings) ^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/io.py", line 103, in read self.parse() ~~~~~~~~~~^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/readers/__init__.py", line 101, in parse self.parser.parse(self.input, document) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/parsers.py", line 86, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 165, in run results = StateMachineWS.run(self, input_lines, input_offset, input_source=document['source']) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2356, in explicit_markup self.explicit_list(blank_finish) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2381, in explicit_list newline_offset, blank_finish = self.nested_list_parse( ~~~~~~~~~~~~~~~~~~~~~~^ self.state_machine.input_lines[offset:], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<2 lines>... blank_finish=blank_finish, ^^^^^^^^^^^^^^^^^^^^^^^^^^ match_titles=self.state_machine.match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 312, in nested_list_parse state_machine.run(block, input_offset, memo=self.memo, ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ node=node, match_titles=match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 191, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2659, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2366, in explicit_construct return method(self, expmatch) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2103, in directive return self.run_directive( ~~~~~~~~~~~~~~~~~~^ directive_class, match, type_name, option_presets) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 2153, in run_directive result = directive_instance.run() File "/scratch/emulators/qemu/work/qemu-10.0.3/docs/sphinx/qapidoc.py", line 620, in run contentnode = self.transmogrify(schema) File "/scratch/emulators/qemu/work/qemu-10.0.3/docs/sphinx/qapidoc.py", line 549, in transmogrify nested_parse_with_titles(self.state, content, contentnode) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/sphinx/util/nodes.py", line 378, in nested_parse_with_titles ret = state.nested_parse(content, content_offset, node, match_titles=True) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 275, in nested_parse state_machine.run(block, input_offset, memo=self.memo, ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ node=node, match_titles=match_titles) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 191, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 235, in run context, next_state, result = self.check_line( ~~~~~~~~~~~~~~~^ context, state, transitions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/statemachine.py", line 447, in check_line return method(match, context, next_state) File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 3024, in text self.section(title.lstrip(), source, style, lineno + 1, messages) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 321, in section self.new_subsection(title, lineno, messages) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/pkg/lib/python3.13/site-packages/docutils/parsers/rst/states.py", line 370, in new_subsection self.parent += section_node File "/usr/pkg/lib/python3.13/site-packages/docutils/nodes.py", line 736, in __radd__ return other + self.children ~~~~~~^~~~~~~~~~~~~~~ TypeError: unsupported operand type(s) for +: 'NoneType' and 'list' ``` Even with the "CRITICAL: Inconsistent title style" problems fixed, the build stops. Any ideas what the problem is or how to fix it? Thanks. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-08-03 20:41:13
|
See also the discussion in [Sphinx issue #8709](https://github.com/sphinx-doc/sphinx/issues/8709). --- **[feature-requests:#66] allow more characters when transforming "names" to "ids".** **Status:** pending **Group:** Default **Created:** Mon Sep 30, 2019 05:30 PM UTC by Roland Puntaier **Last Updated:** Tue Apr 29, 2025 07:07 PM UTC **Owner:** nobody `` encloses a role. There is a default role, else :<role>:`text` _ in front, is the special target role. For one word the backtick can be dropped. _`__init__` should produce a target named "__init__". But instead the produced target is "init". The backtick avoids ambiguity. There is no need for this behavior. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-31 13:20:43
|
- **status**: open-fixed --> closed-fixed - **Comment**: Fixed in Docutils 0.22. Commit [r10176] makes targets from hyperlink references with embedded URI or alias implicit. --- **[bugs:#502] Duplicate target not always recognized.** **Status:** closed-fixed **Created:** Tue Jun 03, 2025 09:33 AM UTC by Günter Milde **Last Updated:** Thu Jul 31, 2025 01:20 PM UTC **Owner:** nobody Hyperlinks with embedded alias generate both, a `<reference>` and a `<target>`. This allows simple references to the target: ~~~ See `here <example.html>`_. As we have shown here_, ... ~~~ However, it may lead to duplicates: ~~~ _`Here` is an explicit inline target. See `here <example.html>`_. As we have shown here_, ... ~~~ The second target gives a WARNING `Duplicate explicit target name: "here".` Using the reference name results in an ERROR `Duplicate target name, cannot be used as a unique reference: "here".` However (in versions up to 0.22.rc2), the duplicate target is ignored in case of **embedded internal** targets: ~~~ _`Here` is an explicit inline target. See `here <elsewhere_>`_. As we have shown here_, ... The target is _`elsewhere`. ~~~ There is no WARNING or ERROR and both references link to "elsewhere". This is fixed in [r10151]. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-31 13:20:11
|
- **status**: open --> open-fixed - **Comment**: Fixed in Docutils 0.22. Commit [r10176] makes targets from hyperlink references with embedded URI or alias implicit. --- **[bugs:#502] Duplicate target not always recognized.** **Status:** open-fixed **Created:** Tue Jun 03, 2025 09:33 AM UTC by Günter Milde **Last Updated:** Mon Jun 16, 2025 01:02 PM UTC **Owner:** nobody Hyperlinks with embedded alias generate both, a `<reference>` and a `<target>`. This allows simple references to the target: ~~~ See `here <example.html>`_. As we have shown here_, ... ~~~ However, it may lead to duplicates: ~~~ _`Here` is an explicit inline target. See `here <example.html>`_. As we have shown here_, ... ~~~ The second target gives a WARNING `Duplicate explicit target name: "here".` Using the reference name results in an ERROR `Duplicate target name, cannot be used as a unique reference: "here".` However (in versions up to 0.22.rc2), the duplicate target is ignored in case of **embedded internal** targets: ~~~ _`Here` is an explicit inline target. See `here <elsewhere_>`_. As we have shown here_, ... The target is _`elsewhere`. ~~~ There is no WARNING or ERROR and both references link to "elsewhere". This is fixed in [r10151]. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-31 13:06:28
|
I looked at the patch and found a number of issues: * Message "details" misleading if the right border is not misaligned but missing. * system exit with corrupt bottom border: The compulsory "details" and "offset" arguments for `malformed_table()` lead to a system exit with traceback - for document authors this is worse than a generic error message. It is also an incompatible change in the Docutils library (some 3rd party extension may use the function...). +-----------------------+ | A table with one cell | | & corrupt bottom. | +---------------------- + * Indicated line for simple table with non-matching bottom border is wrong, if the table does not start on line 1 of the document! * If there is no bottom border for a simple table, the complete remaining document may be scanned. Therefore it is both, simpler and more helpful to indicate the start line of a simple table with missing bottom border. * The error "No bottom table border found or no blank line after table bottom." is raised because the markup is ambiguous: ============== ====== content or header ============== ====== this could be cell content or text after the table * According to the coding policy, lines should be < 80 characters. The attached patch adresses these points and solves some more issues with the original code. Attachments: - [table-errors2.diff](https://sourceforge.net/p/docutils/patches/_discuss/thread/ecf1ca00d3/f025/attachment/table-errors2.diff) (7.6 kB; text/x-patch) --- **[patches:#214] Give better messages on malformed tables** **Status:** open **Group:** None **Created:** Sun Jun 08, 2025 05:58 PM UTC by Jynn Nelson **Last Updated:** Sun Jul 20, 2025 09:57 PM UTC **Owner:** nobody **Attachments:** - [tables.diff](https://sourceforge.net/p/docutils/patches/214/attachment/tables.diff) (5.2 kB; application/octet-stream) This does several things: - Specifies `Misaligned right border` for that error, instead of just "malformed table". - Shows the line where each error happened, not the line where the table starts. - This had a complication that line numbers appear to be wrong when `include` directives are present (they include the lines in the source document, instead of being relative to the included document). Just disabled the new smarter logic in that case. - Changes `malformed_table` to require both detail and an offset, so poor errors like this can't happen in the future. Fixes https://sourceforge.net/p/docutils/bugs/504/. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/patches/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/patches/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-31 11:25:57
|
- **status**: open --> closed-fixed - **Comment**: Fixed. Thanks again. --- **[bugs:#507] renamed files** **Status:** closed-fixed **Labels:** docs **Created:** Mon Jul 28, 2025 04:13 AM UTC by Chris Crawford **Last Updated:** Tue Jul 29, 2025 07:43 AM UTC **Owner:** nobody some of the links are broken on https://docutils.sourceforge.io/rst.html because .txt files were renamed to .rst: https://docutils.sourceforge.io/docs/user/rst/quickstart.txt https://docutils.sourceforge.io/docs/user/rst/cheatsheet.txt there may be others --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Guenter M. <mi...@us...> - 2025-07-30 10:44:10
|
On 2025-07-29, engelbert gruber wrote: > the final 0.22 is in the open Thanks for the release. Let's wait with new features and changes for some weeks, so we can easily put out a 0.22.1 if required. Backwards-compatible bugfixes are welcome. The first issue already came in: a release date typo reported in docutils-users and corrected in the repo. As this is non-critical, we can wait with a follow up release until there is more feedback. Günter |
From: Günter M. <mi...@us...> - 2025-07-30 09:30:08
|
- **status**: open-fixed --> closed-fixed - **Comment**: The issue is fixed in Docutils 0.22 released 2025-07-29. Thank you for the patch. --- **[patches:#187] Rename .txt files to .rst** **Status:** closed-fixed **Group:** None **Created:** Wed Jan 05, 2022 05:51 PM UTC by Adam Turner **Last Updated:** Thu Aug 15, 2024 08:20 AM UTC **Owner:** Adam Turner This change is in two parts -- the first commit does the rename and the second goes through and updates references to .txt files. All tests pass. The benefit of this change is primarily for people -- on user interfaces with syntax highlighting (e.g. IntelliJ / VSCode / Notepad++ editors, code mirrors, etc), the text is presented natively as reStructuredText, and editor features can assist with e.g. autocompletion. Docutils itself of course does not care which file extension is used. I have not renamed any of the include files or template files in `docutils.parsers` or `docutils.writers`, as they form part of the public API and would need a deprecation cycle (or aliasing in the parsing code) A Please see https://github.com/AA-Turner/docutils/pull/3 and https://github.com/AA-Turner/docutils/pull/3.patch for the commits and patch. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/patches/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/patches/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:29:11
|
- **status**: open-accepted --> closed-accepted - **Comment**: The patch is in Docutils 0.22 released 2025-07-29. Thanks again. --- **[patches:#211] Doctest nodes have incorrect `line` field ** **Status:** closed-accepted **Group:** None **Created:** Thu Sep 12, 2024 09:39 AM UTC by Hood Chatham **Last Updated:** Mon Nov 11, 2024 05:40 PM UTC **Owner:** nobody For most nodes, `node.line` refers to the source line that the node started on. However, doctest nodes report the end line. This can be fixed with the following patch: ```patch --- a/docutils/docutils/parsers/rst/states.py +++ b/docutils/docutils/parsers/rst/states.py @@ -1587,11 +1587,14 @@ def parse_option_marker(self, match): return optlist def doctest(self, match, context, next_state): + line = self.document.current_line data = '\n'.join(self.state_machine.get_text_block()) # TODO: prepend class value ['pycon'] (Python Console) # parse with `directives.body.CodeBlock` (returns literal-block # with class "code" and syntax highlight markup). - self.parent += nodes.doctest_block(data, data) + n = nodes.doctest_block(data, data) + n.line = line + self.parent += n return [], next_state, [] def line_block(self, match, context, next_state): ``` --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/patches/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/patches/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:27:40
|
- **status**: open-fixed --> closed-fixed - **Comment**: The issue is fixed in Docutils 0.22 released 2025-07-29. Thank you for the patch. --- **[patches:#213] Change section handling to not rely on exceptions and reparsing** **Status:** closed-fixed **Group:** None **Created:** Wed Mar 26, 2025 07:57 PM UTC by Arne Skjærholt **Last Updated:** Fri Apr 25, 2025 10:37 AM UTC **Owner:** nobody **Attachments:** - [section-handling.patch](https://sourceforge.net/p/docutils/patches/213/attachment/section-handling.patch) (13.3 kB; text/x-patch) While waiting for responses to an email I sent to the -users I decided to dig further into the issue and ended up implementing a fix. To recap my issue, I was having problems with a custom directive's nested parse of its content when section headers were used, because the existing code throws an EOFError up the chain to find the correct place to attach a new section. The proposed patch changes this by adding an explicit stack of sections to the memo object instead of using the Python call stack, and changing RSTState.section() to unwind this state in-place, instead of using exception throwing to find the right place. In fact, I think this is the kind of implementation suggested as an alternative in a comment in the existing code. This also lets us get rid of memo.section_bubble_up_kludge and Line.eofcheck, which only existed to handle the exceptions. In addition to the changed code, I've had to make six changes to the test suite. - Three diagnostics in test/functional/expected/standalone_rst_pseudoxml.txt now have line numbers relative to the beginning of the file rather than some other element. I think because we no longer initiate a nested parse for sections. - Two diagnostics in test/test_parsers/test_rst/test_targets.py have different line numbers, indicating the second conflicting label, rather than the implicit label generated by the section. I think the reason is that due to the exception throwing approach, the existing code handled the section label later than the other, even if the section is earlier in the text. - test/test_parsers/test_rst/test_section_headers.py has one diagnostic output less. I think this diagnostic is a duplicate, caused by the rethrowing of the exception for bubbling up the stack. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/patches/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/patches/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:26:01
|
- **labels**: --> emacs mode - **Group**: --> Default --- **[feature-requests:#5] Emacs support; decoration styles** **Status:** open-accepted **Group:** Default **Labels:** emacs mode **Created:** Wed Nov 16, 2005 08:42 AM UTC by Lalo Martins **Last Updated:** Wed Nov 16, 2005 04:06 PM UTC **Owner:** Martin Blais The title decoration code allows for indentation in over-and-under decorations \(rst-default-indent\). In my "under" decorations, however, I like to run the decoration one space bigger than the text. Another style I have seen is to run decorations to the full document width, regardless of the title text. \(In this style, over-and-under titles are usually centred.\) It would be neat if rst.el had customizable options allowing all these styles. Suggestion: rst-right-only-indent for "under" decorations. If rst-default-indent is nil \(rather than 0\), the over-and-under deco goes to the right margin and the text is centred. If rst-right-only-indent is nil \(rather than 0\), the "under" deco goes to the right margin. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:23:46
|
- **status**: open-fixed --> closed-fixed - **Comment**: The issue is fixed in Docutils 0.22 released 2025-07-29. Thank you for reporting. --- **[feature-requests:#44] Add :figname: option to the figure directive** **Status:** closed-fixed **Group:** Default **Created:** Wed Mar 11, 2015 03:25 PM UTC by Jellby **Last Updated:** Wed Apr 23, 2025 03:55 PM UTC **Owner:** nobody As suggested in https://sourceforge.net/p/docutils/bugs/274/, I fill a feature request for a :figname: option to figure, so I can add a name to a figure and not to the image inside. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:23:05
|
- **status**: open-fixed --> closed-fixed - **Comment**: The issue is fixed in Docutils 0.22 released 2025-07-29. Thank you for reporting. --- **[feature-requests:#57] add vh and vw as allowable length units** **Status:** closed-fixed **Group:** Default **Created:** Fri Oct 13, 2017 09:31 AM UTC by Robin Shannon **Last Updated:** Tue Oct 01, 2024 07:22 AM UTC **Owner:** nobody In css, vh and vw are percentages of the view-window. It would be nice if these were added to the allowable length units (line 225 in parsers/rst/directives/__init__.py). For non html outputs it might make sense to convert them into percentages. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:22:18
|
- **status**: open-fixed --> closed-fixed --- **[feature-requests:#60] Allow definition_list_item to have multiple terms** **Status:** closed-fixed **Group:** Default **Created:** Thu Jan 03, 2019 09:10 AM UTC by Takeshi KOMIYA **Last Updated:** Wed Jul 30, 2025 09:22 AM UTC **Owner:** nobody **Attachments:** - [support_multiple_terms_on_definition_list_item.patch](https://sourceforge.net/p/docutils/feature-requests/60/attachment/support_multiple_terms_on_definition_list_item.patch) (3.7 kB; application/octet-stream) In HTML spec, definition list accepts multiple terms in a item. This patch allows doctree model to have multiple terms as children of definition_list_item also. https://www.w3.org/TR/html52/grouping-content.html#the-dl-element In sphinx, a custom directive named "glossary" allows multiple terms for one definition_list_item. https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#glossary --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:22:11
|
The issue is fixed in Docutils 0.22 released 2025-07-29. Possible support in reStrucuredText markup is discussed in [patches:#95]. Thank you for reporting. --- **[feature-requests:#60] Allow definition_list_item to have multiple terms** **Status:** open-fixed **Group:** Default **Created:** Thu Jan 03, 2019 09:10 AM UTC by Takeshi KOMIYA **Last Updated:** Sat Aug 31, 2024 10:35 AM UTC **Owner:** nobody **Attachments:** - [support_multiple_terms_on_definition_list_item.patch](https://sourceforge.net/p/docutils/feature-requests/60/attachment/support_multiple_terms_on_definition_list_item.patch) (3.7 kB; application/octet-stream) In HTML spec, definition list accepts multiple terms in a item. This patch allows doctree model to have multiple terms as children of definition_list_item also. https://www.w3.org/TR/html52/grouping-content.html#the-dl-element In sphinx, a custom directive named "glossary" allows multiple terms for one definition_list_item. https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#glossary --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:19:54
|
- **status**: open-fixed --> closed-fixed - **Comment**: The issue is fixed in Docutils 0.22 released 2025-07-29. Thank you for reporting. --- **[feature-requests:#83] Support SVG images in LaTeX** **Status:** closed-fixed **Group:** Default **Created:** Sat Oct 09, 2021 12:05 AM UTC by Local State **Last Updated:** Tue Dec 17, 2024 09:08 AM UTC **Owner:** nobody Hi there, this is Local State. ## Motivation The current `Image` directive is not enough for svg files. Using `img` tag loses interactivities, and the width, and height can't be applied for svg files directly. It's better to use `style="width:50%"` instead. ## 2 New Options I'm hoping there could be 2 new options for `Image` directive. 1. `tag` This would determine the html tag used to render the image. The default value would be `img`, and we could also use `object`, `iframe` and `embed` as alternatives. Currently, all images are rendered with `img` tag, which loses some interactivities (e.g., the text in svg file). We could avoid this by using `object` tag. I see there are some similar work in `html4css1` about `object_image_types`. Example: ``` <img src="a.png" width="50%" alt="alt msg">` <object data="a.png" style="width:50%">alt msg</object> <iframe src="a.png" width="50%" title="alt msg"></iframe> <embed src="a.png" width="50%">` ``` 2. `embed` If enabled, this option would embed the image into the html file using base64 encoding. While I see there is already the if sentence in the `visit_image` function. ``` if self.settings.embed_images or ('embed' in node): ``` The `embed_images` could be set from command-line or setting, but I can't find how to satisfy the latter condition, since any node doesn't seem to have `embed` attribute. Could anyone tell me how to enable it? If we can't, then it's necessary to add the `embed` option, so that we could choose to embed one particular image or not. Especially, I notice there exist a `todo` item for svg embedding. I'd like to implement it if possible. But the first option is still in demand, because most times we don't want our html files to be so large and need separate svg files. ## Potential bugs svg files under `<img>` tag can't correctly render height and width if svg viewbox information is not contained in the file. It might be better to set the height and width in `style` indirectly. ## Contribution I would like to fix and implement all these things if possible. But I'm not quite familiar with SourceForge and don't know how to submit a PR like what we do in github. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:17:39
|
- **status**: open-fixed --> closed-fixed - **Comment**: The issue is fixed in Docutils 0.22 released 2025-07-29. Thank you for reporting. --- **[feature-requests:#94] Should docutils whine about nesting simple body elements?** **Status:** closed-fixed **Group:** Default **Created:** Thu Feb 09, 2023 09:55 AM UTC by Julien Palard **Last Updated:** Thu Jun 06, 2024 08:16 PM UTC **Owner:** nobody Context: [This](https://github.com/python/cpython/blob/45fa12aec8f508c224a1521cfe3ae597f1026264/Doc/tools/extensions/pyspecific.py#L149) call to `nested_parse` adds a `Paragraph` node to a `Paragraph` node, this look forbidden by [the doc](https://docutils.sourceforge.io/docs/ref/doctree.html#body-elements), and it also look to misbehave sphinx-side, when translating the document, where we completly loose the nested paragraph once translated. It renders properly though when **not** translated. The linked `nested_parse` returns: ```xml <paragraph classes="availability"> <pending_xref refdoc="index" refdomain="std" refexplicit="True" reftarget="availability" reftype="ref" refwarn="True"> <inline classes="xref std std-ref"> Availability : Unix, not Emscripten, not WASI. <paragraph> Hello world I'm the content of the "availability" directive. ``` If it's really something that should not be done, maybe some kind of warning at build time could help debugging those issues? --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:15:51
|
- **status**: open-fixed --> closed-fixed - **Comment**: The issue is fixed in Docutils 0.22 released 2025-07-29. Thank you for reporting. --- **[feature-requests:#102] Image height/width attributes** **Status:** closed-fixed **Group:** Default **Created:** Wed Dec 20, 2023 02:35 PM UTC by toastal **Last Updated:** Wed Sep 11, 2024 07:30 AM UTC **Owner:** nobody When setting `:width:` or `:height:` on an image, the output is a `<image style="width: $W; height: $H">`. This isn’t the expected out put as there are & have been `width` & `height` attributes for the `<img>` tag for a long time. One might assume this is the same affect, but there are some important problems & why I think this is a bug for incorrect implementation. 1. Tools like Lighthouse, et al. show users to have width/height as a optimization so the browser can calculate & the image size properly without having to do a layout shift which is great 2. A good CSP (Content Security Policy) should never include `unsafe-inline` as this can be an attack surface but the output of `:width:` & `:height:` do just this. The way to solve this to keep out unneeded inline style practice for good CSP but still have the width/height is to just use `<img width="$W" height="$H">` (at least when units are not specified). What I may not be accounting for: units. `12px` is not the same as `12rem` or `12ex` or `12vw`. However, what I had input in my image was just plain ol’ integers got back something I didn’t expect: a) something using `px` (I‘m exclusively using relative unit like `em`, `rem`, etc.) and b) not using the attributes since the number I gave had no units. --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:13:46
|
- **status**: open-fixed --> closed-fixed - **Comment**: The issue is fixed in Docutils 0.22 released 2025-07-29. Thank you for reporting. --- **[feature-requests:#105] manpage: would like more informative document comments** **Status:** closed-fixed **Group:** Default **Labels:** manpage writer **Created:** Wed Mar 27, 2024 01:07 AM UTC by G. Branden Robinson **Last Updated:** Thu May 16, 2024 02:39 PM UTC **Owner:** engelbert gruber *man* documents generated by *rst2man* have some indication that they were automatically generated but I would prefer to see more information along these lines. Here's the status quo. ~~~ .\" Man page generated from reStructuredText. .\" body of man page follows .\" Generated by docutils manpage writer. . ~~~ In my opinion, the comments should be coalesced at the top of the document and include tool versioning information. More like this: ~~~ .\" Man page generated from reStructuredText by rst2man .\" from docutils 0.21rc1. ~~~ --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/feature-requests/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/feature-requests/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
From: Günter M. <mi...@us...> - 2025-07-30 09:11:29
|
@aa-turner: Can we close this bug? Is there still something to do after 0.22 is out? --- **[bugs:#493] Test failure on Windows with embedded images** **Status:** open-fixed **Created:** Wed Aug 07, 2024 02:25 AM UTC by Adam Turner **Last Updated:** Mon Apr 14, 2025 01:10 PM UTC **Owner:** nobody xref [r9785], [r9853], [r9855] Dear @milde, Thank you for the fix to my recent patch. It seems neither my patch nor the fix addressed the root cause of the test failures, as tests have resumed failing on Windows. I believe the following demonstrates the problem: ```pycon >>> import sys; print(sys.platform) win32 >>> import urllib.parse, urllib.request >>> urllib.request.url2pathname('test/data/circle-broken.svg') 'test\\data\\circle-broken.svg' >>> urllib.parse.unquote('test/data/circle-broken.svg') 'test/data/circle-broken.svg' ``` Currently, we use `imagepath = urllib.request.url2pathname(uri_parts.path)`, which converts path separators to their platform-native format. On UNIX, `url2pathname` simply calls `unquote`, but on Windows it handles UNC paths (``\\host\path\``) and escaped drive letters (``///C|/users/``). I don't know what led to using `url2pathname()`, as it is quite specialised (the docstring notes "not recommended for general use"). Is it possible to use the simpler `unquote()` here? For local file paths (e.g. without a ``file:///`` scheme), should we even be using URI parsing? Perhaps we should use proper path handling if there is no URI scheme (i.e. the user has provided a file-path). A --- Sent from sourceforge.net because doc...@li... is subscribed to https://sourceforge.net/p/docutils/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |