diff --git a/.github/workflows/cli-consistency.yml b/.github/workflows/cli-consistency.yml index ba0edc6..ff97cab 100644 --- a/.github/workflows/cli-consistency.yml +++ b/.github/workflows/cli-consistency.yml @@ -10,6 +10,10 @@ on: # sdk-and-plugins as much as in the command reference. A narrower filter # means a PR can add a broken invocation and never run this job. - 'docs/**' + # The repo-root README is a docs surface too, and it is the one GitHub + # shows first. It is now swept for version claims, so a change to it must + # run this job. + - 'README.md' - 'scripts/check_cli_docs.py' - 'scripts/check_providers.py' - 'scripts/cli-docs-allowlist.yml' diff --git a/README.md b/README.md index 88755df..b5d05ad 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ Fluid Forge is a contract-first CLI for building, validating, and deploying data ## Current Versioning -- Current CLI release documented here: `0.8.11` -- Current scaffolded contract schema examples: `fluidVersion: 0.7.4` +- Current CLI release documented here: `0.15.0` +- Current scaffolded contract schema examples: `fluidVersion: 0.7.5` Those are different on purpose. `fluid version` reports the installed CLI release, while `fluidVersion` inside a contract selects the contract schema version. diff --git a/scripts/check_cli_docs.py b/scripts/check_cli_docs.py index 3588a23..ae9acdc 100644 --- a/scripts/check_cli_docs.py +++ b/scripts/check_cli_docs.py @@ -333,6 +333,14 @@ def _iter_doc_files(root: Path) -> list[Path]: if _SKIP_DIR_PARTS & set(path.relative_to(root).parts): continue out.append(path) + # The repo-root README is a docs surface with the widest audience of all - + # it is what GitHub shows first - but it lives outside docs/, so the sweep + # never saw it. It sat seven releases stale (0.8.11 against a 0.15.0 pin) + # while every in-tree page was green. + if root == DOCS_DIR: + root_readme = REPO_ROOT / "README.md" + if root_readme.is_file(): + out.append(root_readme) return out @@ -831,7 +839,10 @@ def check_doc_flags(allowlist: set[str]) -> int: ), ( "CLI release bullet", - re.compile(r"(?i)^\s*[-*]\s*CLI\s+release\s*" + _V), + # Tolerates words between "CLI release" and the version - the repo-root + # README writes "Current CLI release documented here: `x.y.z`", which the + # tighter form missed, letting it sit seven releases stale. + re.compile(r"(?i)^\s*[-*]\s*(?:current\s+)?CLI\s+release\b[^.\n]{0,32}?" + _V), "cli", ), (