Skip to content

docs(releases): the index's v17 entry still says "current series: 17.2.0" after 17.3.0 shipped — the #10232 / #11649 defect class recurring a third time #15332

Description

@hotlong

Found while writing the 17.2.0 / 17.3.0 release-note sections for #15322. Left out of that PR because its dispatch scopes the diff to two files; filed here rather than fixed as a rider.

The finding

content/docs/releases/index.mdx:21 ends its v17 entry with:

... (current series: 17.2.0, released 2026-08-23).

17.3.0 was published to latest on 2026-09-04 (version commit 8a1bad8b8, 69 packages). A reader arriving at the release index is told the current series is one release behind.

It is already gated, and the gate is already red

node scripts/check-release-section-coverage.mjs --strict names it:

  - content/docs/releases/index.mdx: the v17 entry's status reads "current series: 17.2.0,
    released 2026-08-23", but the newest released 17.x version is 17.3.0. The sibling gate
    only rejects a PRE-RELEASE here, so a superseded STABLE version passes it ...
    Name the newest release.

Measured on objectstack-ai/objectstack at eb40a7210: the strict sweep reports 2 findings there — this one and the missing v17.3 section on v17.mdx. On the #15322 branch (c13400b5f) it reports 1: the v17.mdx half is closed, this half is not.

⚠️ The PR-blocking form does not see it. lint.yml runs the gate WITHOUT --strict (.github/workflows/lint.yml:2728-2729) and it exits 0; only release-coverage-patrol.yml:203 runs --strict. So this reaches main green on every PR and is caught only by the standing patrol.

Why this is worth a card rather than a one-line fix

This is the third instance of one defect class, and the previous two were also caught after the fact rather than at release time:

Three occurrences on three consecutive minors is a producer problem, not three authoring slips. The sentence is derived data — the newest released 17.x is already readable from packages/*/CHANGELOG.md, which is exactly where the gate reads it from to produce the finding. Two directions worth weighing when this is triaged:

  1. Stamp it at version time, the way check:docs-image-tag is already kept true by scripts/ at version time (e569cac32 did this for the docs image tag), so the sentence cannot go stale.
  2. Promote the --strict arm into lint.yml, so a superseded stable version blocks a PR rather than waiting for the patrol. Note this direction has a cost the ruling should see: --strict also fails on a release page that has no section for a just-published train, which would red every PR in the window between a version commit and its release-notes PR.

⛔ Not proposing either here — this card records the recurrence and the measurement; the choice is a maintainer call.

Repro

node scripts/check-release-section-coverage.mjs --strict; echo "EXIT=$?"

Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions