mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-07-03 14:09:24 +00:00
fix: cut docs version nav from Edge so new pages aren't dropped (#6349)
* fix: freeze docs version nav from Edge instead of previous release The docs cut copied every Edge file into the new `docs/v<X.Y.Z>/` snapshot but built that version's `docs.json` navigation by cloning the previous frozen release and only rewriting path prefixes. Pages added to Edge since the last release were therefore copied to disk yet never linked in the version selector, which is why the v1.15.0 cut shipped without the Datadog guide. `_build_new_entry` now clones the Edge nav entry and rewrites `edge/<locale>/` to `v<new>/<locale>/`, so promoting Edge to Latest carries every current page and nav restructuring. * docs: link the v1.15.0 Datadog guide dropped during the cut The v1.15.0 freeze copied `enterprise/guides/datadog` into the snapshot for every locale but never linked it in `docs.json`, because the cut cloned the v1.14.7 nav instead of Edge. This backfills the missing nav reference in the `en`, `pt-BR`, `ko`, and `ar` v1.15.0 blocks so the already-shipped page is reachable from the version selector. Pairs with the `_build_new_entry` fix that prevents future cuts from dropping pages. * docs: link the v1.15.1 Datadog guide dropped during the cut The v1.15.1 cut ran before the freeze-from-Edge fix landed, so it inherited the same bug as v1.15.0: `enterprise/guides/datadog` was copied into the snapshot for every locale but never linked in `docs.json`. This backfills the missing nav reference in the `en`, `pt-BR`, `ko`, and `ar` v1.15.1 blocks so the page is reachable from the version selector.
This commit is contained in:
@@ -31,6 +31,10 @@ def _build_docs_root(tmp_path: Path) -> Path:
|
||||
(edge_en / "api.mdx").write_text(
|
||||
'---\nopenapi: "/enterprise-api.en.yaml GET /foo"\n---\n'
|
||||
)
|
||||
# A page added to Edge after the previous release. It exists as a file and
|
||||
# is wired into the Edge nav, but is intentionally absent from the v1.14.7
|
||||
# nav below — the freeze must still surface it in the new version.
|
||||
(edge_en / "datadog.mdx").write_text("# Datadog (Edge)\n")
|
||||
(docs / "edge" / "enterprise-api.en.yaml").write_text("openapi: 3.0.0\n")
|
||||
|
||||
# A pre-existing frozen snapshot to clone the nav structure from.
|
||||
@@ -58,6 +62,7 @@ def _build_docs_root(tmp_path: Path) -> Path:
|
||||
"edge/en/introduction",
|
||||
"edge/en/changelog",
|
||||
"edge/en/api",
|
||||
"edge/en/datadog",
|
||||
],
|
||||
}
|
||||
],
|
||||
@@ -146,6 +151,25 @@ class TestFreeze:
|
||||
assert "default" not in previous
|
||||
assert previous.get("tag") != "Latest"
|
||||
|
||||
def test_new_version_nav_is_cloned_from_edge_not_previous(
|
||||
self, tmp_path: Path
|
||||
) -> None:
|
||||
# Regression: the new version's nav must come from Edge so pages added
|
||||
# to Edge since the last release ship in the freeze. Cloning the
|
||||
# previous version's nav silently dropped them (the file was copied
|
||||
# into the snapshot but never linked in the version selector).
|
||||
docs = _build_docs_root(tmp_path)
|
||||
|
||||
freeze("1.15.0", docs)
|
||||
|
||||
data = json.loads((docs / "docs.json").read_text())
|
||||
versions = data["navigation"]["languages"][0]["versions"]
|
||||
new_entry = next(v for v in versions if v["version"] == "v1.15.0")
|
||||
pages = [p for tab in new_entry["tabs"] for p in tab["pages"]]
|
||||
assert "v1.15.0/en/datadog" in pages
|
||||
# And the file is present in the snapshot it points at.
|
||||
assert (docs / "v1.15.0" / "en" / "datadog.mdx").is_file()
|
||||
|
||||
def test_updates_canonical_url_redirect_to_new_default(
|
||||
self, tmp_path: Path
|
||||
) -> None:
|
||||
|
||||
Reference in New Issue
Block a user