feat(ci): add release-notes version drift check (Stage 0) - #7553
Merged
jstirnaman merged 5 commits intoJul 23, 2026
Conversation
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
Contributor
Release version checkNo release-notes pages with a tracked version changed in this PR. 💡 Badge new features with the versionDocumenting a new feature? Add a version badge in the page frontmatter — the
For inline version text, use |
Contributor
There was a problem hiding this comment.
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. |
…-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
deleted the
claude/github-actions-product-release-check-y6ycqr
branch
July 23, 2026 23:48
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #
Adds a PR check that guards against version drift: when a product's release
notes gain a new
## vX.Y.Zheading butdata/products.ymlis not bumped. Thatversion feeds the
{{< latest-patch >}}shortcode, which builds everydl.influxdata.comdownload URL and the versions in install/code examples — so amissed bump silently points the docs at the previous release, with no signal.
(Verified against the live repo: the v3.10.3 release commit
848a6baadded notesonly, with no safeguard.)
What this adds (Stage 0):
.ci/scripts/check-release-notes-version.js(+.test.js) — compares eachproduct's newest release-notes heading to
data/products.yml, handling both thescalar
latest_patchand the maplatest_patches.<version>shapes. Non-blockingreminder; 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 PRcomment (change detection via
git diff, not the flaky Files API), plus arelease-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-pendinglabel when docs are intentionally staged ahead..github/workflows/pr-link-check.yml— now also checks the download/installpages when
data/products.ymlchanges, closing the gap where a version-only PRnever 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— decisionrecord 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 samebadge 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
Both workflows parse as valid YAML; all third-party actions are pinned by commit
SHA per repo policy.
Checklist
npx hugo --quiet)🤖 Generated with Claude Code
Generated by Claude Code