diff --git a/.env b/.env index 4550c22ff..070e7f471 100644 --- a/.env +++ b/.env @@ -12,7 +12,7 @@ PROJECT_NAME="airstack" # If you've run ./airstack.sh setup, then this will auto-generate from the git commit hash every time a change is made # to a Dockerfile or docker-compose.yaml file. Otherwise this can also be set explicitly to make a release version. # auto-generated from git commit hash -VERSION="0.20.7" +VERSION="0.20.8" # Image-tag discriminator ONLY (appears in the image tag suffix, e.g. ..._robot-x86-64_dev). # No Dockerfile consumes it: "prebuilt" does NOT bake the built ros_ws into the image today — # a real prebuilt (workspace-baked) stage is future work. Keep "dev" (mounted code, built live). diff --git a/docs/release_notes/index.md b/docs/release_notes/index.md index 5cc036570..5fb6e7398 100644 --- a/docs/release_notes/index.md +++ b/docs/release_notes/index.md @@ -21,6 +21,17 @@ its own notes. --> - Nothing yet. +## 0.20.8 — 2026-09-04 + +- **Docs builds no longer copy AirSim scene binaries.** The `same-dir` + plugin publishes the whole repo tree as site content, and the downloaded + Microsoft AirSim UE4 scenes (`simulation/ms-airsim/assets/scenes/`) and + environments (`simulation/ms-airsim/environments/`) were not excluded — + every `mkdocs build` or `docs serve` on a machine with scenes fetched + copied ~15 GB of Unreal `.debug` binaries and zips into the site + directory. Both directories are now listed in `exclude_docs`. No pages or + links referenced them. + ## 0.20.7 — 2026-08-30 - **Fixed 404s on every README-sourced docs page.** The `exclude_docs` diff --git a/mkdocs.yml b/mkdocs.yml index 06db3374d..99460b788 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -20,6 +20,11 @@ exclude_docs: | **/ros_ws/install **/kit-app-template/** **/isaac_sim_data/** + # Downloaded AirSim UE4 scene binaries (fetched by assets/scenes/fetch_scene.sh) + # and environments: multi-GB, gitignored, never doc content. Without this the + # same-dir plugin copies them into every site build (~15 GB per build). + simulation/ms-airsim/assets/scenes/** + simulation/ms-airsim/environments/** # Fetched module checkouts (RFC #379 §9): the docs deploy workflows clone the # registry index + each registered module repo into the gitignored modules/ # dir. Their content is linked from docs/modules/ (generated by diff --git a/tests/meta/test_docs_catalog_contract.py b/tests/meta/test_docs_catalog_contract.py index 91dc24143..5db415e28 100644 --- a/tests/meta/test_docs_catalog_contract.py +++ b/tests/meta/test_docs_catalog_contract.py @@ -151,7 +151,12 @@ def test_module_pages_carry_the_contracted_sections(): def _load_mkdocs() -> dict: - """Parse mkdocs.yml, tolerating the !!python/name superfences tag.""" + """Parse mkdocs.yml, tolerating the tags MkDocs resolves at load time. + + ``!!python/name:`` (pymdownx superfences) collapses to the dotted name; + mkdocs' ``!ENV`` (``!ENV VAR`` or ``!ENV [VAR, default]``) collapses to + the default (or None), so a bare SafeLoader does not choke on it. + """ class Loader(yaml.SafeLoader): pass @@ -159,6 +164,14 @@ class Loader(yaml.SafeLoader): Loader.add_multi_constructor( "tag:yaml.org,2002:python/name:", lambda loader, suffix, node: suffix ) + + def _env_tag(loader, node): + if isinstance(node, yaml.SequenceNode): + values = loader.construct_sequence(node) + return values[-1] if len(values) > 1 else None + return None + + Loader.add_constructor("!ENV", _env_tag) return yaml.load(MKDOCS_YML.read_text(), Loader=Loader)