You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Chris M. Hostetter (Jira)" <ji...@apache.org> on 2020/09/01 23:10:00 UTC

[jira] [Comment Edited] (LUCENE-9495) Ref Guide gradle buildSite ignores version parameter

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

Chris M. Hostetter edited comment on LUCENE-9495 at 9/1/20, 11:09 PM:
----------------------------------------------------------------------

{quote}To accomplish this, the guide has long used a parameter {{solr-guide-version}} to indicate when a build for the Ref Guide _should not_ be considered a draft. With the Gradle build, this no longer works. (I thought I'd tested this, but either I missed it or it broke at some point in between.)
{quote}
IIUC it _does_ seem to work, but:
 * it's been renamed (probably to be more "gradle-esque" ?) using camel case: {{solrGuideVersion}}
 * it has to be specified using '{{-P}}' (which is evidently the gradle way of setting _project_ properties on the command line

(and it looks like this info wasn't fully updated in {{how-to-contribute.adoc}} ?)

 

So on master you can do...
{noformat}
hossman@slate:~/lucene/dev/solr/solr-ref-guide [j11] [master] $ gradle buildSite
Using gradle at '/home/hossman/lucene/dev/gradlew' to run buildfile '/home/hossman/lucene/dev/solr/solr-ref-guide/build.gradle':


> Task :solr:solr-ref-guide:setupLazyProps
Building ref guide with:
  solr-root-path -> ../../../../solr/
  solr-guide-draft-status -> DRAFT
  solr-guide-version -> 9.0-DRAFT
  solr-guide-version-path -> 9_0-DRAFT
  solr-docs-version -> 9.0
  javadoc.link -> https://docs.oracle.com/en/java/javase/11/docs/api/
  java-javadocs -> https://docs.oracle.com/en/java/javase/11/docs/api/
  solr-javadocs -> https://lucene.apache.org/solr/9_0_0/
  html-solr-javadocs -> https://lucene.apache.org/solr/9_0_0/
  lucene-javadocs -> https://lucene.apache.org/core/9_0_0/
  html-lucene-javadocs -> https://lucene.apache.org/core/9_0_0/
...
{noformat}
...to get the "default" version numbers and DRAFT status info, or you can do...
{noformat}
hossman@slate:~/lucene/dev/solr/solr-ref-guide [j11] [master] $ gradle buildSite -PsolrGuideVersion=9.0
Using gradle at '/home/hossman/lucene/dev/gradlew' to run buildfile '/home/hossman/lucene/dev/solr/solr-ref-guide/build.gradle':


> Task :solr:solr-ref-guide:setupLazyProps
Building ref guide with:
  solr-root-path -> ../../../../solr/
  solr-guide-draft-status -> 
  solr-guide-version -> 9.0
  solr-guide-version-path -> 9_0
  solr-docs-version -> 9.0
  javadoc.link -> https://docs.oracle.com/en/java/javase/11/docs/api/
  java-javadocs -> https://docs.oracle.com/en/java/javase/11/docs/api/
  solr-javadocs -> https://lucene.apache.org/solr/9_0_0/
  html-solr-javadocs -> https://lucene.apache.org/solr/9_0_0/
  lucene-javadocs -> https://lucene.apache.org/core/9_0_0/
  html-lucene-javadocs -> https://lucene.apache.org/core/9_0_0/
...
{noformat}
...to explicitly set the version and prevent the DRAFT status.

 

 
----
{quote}Beyond getting this to work, I think it's worth a discussion (separate Jira?) about whether we can simplify it. Maybe just a parameter ref-guide-draft=false would be sufficient? We might also reconsider the variations of versions in the Ref Guide params and whether we really need them (solr-guide-version, solr-docs-version).
{quote}
We can certainly simplify a *LOT* of this – most of the complexity here comes from when we had "official releases" of the ref-guide in PDF as well as HTML, and wanted/needed to be able to:
 * have a ref-guide version that was based on the major.minor solr version
 ** but had an independent and optional bugfix value...
 *** because we didn't do ref-guide releases for every solr bugfix
 *** BUT: we wanted to have the ability to to "bugfix" releases of the ref guide if it had egregious errors: (ie: refguide version 8.1 might have been followed y ref guide version 8.1.1 even if there was never a solr 8.1.1)
 * link to version specific javadocs
 ** using absolute URLs in the PDF
 ** BUT using relative URLs from the html that we would host on the site

 

A lot of this was spelled out in the build.xml comments, but that info evidently wasn't preserved in the creation of build.gradle...

 
{noformat}
  <loadresource property="solr-docs-version">
    <!-- NOTE: this is specifically only the "major.minor", it does not include the ".bugfix"
         This is because we (currently) only release the guide for minor versions.
    -->
...
  </loadresource>
  <loadresource property="solr-docs-version-path">
    <!-- NOTE: This is the ${solr-docs-version} as a path suitbale for linking to javadocs -->
...
  </loadresource>
  <!-- NOTE: ${solr-guide-version} is the version of this ref-guide.
       By default, we assume this is the same as ${solr-docs-version} with a "-DRAFT" suffix
       When releasing, specify an explicit value of this property on the command line.
       NOTE: the ${solr-guide-version} used *may* be different from the version of Solr the guide
       covers if we decide to do a bug-fix release of the ref-guide
       Examples: (assume branch_6_1 where version=6.1.SOMETHING)
       Basic nightly/local build of the 6.1 guide...
       => ant build-site
       Official build of the 6.1 guide...
       => ant build-site -Dsolr-guide-version=6.1
       Release of a "6.1.1" ref guide, correcting some serious error in the docs
       (even if there is no 6.1.1 version - or if we've already released up to 6.1.5 - of Solr itself)
       => ant build-site -Dsolr-guide-version=6.1.1
  -->
  <property name="solr-guide-version" value="${solr-docs-version}-DRAFT" />
  <condition property="solr-guide-draft-status" value="" else="DRAFT">
    <matches pattern="^\d+\.\d+(|\.\d+)$" string="${solr-guide-version}" />
  </condition>

  <loadresource property="solr-guide-version-path">
    <!-- NOTE: This is the ${solr-guide-version} as a path suitable for use publishing the HTML -->
...
  </loadresource>
{noformat}
 


was (Author: hossman):
{quote}To accomplish this, the guide has long used a parameter {{solr-guide-version}} to indicate when a build for the Ref Guide _should not_ be considered a draft. With the Gradle build, this no longer works. (I thought I'd tested this, but either I missed it or it broke at some point in between.)
{quote}
IIUC it _does_ seem to work, but:
 * it's been renamed (probably to be more "gradle-esque" ?) using camel case
 * it has to be specified using '{{-P}}' (which is evidently the gradle way of setting _project_ properties on the command line

(and it looks like this info wasn't fully updated in {{how-to-contribute.adoc}} ?)

 

So on master you can do...
{noformat}
hossman@slate:~/lucene/dev/solr/solr-ref-guide [j11] [master] $ gradle buildSite
Using gradle at '/home/hossman/lucene/dev/gradlew' to run buildfile '/home/hossman/lucene/dev/solr/solr-ref-guide/build.gradle':


> Task :solr:solr-ref-guide:setupLazyProps
Building ref guide with:
  solr-root-path -> ../../../../solr/
  solr-guide-draft-status -> DRAFT
  solr-guide-version -> 9.0-DRAFT
  solr-guide-version-path -> 9_0-DRAFT
  solr-docs-version -> 9.0
  javadoc.link -> https://docs.oracle.com/en/java/javase/11/docs/api/
  java-javadocs -> https://docs.oracle.com/en/java/javase/11/docs/api/
  solr-javadocs -> https://lucene.apache.org/solr/9_0_0/
  html-solr-javadocs -> https://lucene.apache.org/solr/9_0_0/
  lucene-javadocs -> https://lucene.apache.org/core/9_0_0/
  html-lucene-javadocs -> https://lucene.apache.org/core/9_0_0/
...
{noformat}
...to get the "default" version numbers and DRAFT status info, or you can do...
{noformat}
hossman@slate:~/lucene/dev/solr/solr-ref-guide [j11] [master] $ gradle buildSite -PsolrGuideVersion=9.0
Using gradle at '/home/hossman/lucene/dev/gradlew' to run buildfile '/home/hossman/lucene/dev/solr/solr-ref-guide/build.gradle':


> Task :solr:solr-ref-guide:setupLazyProps
Building ref guide with:
  solr-root-path -> ../../../../solr/
  solr-guide-draft-status -> 
  solr-guide-version -> 9.0
  solr-guide-version-path -> 9_0
  solr-docs-version -> 9.0
  javadoc.link -> https://docs.oracle.com/en/java/javase/11/docs/api/
  java-javadocs -> https://docs.oracle.com/en/java/javase/11/docs/api/
  solr-javadocs -> https://lucene.apache.org/solr/9_0_0/
  html-solr-javadocs -> https://lucene.apache.org/solr/9_0_0/
  lucene-javadocs -> https://lucene.apache.org/core/9_0_0/
  html-lucene-javadocs -> https://lucene.apache.org/core/9_0_0/
...
{noformat}
...to explicitly set the version and prevent the DRAFT status.

 

 
----
{quote}Beyond getting this to work, I think it's worth a discussion (separate Jira?) about whether we can simplify it. Maybe just a parameter ref-guide-draft=false would be sufficient? We might also reconsider the variations of versions in the Ref Guide params and whether we really need them (solr-guide-version, solr-docs-version).
{quote}
We can certainly simplify a *LOT* of this – most of the complexity here comes from when we had "official releases" of the ref-guide in PDF as well as HTML, and wanted/needed to be able to:
 * have a ref-guide version that was based on the major.minor solr version
 ** but had an independent and optional bugfix value...
 *** because we didn't do ref-guide releases for every solr bugfix
 *** BUT: we wanted to have the ability to to "bugfix" releases of the ref guide if it had egregious errors: (ie: refguide version 8.1 might have been followed y ref guide version 8.1.1 even if there was never a solr 8.1.1)
 * link to version specific javadocs
 ** using absolute URLs in the PDF
 ** BUT using relative URLs from the html that we would host on the site

 

A lot of this was spelled out in the build.xml comments, but that info evidently wasn't preserved in the creation of build.gradle...

 
{noformat}
  <loadresource property="solr-docs-version">
    <!-- NOTE: this is specifically only the "major.minor", it does not include the ".bugfix"
         This is because we (currently) only release the guide for minor versions.
    -->
...
  </loadresource>
  <loadresource property="solr-docs-version-path">
    <!-- NOTE: This is the ${solr-docs-version} as a path suitbale for linking to javadocs -->
...
  </loadresource>
  <!-- NOTE: ${solr-guide-version} is the version of this ref-guide.
       By default, we assume this is the same as ${solr-docs-version} with a "-DRAFT" suffix
       When releasing, specify an explicit value of this property on the command line.
       NOTE: the ${solr-guide-version} used *may* be different from the version of Solr the guide
       covers if we decide to do a bug-fix release of the ref-guide
       Examples: (assume branch_6_1 where version=6.1.SOMETHING)
       Basic nightly/local build of the 6.1 guide...
       => ant build-site
       Official build of the 6.1 guide...
       => ant build-site -Dsolr-guide-version=6.1
       Release of a "6.1.1" ref guide, correcting some serious error in the docs
       (even if there is no 6.1.1 version - or if we've already released up to 6.1.5 - of Solr itself)
       => ant build-site -Dsolr-guide-version=6.1.1
  -->
  <property name="solr-guide-version" value="${solr-docs-version}-DRAFT" />
  <condition property="solr-guide-draft-status" value="" else="DRAFT">
    <matches pattern="^\d+\.\d+(|\.\d+)$" string="${solr-guide-version}" />
  </condition>

  <loadresource property="solr-guide-version-path">
    <!-- NOTE: This is the ${solr-guide-version} as a path suitable for use publishing the HTML -->
...
  </loadresource>
{noformat}
 

> Ref Guide gradle buildSite ignores version parameter
> ----------------------------------------------------
>
>                 Key: LUCENE-9495
>                 URL: https://issues.apache.org/jira/browse/LUCENE-9495
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: general/build
>            Reporter: Cassandra Targett
>            Priority: Major
>
> All Ref Guide builds by default are built as drafts. A DRAFT watermark is inserted on to every page, a special header is added to the side navigation, and the footer version includes the word "-DRAFT".
> To accomplish this, the guide has long used a parameter {{solr-guide-version}} to indicate when a build for the Ref Guide _should not_ be considered a draft. With the Gradle build, this no longer works. (I thought I'd tested this, but either I missed it or it broke at some point in between.)
> [~hossman] set this up several years ago, so cc'ing him here so he can take a look and see why the logic would stop working now.
> Links:
> Ref Guide {{build.gradle}} that determines Guide version: https://github.com/apache/lucene-solr/blob/master/solr/solr-ref-guide/build.gradle#L128
> Ant {{build.xml}} the above was adapted from: https://github.com/apache/lucene-solr/blob/branch_8x/solr/solr-ref-guide/build.xml#L70 
> Beyond getting this to work, I think it's worth a discussion (separate Jira?) about whether we can simplify it. Maybe just a parameter {{ref-guide-draft=false}} would be sufficient? We might also reconsider the variations of versions in the Ref Guide params and whether we really need them ({{solr-guide-version}}, {{solr-docs-version}}).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org