Skip to content

Commit 4f12395

Browse files
authored
docs: Stop hard-coding Comet version in docs (#2326)
* Stop hard-coding Comet version in docs * prep for review * add warning for out-of-date docs * add warning for out-of-date docs * fix * save * fix
1 parent 0e89a57 commit 4f12395

File tree

6 files changed

+72
-17
lines changed

6 files changed

+72
-17
lines changed

docs/generate-versions.py

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,65 @@
2323
# of Comet
2424

2525
import os
26+
from pathlib import Path
2627

27-
for version in ["0.8", "0.9"]:
28-
os.system(f"git clone --depth 1 https://github.com/apache/datafusion-comet.git -b branch-{version} comet-{version}")
29-
os.system(f"mkdir temp/user-guide/{version}")
30-
os.system(f"cp -rf comet-{version}/docs/source/user-guide/* temp/user-guide/{version}")
28+
def get_major_minor_version(version: str):
29+
parts = version.split('.')
30+
return f"{parts[0]}.{parts[1]}"
31+
32+
def replace_in_files(root: str, filename_pattern: str, search: str, replace: str):
33+
root_path = Path(root)
34+
for file in root_path.rglob(filename_pattern):
35+
text = file.read_text(encoding="utf-8")
36+
updated = text.replace(search, replace)
37+
if text != updated:
38+
file.write_text(updated, encoding="utf-8")
39+
print(f"Replaced {search} with {replace} in {file}")
40+
41+
def insert_warning_after_asf_header(root: str, warning: str):
42+
root_path = Path(root)
43+
for file in root_path.rglob("*.md"):
44+
lines = file.read_text(encoding="utf-8").splitlines(keepends=True)
45+
new_lines = []
46+
inserted = False
47+
for line in lines:
48+
new_lines.append(line)
49+
if not inserted and "-->" in line:
50+
new_lines.append(warning + "\n")
51+
inserted = True
52+
file.write_text("".join(new_lines), encoding="utf-8")
53+
54+
def publish_released_version(version: str):
55+
major_minor = get_major_minor_version(version)
56+
os.system(f"git clone --depth 1 https://github.com/apache/datafusion-comet.git -b branch-{major_minor} comet-{major_minor}")
57+
os.system(f"mkdir temp/user-guide/{major_minor}")
58+
os.system(f"cp -rf comet-{major_minor}/docs/source/user-guide/* temp/user-guide/{major_minor}")
59+
# Replace $COMET_VERSION with actual version
60+
for file_pattern in ["*.md", "*.rst"]:
61+
replace_in_files(f"temp/user-guide/{major_minor}", file_pattern, "$COMET_VERSION", version)
62+
63+
def generate_docs(snapshot_version: str, latest_released_version: str, previous_versions: list[str]):
64+
65+
# Replace $COMET_VERSION with actual version for snapshot version
66+
for file_pattern in ["*.md", "*.rst"]:
67+
replace_in_files(f"temp/user-guide/latest", file_pattern, "$COMET_VERSION", snapshot_version)
68+
69+
# Add user guide content for latest released versions
70+
publish_released_version(latest_released_version)
71+
72+
# Add user guide content for older released versions
73+
for version in previous_versions:
74+
publish_released_version(version)
75+
# add warning that this is out-of-date documentation
76+
warning = f"""```{{warning}}
77+
This is **out-of-date** documentation. The latest Comet release is version {latest_released_version}.
78+
```"""
79+
major_minor = get_major_minor_version(version)
80+
insert_warning_after_asf_header(f"temp/user-guide/{major_minor}", warning)
81+
82+
if __name__ == "__main__":
83+
print("Generating versioned user guide docs...")
84+
snapshot_version = "0.10.0-SNAPSHOT"
85+
latest_released_version = "0.9.1"
86+
previous_versions = ["0.8.0"]
87+
generate_docs(snapshot_version, latest_released_version, previous_versions)

docs/source/user-guide/0.8/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
Comet 0.8.x User Guide
2323
=======================
2424

25-
.. _toc.user-guide-links-08:
25+
.. _toc.user-guide-links-$COMET_VERSION:
2626
.. toctree::
2727
:maxdepth: 1
28-
:caption: Comet 0.8.x User Guide
28+
:caption: Comet $COMET_VERSION User Guide
2929

3030
Installing Comet <installation>
3131
Building From Source <source>

docs/source/user-guide/0.9/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
Comet 0.9.x User Guide
2323
=======================
2424

25-
.. _toc.user-guide-links-09:
25+
.. _toc.user-guide-links-$COMET_VERSION:
2626
.. toctree::
2727
:maxdepth: 1
28-
:caption: Comet 0.9.x User Guide
28+
:caption: Comet $COMET_VERSION User Guide
2929

3030
Installing Comet <installation>
3131
Building From Source <source>

docs/source/user-guide/latest/iceberg.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ make release
3939
Set `COMET_JAR` env var:
4040

4141
```shell
42-
export COMET_JAR=`pwd`/spark/target/comet-spark-spark3.5_2.12-0.10.0-SNAPSHOT.jar
42+
export COMET_JAR=`pwd`/spark/target/comet-spark-spark3.5_2.12-$COMET_VERSION.jar
4343
```
4444

4545
## Build Iceberg

docs/source/user-guide/latest/index.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
:alt: DataFusion Comet Logo
2020

2121
================================
22-
Comet 0.10.0-SNAPSHOT User Guide
22+
Comet $COMET_VERSION User Guide
2323
================================
2424

25-
.. _toc.user-guide-links-latest:
25+
.. _toc.user-guide-links-$COMET_VERSION:
2626
.. toctree::
2727
:maxdepth: 1
28-
:caption: Comet 0.10.0-SNAPSHOT User Guide
28+
:caption: Comet $COMET_VERSION User Guide
2929

3030
Installing Comet <installation>
3131
Building From Source <source>

docs/source/user-guide/latest/installation.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ Make sure the following requirements are met and software installed on your mach
3030

3131
### Supported Spark Versions
3232

33-
Comet currently supports the following versions of Apache Spark. Note that this documentation is for the main
34-
branch. Please refer to the version of this documentation in the appropriate GitHub release branch for released
35-
Comet versions.
33+
Comet $COMET_VERSION supports the following versions of Apache Spark.
3634

3735
We recommend only using Comet with Spark versions where we currently have both Comet and Spark tests enabled in CI.
3836
Other versions may work well enough for development and evaluation purposes.
@@ -84,7 +82,7 @@ See the [Comet Kubernetes Guide](kubernetes.md) guide.
8482
Make sure `SPARK_HOME` points to the same Spark version as Comet was built for.
8583

8684
```shell
87-
export COMET_JAR=spark/target/comet-spark-spark3.5_2.12-0.10.0-SNAPSHOT.jar
85+
export COMET_JAR=spark/target/comet-spark-spark3.5_2.12-$COMET_VERSION.jar
8886

8987
$SPARK_HOME/bin/spark-shell \
9088
--jars $COMET_JAR \
@@ -140,7 +138,7 @@ explicitly contain Comet otherwise Spark may use a different class-loader for th
140138
components which will then fail at runtime. For example:
141139

142140
```
143-
--driver-class-path spark/target/comet-spark-spark3.5_2.12-0.10.0-SNAPSHOT.jar
141+
--driver-class-path spark/target/comet-spark-spark3.5_2.12-$COMET_VERSION.jar
144142
```
145143

146144
Some cluster managers may require additional configuration, see <https://spark.apache.org/docs/latest/cluster-overview.html>

0 commit comments

Comments
 (0)