This is an automated email from the ASF dual-hosted git repository.

epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git

commit d5ab54e70eafabbcd04448993305a6ceea837a0a
Author: Houston Putman <[email protected]>
AuthorDate: Thu Feb 10 13:52:19 2022 -0500

    SOLR-15556: Add real branches for official ref-guide
    
    * Make the site generation quicker by allowing parallel generation of
      javadocs.
    * Fix inputs for the antora yaml generation, does not cache when values
      need to change.
---
 solr/solr-ref-guide/README.adoc  | 10 ++++++--
 solr/solr-ref-guide/build.gradle | 52 +++++++++++++++++++++++++++-------------
 2 files changed, 44 insertions(+), 18 deletions(-)

diff --git a/solr/solr-ref-guide/README.adoc b/solr/solr-ref-guide/README.adoc
index ecb833d..443180a 100644
--- a/solr/solr-ref-guide/README.adoc
+++ b/solr/solr-ref-guide/README.adoc
@@ -20,7 +20,7 @@ This is the source for the Solr Reference Guide.
 
 Raw content is stored in Asciidoc (`.adoc`) formatted files in the `modules/` 
directory.
 
-To build the Ref Guide, simply run `./gradlew buildLocalSite`.
+To build the Ref Guide, run `./gradlew buildLocalSite`.
 This will build the HTML files and validate that page references and internal 
links work properly.
 You can find the home page of the generated site under `build/site/index.html`
 
@@ -28,4 +28,10 @@ See the `../../dev-docs/ref-guide` directory for information 
about editing and p
 
 To ignore the Ref Guide steps when running gradle `assemble` or `check`, use 
either `-Prefguide.include=false` or `SOLR_REF_GUIDE_INCLUDE=false`.
 
