Re: meson documentation build open issues

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: Christoph Berg <myon@debian.org>, Alvaro Herrera <alvherre@alvh.no-ip.org>, pgsql-hackers@lists.postgresql.org, Andrew Dunstan <andrew@dunslane.net>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2023-11-09T00:59:09Z
Lists: pgsql-hackers
Hi,

On 2023-11-08 16:19:51 +0100, Peter Eisentraut wrote:
> On 08.11.23 13:55, Christoph Berg wrote:
> > Re: Peter Eisentraut
> > > > If the problem is broken doc patches, then maybe a solution is to
> > > > include the `xmllint --noout --valid` target in whatever the check-world
> > > > equivalent is for meson.  Looking at doc/src/sgml/meson.build, we don't
> > > > seem to do that anywhere.  Doing the no-output lint run is very fast
> > > > (375ms real time in my machine, whereas "make html" takes 27s).
> > >
> > > This would be a start, but it wouldn't cover everything.  Lately, we require
> > > id attributes on certain elements, which is checked on the XSLT level.
> >
> > I'd think there should be a catchy "make check-world"-equivalent that
> > does run all reasonable check that we can tell people to run by
> > default. Then if that takes too long, we could still offer
> > alternatives that exclude some areas. If it's the other way round,
> > some areas will never be checked widely.
>
> I think we could build doc/src/sgml/postgres-full.xml by default.  That
> takes less than 0.5 seconds here and it's an intermediate target for html
> and man.

That does require the docbook dtd to be installed, afaict. I think we would
need a configure test for that to be present if we want to build it by
default, otherwise we'll cause errors on plenty systems that don't get them
today.  The docbook dts aren't a huge dependency, but still. Some OSs might
not have a particularly install source for them, e.g. windows.

I don't think that'd detect the missing ids?

Greetings,

Andres Freund




Commits

  1. docs: meson: Change what 'docs' target builds

  2. meson: Add 'world' target

  3. meson: Document build targets, add 'help' target

  4. meson: docs: Add {html,man} targets, rename install-doc-*

  5. docs: Document --with-selinux/-Dselinux options centrally

  6. meson: Change default of 'selinux' feature option to auto

  7. meson: Fix doc installation path computation

  8. meson: Install missing example files

  9. meson: docs: Install all manpages, not just ones in man1

  10. meson: docs: Allow configuring simple/website style

  11. docs: html: load stylesheet via custom.css.source

  12. docs: html: copy images to output as part of xslt build

  13. meson: docs: Preparatory cleanups

  14. docs: Remove support for 'htmlhelp' format

  15. meson: add install-{docs,doc-html,doc-man} targets

  16. meson: add install-{quiet, world} targets

  17. meson: make install_test_files more generic, rename to install_files

  18. meson: rename html_help target to htmlhelp