diff mbox

update_web_docs_svn: support the JIT docs (PR jit/64257)

Message ID 1422290574.1463.38.camel@surprise
State New
Headers show

Commit Message

David Malcolm Jan. 26, 2015, 4:42 p.m. UTC
On Mon, 2015-01-26 at 12:43 +0100, Gerald Pfeifer wrote:
> On Friday 2015-01-23 17:44, David Malcolm wrote:
> > The following patch builds and installs the JIT documentation for
> > the website (just HTML for now).
> > 
> > It's tricky to test (I don't have a copy of /www/gcc/bin/preprocess),
> > but I was able to use this to generate sane-looking documentation,
> > both for the .texi files, and for the JIT documentation.
> You can easily get the preprocess script by checking out wwwdocs,
> cf. https://gcc.gnu.org/about.html.

Thanks.

> That still will require MetaHTML which, sadly, became an abandoned
> FSF project, and will require a hack or two to build, so let's just
> go with your patch.
> 
> A few notes, though:
> 
> > maintainer-scripts/ChangeLog:
> > 	PR jit/64257
> > 	* update_web_docs_svn: Don't delete gcc/jit/docs,
> > 	since the jit docs are not .tex files (Makefile, .rst and
> > 	.png).	Special-case the building of the JIT docs (using
> > 	sphinx-build).  Special-case copying them up (since they
> > 	contain .css, .js and .png files in addition to .html, and
> > 	have nested subdirectories).
> 
> The "since" should be part of the code, not the ChangeLog.

Fair point; I've moved both of these to comments in the file.

> > diff --git a/maintainer-scripts/update_web_docs_svn b/maintainer-scripts/update_web_docs_svn
> > index c661220..c7eb890 100755
> > --- a/maintainer-scripts/update_web_docs_svn
> > +++ b/maintainer-scripts/update_web_docs_svn
> > +# The JIT is a special-case, using sphinx rather than texinfo.
> 
> special case

Fixed.

> > +# The jit Makefile uses "sphinx-build", which is packaged in
> > +# Fedora and EPEL 6 within "python-sphinx".
> 
> JIT (above) vs jit (here)?

I now use lowercase "jit" throughout.

> How about saying "...packaged in "python-sphinx" in Fedora and
> EPEL 6 and in "python-Sphinx" in openSUSE"?

Added.

> > +# Again, the jit is a special case, with nested subdirectories
> > +# below "jit", and with some non-HTML files (.png images from us,
> > +# plus .js and .css supplied by sphinx).
> > +for file in $(find jit \
> > +                -name "*.html" -o -name "*.css" \
> > +                -o -name "*.js" -o -name "*.png"); do
> 
> This looks like a Bash-ism.  Can you use backticks of something
> like 
> 
>   find ... | while read file; ...
> 
> ?

Done.

(Your proposal is superior since it avoids potentially long command
lines; but out of interest, why specifically avoid bash here?)

> > +    cp $file $DOCSDIR/$file
> 
> Just "cp $file $DOCSDIR/" ?  This one may be a better of style,
> but is easier to tweak in case we need to quote later on, for
> example.

The jit documentation has a nested directory structure (e.g. there are 7
instances of an "index.html" within them), "$file" actually will contain
a path to a file, so we do need to have $file on the right-hand side of
the cp command.

I've added a comment to clarify that.

I'm attaching a revised patch which I hope addresses these issues;
tested (crudely) as before.

How does this look?

Thanks
Dave

Comments

Jeff Law Jan. 26, 2015, 10:21 p.m. UTC | #1
On 01/26/15 09:42, David Malcolm wrote:

> update_web_docs_svn-support-the-JIT-documention-v2.patch
>
>
>  From 7f7e15881981228e51b347f23df6e3106ddd68ea Mon Sep 17 00:00:00 2001
> From: David Malcolm<dmalcolm@redhat.com>
> Date: Fri, 23 Jan 2015 17:26:57 -0500
> Subject: [PATCH] update_web_docs_svn: support the JIT documentation
>
> maintainer-scripts/ChangeLog:
> 	* update_web_docs_svn: Don't delete gcc/jit/docs or
> 	gcc/jit/jit-common.h, gcc/jit/notes.txt. Special case the
> 	building of the jit docs (using sphinx-build).  Special case
> 	copying them up.
OK.
jeff
David Malcolm Jan. 27, 2015, 12:14 a.m. UTC | #2
On Mon, 2015-01-26 at 15:21 -0700, Jeff Law wrote:
> On 01/26/15 09:42, David Malcolm wrote:
> 
> > update_web_docs_svn-support-the-JIT-documention-v2.patch
> >
> >
> >  From 7f7e15881981228e51b347f23df6e3106ddd68ea Mon Sep 17 00:00:00 2001
> > From: David Malcolm<dmalcolm@redhat.com>
> > Date: Fri, 23 Jan 2015 17:26:57 -0500
> > Subject: [PATCH] update_web_docs_svn: support the JIT documentation
> >
> > maintainer-scripts/ChangeLog:
> > 	* update_web_docs_svn: Don't delete gcc/jit/docs or
> > 	gcc/jit/jit-common.h, gcc/jit/notes.txt. Special case the
> > 	building of the jit docs (using sphinx-build).  Special case
> > 	copying them up.
> OK.

Thanks.

I've committed this to trunk as r220149.

Does this automatically get propagated to the machine that builds the
website (and thus would be run next time the relevant cronjob runs)?
Or does someone need to do additional work for this to "go live"?  (if
nothing else, the machine needs to have sphinx-build in its $PATH, as
noted in the patch).

Dave
David Malcolm Feb. 2, 2015, 4:39 p.m. UTC | #3
On Mon, 2015-01-26 at 19:14 -0500, David Malcolm wrote:
> On Mon, 2015-01-26 at 15:21 -0700, Jeff Law wrote:
> > On 01/26/15 09:42, David Malcolm wrote:
> > 
> > > update_web_docs_svn-support-the-JIT-documention-v2.patch
> > >
> > >
> > >  From 7f7e15881981228e51b347f23df6e3106ddd68ea Mon Sep 17 00:00:00 2001
> > > From: David Malcolm<dmalcolm@redhat.com>
> > > Date: Fri, 23 Jan 2015 17:26:57 -0500
> > > Subject: [PATCH] update_web_docs_svn: support the JIT documentation
> > >
> > > maintainer-scripts/ChangeLog:
> > > 	* update_web_docs_svn: Don't delete gcc/jit/docs or
> > > 	gcc/jit/jit-common.h, gcc/jit/notes.txt. Special case the
> > > 	building of the jit docs (using sphinx-build).  Special case
> > > 	copying them up.
> > OK.
> 
> Thanks.
> 
> I've committed this to trunk as r220149.
> 
> Does this automatically get propagated to the machine that builds the
> website (and thus would be run next time the relevant cronjob runs)?
> Or does someone need to do additional work for this to "go live"?  (if
> nothing else, the machine needs to have sphinx-build in its $PATH, as
> noted in the patch).

Ping re ^^^^^

I'm hoping to have the jit docs on the gcc website.

In the best of all worlds, with r220149, the jit docs might have
appeared at:
  https://gcc.gnu.org/onlinedocs/jit
but that's currently a 404.

Presumably, some machine needs to have the relevant sphinx packaged
installed (if that's OK [1]), and perhaps the update to the
update_web_docs_svn script needs to make it onto that machine?

Or is this more appropriate for the "overseers" list?

Thanks
Dave

[1] otherwise, do I need to look into another way of getting the docs
built for the site?
Gerald Pfeifer Feb. 2, 2015, 5:53 p.m. UTC | #4
Hi David,

On Monday 2015-02-02 11:39, David Malcolm wrote:
>>>> 	* update_web_docs_svn: Don't delete gcc/jit/docs or
>>>> 	gcc/jit/jit-common.h, gcc/jit/notes.txt. Special case the
>>>> 	building of the jit docs (using sphinx-build).  Special case
>>>> 	copying them up.
>> I've committed this to trunk as r220149.
>> 
>> Does this automatically get propagated to the machine that builds the
>> website (and thus would be run next time the relevant cronjob runs)?

I looked into this, and it does not get propagated automatically,
so I did it manually (svn up at the proper location).

>> Or does someone need to do additional work for this to "go live"?  (if
>> nothing else, the machine needs to have sphinx-build in its $PATH, as
>> noted in the patch).
> I'm hoping to have the jit docs on the gcc website.

I guess we'll be testing the error handling behavior of your new
code :-), since indeed sphinx-build is not in the standard $PATH.

