linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] docs: automarkup.py: Make automarkup ready for Sphinx 3.1+
@ 2020-10-13 23:13 Nícolas F. R. A. Prado
  2020-10-13 23:13 ` [PATCH v2 1/5] docs: automarkup.py: Use new C roles in Sphinx 3 Nícolas F. R. A. Prado
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Nícolas F. R. A. Prado @ 2020-10-13 23:13 UTC (permalink / raw)
  To: Jonathan Corbet, Mauro Carvalho Chehab
  Cc: linux-doc, linux-kernel, lkcamp, andrealmeid

Hi,

this patch series makes the automatic markup extension ready for Sphinx 3.1+.
It was based on Mauro's Sphinx patch series, and requires it for the namespaces
to work, but could also be merged through the docs tree without regressions
(other than the increased build time explained below).

The first three patches make automarkup compatible with Sphinx 3.1. The first
patch makes use of the new C roles in Sphinx3 instead of the generic type role
from Sphinx 2, while patches 2 and 3 solve the warnings caused by Sphinx3's
stricter C domain.

Patch 4 adds cross-referencing to C macros with parameters for Sphinx 3.

Patch 5 enables cross-referencing inside C namespaces, which are new to Sphinx
3.1.

On an importante note:
In order to be able to support automatic cross-referencing inside C namespaces,
I needed to disable parallel source reading for Sphinx in patch 5. On my
machine, this makes the build process take about 4 additional minutes. This is
very bad, since the documentation building process already takes too long, but I
couldn't think of a way to sidestep this issue. If anyone has any idea, it would
be greatly appreciated.

Also, for some reason, disabling the source read parallelization makes
Sphinx output 2 warnings saying so, which is another annoyance.

Thanks,
Nícolas

Changes in v2:
- Split the single patch into patches 1, 2 and 3
- Change sphinx version verification in patch 1
- Thanks Mauro for the clarifications in v1:
  - Add patches 4 and 5 for the missing functionalities

Nícolas F. R. A. Prado (5):
  docs: automarkup.py: Use new C roles in Sphinx 3
  docs: automarkup.py: Fix regexes to solve sphinx 3 warnings
  docs: automarkup.py: Skip C reserved words when cross-referencing
  docs: automarkup.py: Add cross-reference for parametrized C macros
  docs: automarkup.py: Allow automatic cross-reference inside C
    namespace

 Documentation/sphinx/automarkup.py | 188 +++++++++++++++++++++++------
 1 file changed, 154 insertions(+), 34 deletions(-)

-- 
2.28.0



^ permalink raw reply	[flat|nested] 17+ messages in thread
* Re: Python 2.7 support and automarkup.py - Was: Re: [PATCH v2 1/5] docs: automarkup.py: Use new C roles in Sphinx 3
@ 2020-10-30 15:07 Nícolas F. R. A. Prado
  0 siblings, 0 replies; 17+ messages in thread
From: Nícolas F. R. A. Prado @ 2020-10-30 15:07 UTC (permalink / raw)
  To: Matthew Wilcox, Jonathan Corbet
  Cc: Mauro Carvalho Chehab, Dafna Hirschfeld, linux-doc, linux-kernel,
	lkcamp, andrealmeid

On Fri Oct 30, 2020 at 11:39 AM -03, Matthew Wilcox wrote:
>
> On Fri, Oct 30, 2020 at 08:14:40AM -0600, Jonathan Corbet wrote:
> > On Fri, 30 Oct 2020 15:10:26 +0100
> > Mauro Carvalho Chehab <mchehab+huawei@kernel.org> wrote:
> >
> > > I see a few alternatives:
> > >
> > > 1) fix automarkup.py for it to work again with python 2.7;
> > >
> > > 2) conf.py could gain some logic to disable automarkup with
> > >    Python < 3;
> > >
> > > 3) scripts/sphinx-pre-install already detects Python version.
> > >    It should likely be easy to ask the user to use python 3.x,
> > >    if an older version is detected.
> > >
> > > Doing (1) or (2) will require an additional step when we raise
> > > the bar for Python version.
> >
> > We haven't dropped support for Python 2 yet, so this constitutes a
> > regression.  My own approach would be something like this at the top of
> > automarkup.py:
> >
> > 	if python2:
> > 	    ascii = 0
> > 	else:
> > 	    ascii = re.ASCII
> >
> > ...then s/re.ASCII/ascii/ throughout.  I can probably put together
> > something later this morning.
>
> Could we have a warning somewhere that python 2.7 is going to produce
> inferior docs?

But I don't expect the docs to have inferior quality using python 2.7.
The fix proposed by Jon should be enough to solve the issue.

>
> Alternatively, https://docs.python.org/2/library/re.html suggests
> using "The third-party regex module".

I still think Jon's solution would be better, as it doesn't add any additional
dependency.
In the end the issue is just python 2 defaults to ASCII while python 3 defaults
to unicode.

Thanks,
Nícolas


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-11-02 15:33 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-13 23:13 [PATCH v2 0/5] docs: automarkup.py: Make automarkup ready for Sphinx 3.1+ Nícolas F. R. A. Prado
2020-10-13 23:13 ` [PATCH v2 1/5] docs: automarkup.py: Use new C roles in Sphinx 3 Nícolas F. R. A. Prado
2020-10-30 13:33   ` Dafna Hirschfeld
2020-10-30 14:00     ` Jonathan Corbet
2020-10-30 14:10     ` Python 2.7 support and automarkup.py - Was: " Mauro Carvalho Chehab
2020-10-30 14:14       ` Jonathan Corbet
2020-10-30 14:15         ` Mauro Carvalho Chehab
2020-10-30 14:39         ` Matthew Wilcox
2020-10-13 23:13 ` [PATCH v2 2/5] docs: automarkup.py: Fix regexes to solve sphinx 3 warnings Nícolas F. R. A. Prado
2020-10-14 19:11   ` Jonathan Corbet
2020-10-13 23:13 ` [PATCH v2 3/5] docs: automarkup.py: Skip C reserved words when cross-referencing Nícolas F. R. A. Prado
2020-10-13 23:13 ` [PATCH v2 4/5] docs: automarkup.py: Add cross-reference for parametrized C macros Nícolas F. R. A. Prado
2020-10-13 23:13 ` [PATCH v2 5/5] docs: automarkup.py: Allow automatic cross-reference inside C namespace Nícolas F. R. A. Prado
2020-10-14  9:56   ` Mauro Carvalho Chehab
2020-10-14 19:19     ` Jonathan Corbet
2020-11-02 15:33       ` Nícolas F. R. A. Prado
2020-10-30 15:07 Python 2.7 support and automarkup.py - Was: Re: [PATCH v2 1/5] docs: automarkup.py: Use new C roles in Sphinx 3 Nícolas F. R. A. Prado

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).