Skip to content

feat(ci): add release-notes version drift check (Stage 0) - #7553

Merged
jstirnaman merged 5 commits into
masterfrom
claude/github-actions-product-release-check-y6ycqr
Jul 23, 2026
Merged

feat(ci): add release-notes version drift check (Stage 0)#7553
jstirnaman merged 5 commits into
masterfrom
claude/github-actions-product-release-check-y6ycqr

Conversation

@jstirnaman

Copy link
Copy Markdown
Contributor

Summary

Closes #

Adds a PR check that guards against version drift: when a product's release
notes gain a new ## vX.Y.Z heading but data/products.yml is not bumped. That
version feeds the {{< latest-patch >}} shortcode, which builds every
dl.influxdata.com download URL and the versions in install/code examples — so a
missed bump silently points the docs at the previous release, with no signal.
(Verified against the live repo: the v3.10.3 release commit 848a6ba added notes
only, with no safeguard.)

What this adds (Stage 0):

  • .ci/scripts/check-release-notes-version.js (+ .test.js) — compares each
    product's newest release-notes heading to data/products.yml, handling both the
    scalar latest_patch and the map latest_patches.<version> shapes. Non-blocking
    reminder; every product is checked and reported — Telegraf included (it
    normally reports ✅ because its internal automation keeps the value in sync, and a
    mismatch would flag a regression there).
  • .github/workflows/pr-release-check.yml — posts the reminder as a sticky PR
    comment (change detection via git diff, not the flaky Files API), plus a
    release-readiness gate that, only on a real version bump, blocks merge if the
    new version's download artifacts aren't published yet. Override with the
    release:artifacts-pending label when docs are intentionally staged ahead.
  • .github/workflows/pr-link-check.yml — now also checks the download/install
    pages when data/products.yml changes, closing the gap where a version-only PR
    never re-checked those URLs.
  • .agents/skills/docs-testing/SKILL.md — documents both in the CI table.
  • docs/exec-plans/2026-07-21-release-notes-version-drift-check.md — decision
    record covering Stage 0 and the Stage 1–4 roadmap toward source-driven docs that
    prevent drift entirely (the Telegraf model, now feasible for Core/Enterprise/Cloud
    since they share one source repo).

Also reminds authors they can badge new-feature pages with the existing
frontmatter mechanism (metadata: / updated_in: / introduced:) — the same
badge the v3.10.3 feature pages did not use.

Opened as draft. This is Stage 0 of a staged effort; Stages 1–4 (auto-bump,
release-triggered PRs, single-source-of-truth, generated reference docs) are
documented in the exec-plan and are out of scope here.

Verification

node .ci/scripts/check-release-notes-version.test.js   # 8/8 pass
node .ci/scripts/check-release-notes-version.js         # all products ✅ in sync
yarn build:agent:instructions && yarn validate:agent-instructions  # clean

Both workflows parse as valid YAML; all third-party actions are pinned by commit
SHA per repo policy.

Checklist

🤖 Generated with Claude Code


Generated by Claude Code

Guard against the silent mismatch where a product's release notes gain a
new ## vX.Y.Z heading but data/products.yml is not bumped. That version
feeds the {{< latest-patch >}} shortcode, which builds every
dl.influxdata.com download URL and the versions in install/code examples,
so a missed bump points the docs at the previous release with no signal.

- .ci/scripts/check-release-notes-version.js (+ .test.js): per-product
  comparison of the newest release-notes heading to data/products.yml,
  handling both latest_patch (scalar) and latest_patches.<version> (map).
  Non-blocking reminder; every product is checked and reported, Telegraf
  included (it normally reports success).
- .github/workflows/pr-release-check.yml: posts the reminder as a sticky
  PR comment, plus a release-readiness gate that (only on a real version
  bump) blocks merge if the new version's download artifacts are not yet
  published (override label release:artifacts-pending).
- .github/workflows/pr-link-check.yml: also check download/install pages
  when data/products.yml changes, closing the gap where a version-only PR
  never re-checked those URLs.