-If you want to test any changes for the Site UI files in `ui-src`, then use 
either `-Prefguide.buildLocalUI=false` or `SOLR_REF_GUIDE_BUILD_LOCAL_UI=false` 
when building the local or official site.
+If you want to test any changes for the Site UI files in `ui-src`, then use 
either `-Prefguide.buildLocalUI=true` or `SOLR_REF_GUIDE_BUILD_LOCAL_UI=true` 
when building the local or official site.
+
+In order to build the official ref guide, run `./gradlew buildOfficialSite`. 
It will also be built under `build/site/`.
+Note, this will not include any local changes to the ref guide, just what is 
published to git.
+By default it will not include prerelase versions (the `main` and `branch_*x` 
branches), just the release versions (i.e. `branch_x_y`).
+You can include all prerelease versions by including 
`-Prefguide.official.includePrereleaseVersions=true` or 
`SOLR_REF_GUIDE_OFFICIAL_INCLUDE_PRERELEASE=true` when building the official 
ref guide.
+This is the option that is used when generating the nightlies refGuide release.
diff --git a/solr/solr-ref-guide/build.gradle b/solr/solr-ref-guide/build.gradle
index 013f0ab..d349673 100644
--- a/solr/solr-ref-guide/build.gradle
+++ b/solr/solr-ref-guide/build.gradle
@@ -23,6 +23,8 @@ plugins {
 
 description = 'Solr Reference Guide'
 
+def officialSiteIncludePrerelease = 
propertyOrEnvOrDefault("refguide.official.includePrereleaseVersions", 
"SOLR_REF_GUIDE_OFFICIAL_INCLUDE_PRERELEASE", "false").toBoolean()
+
 def buildLocalUI = propertyOrEnvOrDefault("refguide.buildLocalUI", 
"SOLR_REF_GUIDE_BUILD_LOCAL_UI", "false").toBoolean()
 
 // Attach building the ref guide to standard convention tasks. This
@@ -36,11 +38,12 @@ configurations {
     refGuide
     officialPlaybook
     localPlaybook
+    localJavadocs
 }
 
 dependencies {
-    localPlaybook project(path: ":solr:documentation", configuration: 
'javadocs')
-    localPlaybook project(path: ":solr:documentation", configuration: 'site')
+    localJavadocs project(path: ":solr:documentation", configuration: 
'javadocs')
+    localJavadocs project(path: ":solr:documentation", configuration: 'site')
 }
 
 ext {
@@ -71,14 +74,19 @@ task buildLocalAntoraYaml {
     inputs.file(templateYaml)
     outputs.file(project.ext.localAntoraYaml)
 
+    def splitVersion = version.toString().split("\\p{Punct}")
+    def props = [
+        solr_version       : 
"${splitVersion[0]}.${splitVersion[1]}.${splitVersion[2]}",
+        solr_version_major : splitVersion[0],
+        solr_version_minor : splitVersion[1],
+        solr_version_patch : splitVersion[2],
+    ]
+    props.putAll([
+        solr_javadocs_link : 
"https://solr.apache.org/docs/${props.solr_version.replaceAll("\\.", "_")}",
+        lucene_javadocs_link :  project(':solr:documentation').luceneDocUrl,
+    ])
+
     doLast {
-        def splitVersion = version.toString().split("\\p{Punct}")
-        def props = [
-            solr_version       : 
"${splitVersion[0]}.${splitVersion[1]}.${splitVersion[2]}",
-            solr_version_major : splitVersion[0],
-            solr_version_minor : splitVersion[1],
-            solr_version_patch : splitVersion[2],
-        ]
         // Set these dependency versions as lazy gstrings so that they're 
resolved after evaluation.
         // These variable names must use underscores, not dashes or periods
         props.putAll([
@@ -92,10 +100,6 @@ task buildLocalAntoraYaml {
             ["dep_version_lucene", "org.apache.lucene", "lucene-core"],
         ].collectEntries { propKey, depGroup, depId -> [propKey, "${-> 
project.getVersion(depGroup, depId)}"] })
 
-        props.putAll([
-            solr_javadocs_link : 
"https://solr.apache.org/docs/${props.solr_version.replaceAll("\\.", "_")}",
-            lucene_javadocs_link :  
project(':solr:documentation').luceneDocUrl,
-        ])
 
         copy {
             from(templateYaml) {
@@ -108,6 +112,7 @@ task buildLocalAntoraYaml {
             expand(props)
         }
     }
+    inputs.properties(props)
 }
 
 task buildLocalAntoraPlaybookYaml(type: Copy) {
@@ -146,11 +151,18 @@ task buildOfficialAntoraPlaybookYaml(type: Copy) {
     }
     into project.ext.playbooksDir
 
+    def branches = ["branch_*"]
+    if (officialSiteIncludePrerelease) {
+        branches.add("main")
+    } else {
+        branches.add("\"!branch_*x\"")
+    }
+
     def props = [
         'site_url'           : "https://solr.apache.org/guide";,
         'redirect_facility'  : "httpd",
         'source_url'         : "https://github.com/apache/solr.git";,
-        'source_branches'    : ["jira/solr-15556-antora"],
+        'source_branches'    : branches,
         'start_path'         : 'solr/solr-ref-guide',
         'supplemental_files' : 
"${project.ext.nodeProjectDir}/node_modules/@antora/lunr-extension/supplemental_ui",
         'site_dir'           : "./" + 
file(project.ext.playbooksDir).relativePath(file(project.ext.siteDir)),
@@ -356,7 +368,7 @@ task setupLocalSiteStagingDir(type: Sync) {
     into project.ext.siteStagingDir
 }
 
-task buildLocalSite(type: NpxTask) {
+task buildLocalAntoraSite(type: NpxTask) {
     group = 'Site - Local'
     description "Creates a local build of the ref-guide."
 
@@ -392,10 +404,18 @@ task buildLocalSite(type: NpxTask) {
     inputs.files(fileTree(project.ext.siteStagingDir))
     inputs.property("Antora version", project.ext.antoraVersion)
     outputs.dir(project.ext.siteDir)
+}
+
+task buildLocalSite {
+    group = 'Site - Local'
+    description "Creates a local build of the ref-guide, with local javadocs 
to link to."
+
+    dependsOn tasks.buildLocalAntoraSite
+    dependsOn configurations.localJavadocs
 
     doLast {
         project.logger.lifecycle("The generated local ref-guide can be found 
at:")
-        project.logger.lifecycle("\t${project.ext.siteDir}")
+        project.logger.lifecycle("\t${project.ext.siteDir}/index.html")
     }
 }
 

Reply via email to