Skip to content

Commit c841c24

Browse files
authored
Fix selection of latest version (#271)
1 parent 7a4d9cc commit c841c24

File tree

3 files changed

+15
-38
lines changed

3 files changed

+15
-38
lines changed

doc/changes/unreleased.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
## 🐞 Fixed
1212

1313
* Fixed CD workflow template
14+
* Fixed the selection of the latest version in Multi-Version Documentation
1415

1516
## 📚 Documentation
1617

exasol/toolbox/sphinx/multiversion/main.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from sphinx import config as sphinx_config
2222
from sphinx import project as sphinx_project
2323

24+
from exasol.toolbox.release import Version as ExasolVersion
2425
from exasol.toolbox.sphinx.multiversion import (
2526
git,
2627
sphinx,
@@ -573,7 +574,12 @@ def _main(args, argv):
573574
with open(
574575
os.path.join(args.outputdir, "index.html"), "w", encoding="utf-8"
575576
) as f:
576-
ref = gitrefs[-1]
577-
f.write(template.render(version=ref.name))
577+
versions = [
578+
ref.name for ref in gitrefs if re.match(config.smv_tag_whitelist, ref.name)
579+
]
580+
versions = sorted(
581+
versions, key=lambda v: ExasolVersion.from_string(v), reverse=True
582+
)
583+
f.write(template.render(version=versions[0]))
578584

579585
return 0

exasol/toolbox/sphinx/multiversion/sphinx.py

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@
99
from sphinx.locale import _
1010
from sphinx.util import i18n as sphinx_i18n
1111

12-
from exasol.toolbox.version import VERSION
12+
from exasol.toolbox.release import Version as ExasolVersion
13+
from exasol.toolbox.version import VERSION as PLUGIN_VERSION
1314

1415
logger = logging.getLogger(__name__)
1516

1617
DATE_FMT = "%Y-%m-%d %H:%M:%S %z"
1718
DEFAULT_TAG_WHITELIST = r"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$"
18-
DEFAULT_BRANCH_WHITELIST = r"(master|main)"
19+
DEFAULT_BRANCH_WHITELIST = r"master|main"
1920
DEFAULT_REMOTE_WHITELIST = None
2021
DEFAULT_RELEASED_PATTERN = r"^tags/.*$"
2122
DEFAULT_OUTPUTDIR_FORMAT = r"{ref.name}"
@@ -42,37 +43,6 @@
4243
)
4344

4445

45-
class TagFormatError(Exception):
46-
"""
47-
Exception raised for errors in the tag format.
48-
49-
The exception is raised when a tag is found to be incorrectly formatted.
50-
"""
51-
52-
53-
class ExasolVersionTag:
54-
55-
def __init__(self, version):
56-
try:
57-
v = version.name.strip()
58-
parts = v.split(".")
59-
major, minor, patch = map(int, parts)
60-
except Exception as ex:
61-
msg = f"Invalid tag format: '{version}', details: {ex}"
62-
raise TagFormatError(msg) from ex
63-
64-
self._version = version
65-
self._version_tripple = (major, minor, patch)
66-
67-
@property
68-
def version(self):
69-
return self._version
70-
71-
@property
72-
def version_triple(self):
73-
return self._version_tripple
74-
75-
7646
class VersionInfo:
7747
def __init__(self, app, context, metadata, current_version_name):
7848
self.app = app
@@ -129,7 +99,7 @@ def in_development(self):
12999
def __iter__(self):
130100
yield from self.branches
131101
yield from sorted(
132-
self.tags, key=lambda t: ExasolVersionTag(t).version_triple, reverse=True
102+
self.tags, key=lambda t: ExasolVersion.from_string(t.name), reverse=True
133103
)
134104

135105
def __getitem__(self, name):
@@ -268,7 +238,7 @@ def setup(app):
268238
app.add_config_value("smv_metadata", {}, "html")
269239
app.add_config_value("smv_metadata_path", "", "html")
270240
app.add_config_value("smv_current_version", "", "html")
271-
app.add_config_value("smv_latest_version", "master", "html")
241+
app.add_config_value("smv_latest_version", "main", "html")
272242
app.add_config_value("smv_tag_whitelist", DEFAULT_TAG_WHITELIST, "html")
273243
app.add_config_value("smv_branch_whitelist", DEFAULT_BRANCH_WHITELIST, "html")
274244
app.add_config_value("smv_remote_whitelist", DEFAULT_REMOTE_WHITELIST, "html")
@@ -283,7 +253,7 @@ def setup(app):
283253
app.connect("config-inited", config_inited)
284254

285255
return {
286-
"version": VERSION,
256+
"version": PLUGIN_VERSION,
287257
"parallel_read_safe": True,
288258
"parallel_write_safe": True,
289259
}

0 commit comments

Comments
 (0)