- .agents/skills/docs-testing/SKILL.md: document both in the CI table.
- docs/exec-plans/2026-07-21-release-notes-version-drift-check.md: decision
  record covering Stage 0 and the Stage 1-4 roadmap toward source-driven
  docs that prevent drift entirely.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016JkswEKi4G5xbCJ5T6Aj1k
@github-actions

Copy link
Copy Markdown
Contributor

Release version check

No release-notes pages with a tracked version changed in this PR.

💡 Badge new features with the version

Documenting a new feature? Add a version badge in the page frontmatter — the
same mechanism used elsewhere in the docs:

  • metadata: [InfluxDB 3 Core v3.11+] — badge list under the page title
  • updated_in: v3.11 — an "Updated in v3.11" badge
  • introduced: v3.11 — a "‹Product› v3.11+" badge
  • menu.params.state: new — a "NEW" pill on the sidebar nav item

For inline version text, use {{< latest-patch >}} / {{< current-version >}},
which read the value from data/products.yml so it stays correct automatically.

@jstirnaman
jstirnaman requested a review from Copilot July 22, 2026 16:59
@jstirnaman
jstirnaman marked this pull request as ready for review July 22, 2026 17:00
@jstirnaman
jstirnaman requested a review from a team as a code owner July 22, 2026 17:00
@jstirnaman
jstirnaman requested review from sanderson and removed request for a team July 22, 2026 17:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds CI safeguards for release-note and product-version drift, plus artifact-readiness checks.

Changes:

  • Adds release-version comparison logic and tests.
  • Adds release artifact and expanded link-check workflows.
  • Documents testing and future automation plans.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
.ci/scripts/check-release-notes-version.js Implements version drift detection.
.ci/scripts/check-release-notes-version.test.js Tests comparison and mapping logic.
.github/workflows/pr-release-check.yml Adds reminders and artifact gating.
.github/workflows/pr-link-check.yml Expands checks after product-version changes.
.agents/skills/docs-testing/SKILL.md Documents the new CI checks.
docs/exec-plans/2026-07-21-release-notes-version-drift-check.md Records decisions and roadmap.

Comment thread .ci/scripts/check-release-notes-version.js
Comment thread .github/workflows/pr-release-check.yml Outdated
Comment thread .github/workflows/pr-release-check.yml Outdated
Comment thread .github/workflows/pr-release-check.yml Outdated
Comment thread .github/workflows/pr-link-check.yml Outdated
Comment thread .github/workflows/pr-release-check.yml Outdated
jstirnaman and others added 3 commits July 23, 2026 16:42
…-blocking

Addresses the Copilot review on #7553:

- check-release-notes-version.js: compare Core/Enterprise per edition against
  the shared v3 release-notes file. parseEditionVersions() strips HTML comments
  and takes the newest live "### Core" / "### Enterprise" section, so an
  Enterprise-only release (Core section commented out) no longer flags Core to
  bump to an unpublished version. (#1)
- detect-version-bump.js (new): precise latest_patch/latest_patches value diff,
  so unrelated v1:/v2: keys (oss_repo.branch, content_path, label_group,
  latest_cli) no longer trigger the release reminder. (#2)
- pr-link-check.yml: detect the data/products.yml change via git diff over the
  full PR range, not the unpaginated Files API list (30-file cap). (#3)
- pr-release-check.yml: the artifact check is now a non-blocking reminder, not a
  merge gate — removing the fail-open jq fallback (#4), the unrelated-product
  checks (#5), and the all-links-not-just-artifacts behavior (#6). Download-URL
  health stays with pr-link-check.yml.
- exec-plan / SKILL.md: updated to reflect non-blocking reminders; also lands the
  remark-lint emphasis fix.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016JkswEKi4G5xbCJ5T6Aj1k
@jstirnaman
jstirnaman merged commit 2453ff4 into master Jul 23, 2026
14 checks passed
@jstirnaman
jstirnaman deleted the claude/github-actions-product-release-check-y6ycqr branch July 23, 2026 23:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants