You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ds...@apache.org on 2026/07/25 23:02:15 UTC

(solr) branch main updated: packaging: Remove docs/ from the Solr binary distribution (#4641)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 047e14d9024 packaging: Remove docs/ from the Solr binary distribution (#4641)
047e14d9024 is described below

commit 047e14d9024a94aa814c228c79f39555d73748fb
Author: David Smiley <ds...@apache.org>
AuthorDate: Sat Jul 25 19:02:10 2026 -0400

    packaging: Remove docs/ from the Solr binary distribution (#4641)
    
    And add online links to README.txt
---
 .../unreleased/PR#4641-remove_docs_distro.yml      |  8 ++++
 dev-tools/scripts/smokeTestRelease.py              |  4 +-
 gradle/documentation/documentation.gradle          | 53 ++--------------------
 gradle/documentation/markdown.gradle               |  9 ----
 .../src/markdown/online-link.template.md           | 21 ---------
 solr/packaging/README.txt                          | 11 ++++-
 solr/packaging/build.gradle                        | 16 +++----
 7 files changed, 32 insertions(+), 90 deletions(-)

diff --git a/changelog/unreleased/PR#4641-remove_docs_distro.yml b/changelog/unreleased/PR#4641-remove_docs_distro.yml
new file mode 100644
index 00000000000..a95b65ec175
--- /dev/null
+++ b/changelog/unreleased/PR#4641-remove_docs_distro.yml
@@ -0,0 +1,8 @@
+title: >
+  Remove docs/ from the Solr binary distribution.  Add online links to such in README.txt
+type: other
+authors:
+  - name: David Smiley
+links:
+  - name: PR#4641
+    url: https://github.com/apache/solr/pull/4641
diff --git a/dev-tools/scripts/smokeTestRelease.py b/dev-tools/scripts/smokeTestRelease.py
index cd997b220b0..24a9e395e24 100755
--- a/dev-tools/scripts/smokeTestRelease.py
+++ b/dev-tools/scripts/smokeTestRelease.py
@@ -679,9 +679,9 @@ def verifyBinaryUnpacked(java, artifact, unpackPath, version, gitRevision):
   is_in_list(in_root_folder, ['LICENSE.txt', 'NOTICE.txt', 'README.txt', 'CHANGELOG.md'])
 
   if isSlim:
-    is_in_list(in_root_folder, ['bin', 'docker', 'docs', 'example', 'licenses', 'server', 'lib'])
+    is_in_list(in_root_folder, ['bin', 'docker', 'example', 'licenses', 'server', 'lib'])
   else:
-    is_in_list(in_root_folder, ['bin', 'modules', 'cross-dc-manager', 'docker', 'docs', 'example', 'licenses', 'server', 'lib'])
+    is_in_list(in_root_folder, ['bin', 'modules', 'cross-dc-manager', 'docker', 'example', 'licenses', 'server', 'lib'])
 
   if len(in_root_folder) > 0:
     raise RuntimeError('solr: unexpected files/dirs in artifact %s: %s' % (artifact, in_root_folder))
diff --git a/gradle/documentation/documentation.gradle b/gradle/documentation/documentation.gradle
index 8aa3f4a0bb0..700116ea13d 100644
--- a/gradle/documentation/documentation.gradle
+++ b/gradle/documentation/documentation.gradle
@@ -47,17 +47,14 @@ configure(rootProject) {
     group = 'documentation'
     description = 'Generate all documentation'
 
-    dependsOn ':solr:documentation:assemble'
+    dependsOn ':solr:documentation:documentation'
   }
-
-  assemble.dependsOn documentation
 }
 
 // docroot will point to Lucene and Solr relative directory for each sub-project.
 configure(project(':solr:documentation')) {
   ext {
     docroot = file("${buildDir}/site")
-    docrootMinimal = file("${buildDir}/minimalSite")
 
     markdownSrc = file("src/markdown")
     assets = file("src/assets")
@@ -80,12 +77,11 @@ configure(project(':solr:documentation')) {
     into project.docroot
   }
 
-  assemble {
-    dependsOn documentation
-  }
-
   configurations {
-    site
+    // Not part of 'assemble': only built on demand (e.g. by the release process or the ref guide build).
+    site {
+      visible = false
+    }
   }
 
   artifacts {
@@ -93,49 +89,10 @@ configure(project(':solr:documentation')) {
       builtBy documentation
     }
   }
-
-  task documentationMinimal() {
-    group = 'documentation'
-    description = "Generate stub Solr documentation pointing to web page (that's part of Solr TGZ)"
-    dependsOn 'copyMiniDocumentationAssets',
-        'createMiniDocumentationIndex',
-        'copyChangesToHtmlForMiniSite'
-  }
-
-  task copyChangesToHtmlForMiniSite(type: Copy) {
-    dependsOn 'copyDocumentationAssets'
-    dependsOn 'markdownToHtml'
-
-    from project.docroot
-    into project.docrootMinimal
-    include 'changes/**'
-    dependsOn 'changesToHtml'
-  }
-
-  task copyMiniDocumentationAssets(type: Copy) {
-    includeEmptyDirs = false
-    from('src/assets')
-    into project.docrootMinimal
-  }
-
-  assemble {
-    dependsOn documentationMinimal
-  }
-
-  configurations {
-    minimalSite
-  }
-
-  artifacts {
-    minimalSite project.docrootMinimal, {
-      builtBy documentationMinimal
-    }
-  }
 }
 
 configure(project(":solr")) {
   ext {
     docroot = project('documentation').docroot
-    docrootMinimal = project('documentation').docrootMinimal
   }
 }
diff --git a/gradle/documentation/markdown.gradle b/gradle/documentation/markdown.gradle
index 0506badfe8f..eb9458bdb9c 100644
--- a/gradle/documentation/markdown.gradle
+++ b/gradle/documentation/markdown.gradle
@@ -73,15 +73,6 @@ configure(project(':solr:documentation')) {
 
     withProjectList()
   }
-
-  task createMiniDocumentationIndex(type: MarkdownTemplateTask) {
-    outputFile = file("${project.docrootMinimal}/index.html")
-    templateFile = file("${project.markdownSrc}/online-link.template.md")
-
-    // list all properties used by the template here to allow uptodate checks to be correct:
-    inputs.property('version', project.version)
-    inputs.property('solrDocUrl', project.solrDocUrl).optional(true)
-  }
 }
 
 // filter that can be used with the "copy" task of Gradle that transforms Markdown files
diff --git a/solr/documentation/src/markdown/online-link.template.md b/solr/documentation/src/markdown/online-link.template.md
deleted file mode 100644
index 64f208719c9..00000000000
--- a/solr/documentation/src/markdown/online-link.template.md
+++ /dev/null
@@ -1,21 +0,0 @@
-<div>
-  <a href="https://solr.apache.org/">
-    <img src="solr.svg" style="width:210px; margin:22px 0px 7px 20px; border:none;" title="Apache Solr Logo" alt="Solr" />
-  </a>
-  <div style="z-index:100;position:absolute;top:25px;left:226px">
-    <span style="font-size: x-small">TM</span>
-  </div>
-</div>
-
-# Apache Solr™ ${project.version} Documentation
-
-<%
-if ("${project.version}" == "${project.baseVersion}") { // compare as strings because of lazy evaluation
-  println "Follow [this link to view online documentation](${project.solrDocUrl}) for Apache Solr ${project.version}."
-} else {
-  println "No online documentation available for custom builds or `SNAPSHOT` versions."
-  println "Run `gradlew documentation` from `src.tgz` package to build docs locally."
-}
-%>
-
-Review the [changes](changes/Changes.html) in Apache Solr ${project.version}.
diff --git a/solr/packaging/README.txt b/solr/packaging/README.txt
index 8c5a69cbd5e..7801ae00f49 100644
--- a/solr/packaging/README.txt
+++ b/solr/packaging/README.txt
@@ -81,8 +81,15 @@ docker/
   `docker/scripts` contains scripts that the Docker image uses to manage Solr.
   Refer to the README.md for instructions on how to build an image.
 
-docs/index.html
-  A link to the online version of Apache Solr Javadoc API documentation and Tutorial
+CHANGELOG.md
+  The list of changes in this release.
+
+Online Documentation
+  The online version of Apache Solr Javadoc API documentation and Tutorial:
+  @SOLR_DOC_URL@
+
+  Changes in this release are also published there, at:
+  @SOLR_CHANGES_URL@
 
 licenses/
   Licenses, notice files and signatures for Solr dependencies.
diff --git a/solr/packaging/build.gradle b/solr/packaging/build.gradle
index bebfdb4057e..63c467388ef 100644
--- a/solr/packaging/build.gradle
+++ b/solr/packaging/build.gradle
@@ -15,6 +15,7 @@
  * limitations under the License.
  */
 
+import org.apache.tools.ant.filters.ReplaceTokens
 import org.apache.tools.ant.util.TeeOutputStream
 
 // This project puts together a "distribution", assembling dependencies from
@@ -33,6 +34,9 @@ ext {
   devDir = file("$buildDir/dev")
   slimDevDir = file("$buildDir/dev-slim")
   batsLibsDir = file("$buildDir/bats-libs")
+  onlineDocUnavailable = "Not available for custom/SNAPSHOT builds -- run './gradlew documentation' from the source distribution to build docs locally."
+  onlineDocUrl = (project.solrDocUrl ? "${project.solrDocUrl}/" : onlineDocUnavailable).toString()
+  onlineChangesUrl = (project.solrDocUrl ? "${project.solrDocUrl}/changes/Changes.html" : onlineDocUnavailable).toString()
 }
 
 configurations {
@@ -40,7 +44,6 @@ configurations {
   example
   crossDcManager
   server
-  docs
   docker
   solrFullTgz
   solrSlimTgz
@@ -58,9 +61,6 @@ dependencies {
   example project(path: ":solr:example", configuration: "packaging")
   server project(path: ":solr:server", configuration: "packaging")
 
-  // Copy files from documentation output
-  docs project(path: ':solr:documentation', configuration: 'minimalSite')
-
   docker project(path: ':solr:docker', configuration: 'packaging')
 
   solrFullTgzSignature files("$buildDir/distributions/solr-${version}.tgz.asc") {
@@ -92,6 +92,10 @@ distributions {
 
       from(projectDir, {
         include "README.txt"
+        filter(ReplaceTokens, tokens: [
+            SOLR_DOC_URL: onlineDocUrl,
+            SOLR_CHANGES_URL: onlineChangesUrl,
+        ])
       })
 
       from('static/lib', {
@@ -106,10 +110,6 @@ distributions {
         into "server"
       })
 
-      from(configurations.docs, {
-        into "docs"
-      })
-
       from(configurations.docker, {
         into "docker"
         filesMatching([