[ 
https://issues.apache.org/jira/browse/SOLR-12134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16408244#comment-16408244
 ] 

Hoss Man edited comment on SOLR-12134 at 3/21/18 6:03 PM:
----------------------------------------------------------

I think we should make 2 broad changes to the build, which i've been testing 
out in a patch...
 # add a optional sys prop when building the ref guide to use 
{{local.javadocs}} paths in the html versions of the guide
 ** when using {{local.javadocs}} the CheckLinksAndAnchors code will also 
validate that any javadoc file mentioned in the ref-guide exists locally – so 
you have to have built all javadocs to use it
 ** The PDF will never use local javadocs paths, always absolute urls on 
lucene.apache.org
 # update {{cd solr; ant documentation}} to also build the pdf (and 
bare-bones-html) versions of the guide using this {{local.javadocs}} option
 ** This will ensure that both {{ant precommit}} and any jenkins job that 
builds documentation will fail if someone breaks the ref-guide (either 
directly, or by changing javadocs in a way that will break the ref-guide)

Things that won't change...
 * if you run {{cd solr/solr-ref-guide; ant <any-target>}} it should still work 
exactly as before
 ** intra ref-guide links will still be validated
 ** links to javadocs will still use absolute URLs...
 *** you won't know if they are broken – but on the flip side you can rapidly 
rebuild the ref-guide w/o needing to build all lucene/solr javadocs
 * the release process for either lucene/solr or the ref-guide stays the same

 * 
 ** In general this moves us closer to having a unified release process, but 
it's not all the way there
 ** Notable: the "official builds" of the ref-guide (both in PDF and the hosted 
HTML) will still use absolute URLs to link to javadocs

----
Some examples...
{code:java}
cd solr/solr-ref-guide
ant build-site                   # no change from existing behavior
ant bare-bones-html-validation   # no change from existing behavior
ant build-pdf                    # no change from existing behavior

ant build-site -Dlocal.javadocs=true  # local jekyll build will now link to 
local
                                      # javadoc files and build will fail if 
any/all javadoc 
                                      # links don't exist
{code}
{code:java}
cd solr
ant documentation      # now builds PDF & validates barebones html ref-guide
                       # (after building javadocs) to ensure no fatal PDF
                       # errors or broken links 
{code}
{code:java}
ant precommit          # now builds & validates barebones html ref-guide after 
building javadocs
{code}
----
The attached patch makes this all work (including a fix to an existing link in 
{{solr-tutorial.adoc}} which currently depends on some weird rewrite rule 
behavior to work). If you also apply the 
"nocommit.SOLR-12134.sample-failures.patch" file you can see how some various 
examples of problems will affect things like {{cd solr/solr-ref-guide; ant}} vs 
{{cd solr; ant documentation}} (Of course: to test {{ant precommit}} you'll 
have to remove the 'nocommit' test from that patch, since it will cause 
precommit to fail fast before it even tries to build documentation)

 

(*EDIT* – based on an offline question from steve, i updated one comment in the 
examples above to clarify that {{ant documentation}} will actually build the 
pdf _and_ validate the links by building & verifying the bare-bones html ... 
that's a preexisting dependency in {{build-pdf)}}


was (Author: hossman):
I think we should make 2 broad changes to the build, which i've been testing 
out in a patch...
 # add a optional sys prop when building the ref guide to use 
{{local.javadocs}} paths in the html versions of the guide
 ** when using {{local.javadocs}} the CheckLinksAndAnchors code will also 
validate that any javadoc file mentioned in the ref-guide exists locally – so 
you have to have built all javadocs to use it
 ** The PDF will never use local javadocs paths, always absolute urls on 
lucene.apache.org
 # update {{cd solr; ant documentation}} to also build the pdf (and 
bare-bones-html) versions of the guide using this {{local.javadocs}} option
 ** This will ensure that both {{ant precommit}} and any jenkins job that 
builds documentation will fail if someone breaks the ref-guide (either 
directly, or by changing javadocs in a way that will break the ref-guide)

Things that won't change...
 * if you run {{cd solr/solr-ref-guide; ant <any-target>}} it should still work 
exactly as before
 ** intra ref-guide links will still be validated
 ** links to javadocs will still use absolute URLs...
 *** you won't know if they are broken – but on the flip side you can rapidly 
rebuild the ref-guide w/o needing to build all lucene/solr javadocs
 * the release process for either lucene/solr or the ref-guide stays the same

 ** In general this moves us closer to having a unified release process, but 
it's not all the way there
 ** Notable: the "official builds" of the ref-guide (both in PDF and the hosted 
HTML) will still use absolute URLs to link to javadocs

----
Some examples...
{code:java}
cd solr/solr-ref-guide
ant build-site                   # no change from existing behavior
ant bare-bones-html-validation   # no change from existing behavior
ant build-pdf                    # no change from existing behavior

ant build-site -Dlocal.javadocs=true  # local jekyll build will now link to 
local
                                      # javadoc files and build will fail if 
any/all javadoc 
                                      # links don't exist
{code}
{code:java}
cd solr
ant documentation      # now builds & validates barebones html ref-guide after 
building javadocs
{code}
{code:java}
ant precommit          # now builds & validates barebones html ref-guide after 
building javadocs
{code}
----
The attached patch makes this all work (including a fix to an existing link in 
{{solr-tutorial.adoc}} which currently depends on some weird rewrite rule 
behavior to work). If you also apply the 
"nocommit.SOLR-12134.sample-failures.patch" file you can see how some various 
examples of problems will affect things like {{cd solr/solr-ref-guide; ant}} vs 
{{cd solr; ant documentation}} (Of course: to test {{ant precommit}} you'll 
have to remove the 'nocommit' test from that patch, since it will cause 
precommit to fail fast before it even tries to build documentation)

> validate links to javadocs in ref-guide & hook all ref-guide validation into 
> top level documentation/precommit
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-12134
>                 URL: https://issues.apache.org/jira/browse/SOLR-12134
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: documentation
>            Reporter: Hoss Man
>            Assignee: Hoss Man
>            Priority: Major
>         Attachments: SOLR-12134.patch, 
> nocommit.SOLR-12134.sample-failures.patch
>
>
> We've seen a couple problems come up recently where the ref-guide had broken 
> links ot javadocs.
> In some cases these are because people made typos in java classnames / 
> pathnames while editing the docs - but in other cases the problems were that 
> the docs were correct at one point, but then later the class was 
> moved/renamed/removed, or had it's access level downgraded from public to 
> private (after deprecation)
> I've worked up a patch with some ideas to help us catch these types of 
> mistakes - and in general to hook the "bare-bones HTML" validation (which 
> does not require jekyll or any non-ivy managed external dependencies) into 
> {{ant precommit}}
> Details to follow in comment/patch...



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to