Do you know where it can be found on this machine?

> Presumably, some machine needs to have the relevant sphinx packaged
> installed (if that's OK [1]), and perhaps the update to the
> update_web_docs_svn script needs to make it onto that machine?
> 
> Or is this more appropriate for the "overseers" list?

Yes, please direct the request for sphinx to overseers.

(In parallel, if you can refine how the script behaves when sphinx
is not present, that might be a good idea, too.)

Gerald
diff mbox

Patch

From 7f7e15881981228e51b347f23df6e3106ddd68ea Mon Sep 17 00:00:00 2001
From: David Malcolm <dmalcolm@redhat.com>
Date: Fri, 23 Jan 2015 17:26:57 -0500
Subject: [PATCH] update_web_docs_svn: support the JIT documentation

maintainer-scripts/ChangeLog:
	* update_web_docs_svn: Don't delete gcc/jit/docs or
	gcc/jit/jit-common.h, gcc/jit/notes.txt. Special case the
	building of the jit docs (using sphinx-build).  Special case
	copying them up.
---
 maintainer-scripts/update_web_docs_svn | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/maintainer-scripts/update_web_docs_svn b/maintainer-scripts/update_web_docs_svn
index c661220..ac3bae6 100755
--- a/maintainer-scripts/update_web_docs_svn
+++ b/maintainer-scripts/update_web_docs_svn
@@ -111,11 +111,18 @@  fi
 # generator programs with the installed library, not the new one and
 # (b) to avoid packaging all the sources instead of only documentation
 # sources.
+# Note that we have to preserve gcc/jit/docs since the jit docs are
+# not .texi files (Makefile, .rst and .png), and the jit docs use
+# include directives to pull in content from jit/jit-common.h and
+# jit/notes.txt, so we have to preserve those also.
 find gcc -type f \( -name '*.texi' \
   -o -path gcc/gcc/doc/install.texi2html \
   -o -path gcc/gcc/doc/include/texinfo.tex \
   -o -path gcc/gcc/BASE-VER \
   -o -path gcc/gcc/DEV-PHASE \
+  -o -path "gcc/gcc/jit/docs/*" \
+  -o -path "gcc/gcc/jit/jit-common.h" \
+  -o -path "gcc/gcc/jit/notes.txt" \
   -o -print0 \) | xargs -0 rm -f
 
 # Build a tarball of the sources.
@@ -158,6 +165,16 @@  for file in $MANUALS; do
   fi
 done
 
+# The jit is a special-case, using sphinx rather than texinfo.
+# The jit Makefile uses "sphinx-build".  This is packaged in
+# Fedora and EPEL 6 within "python-sphinx", and in openSUSE
+# within "python-Sphinx".
+pushd gcc/gcc/jit/docs
+make html
+popd
+cp -a gcc/gcc/jit/docs/_build/html jit
+mkdir -p $DOCSDIR/jit
+
 # Work around makeinfo generated file names and references with
 # "_002d" instead of "-".
 find . -name '*.html' | while read f; do
@@ -204,6 +221,19 @@  for file in */*.html *.ps *.pdf *.tar; do
   fi
 done
 
+# Again, the jit is a special case, with nested subdirectories
+# below "jit", and with some non-HTML files (.png images from us,
+# plus .css and .js supplied by sphinx).
+find jit \
+    -name "*.html" -o -name "*.png" \
+    -o -name "*.css" -o -name "*.js" |
+  while read file ; do
+    # Note that $file here will contain path fragments beginning
+    # with "jit/", e.g. "jit/cp/topics/functions.html"
+    mkdir -p $(dirname $DOCSDIR/$file)
+    cp $file $DOCSDIR/$file
+  done
+
 cd $DOCSDIR
 
 # Finally, generate the installation documentation
-- 
1.8.5.3