fix(fern): build release snapshots from tagged commits - #11140
Conversation
Signed-off-by: Neal Vaidya <nealv@nvidia.com>
This comment has been minimized.
This comment has been minimized.
Signed-off-by: Neal Vaidya <nealv@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (2)
WalkthroughThis PR fixes the Fern ChangesTag-based version release rebuild
Estimated code review effort: 4 (Complex) | ~60 minutes Related issues: Fixes docs(fern) version snapshots being built from Suggested labels: documentation, ci, fern Suggested reviewers: none identified 🐰 A tag once cut, a page once built, 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Comment |
Signed-off-by: Neal Vaidya <nealv@nvidia.com>
|
@coderabbitai review |
✅ Action performedReview finished.
|
dmitry-tokarev-nv
left a comment
There was a problem hiding this comment.
Automated review — PR #11140
Reworks the release-version job to build the version snapshot from the tagged commit's docs/ (via a new source-checkout) instead of pages-dev, adds a force_rebuild dispatch input and a pre-publish validation gate (inventory diff + nav-target existence + fern check), and adds fern/release_dryrun.sh to reproduce the job locally. Core mechanics look sound — the rsync exclusions and yq path transforms are byte-identical to the proven dev-sync path, and the yq ${1} capture works. The notes below are robustness/fidelity gaps, not miscompiles; most are attached inline.
Also: no concurrency group / no push retry (workflow-level — no clean inline anchor)
release-version checks out docs-website at job start and ends with git push origin docs-website, with no concurrency: group anywhere in the workflow and no git pull --rebase/retry. If two version tags land close together (or a tag push overlaps a workflow_dispatch), both jobs branch from the same head and the second push is rejected non-fast-forward — that version's snapshot never reaches docs-website and needs a manual re-run. Consider a concurrency: { group: fern-release-docs-website, cancel-in-progress: false } and/or a rebase-and-retry around the push. (Pre-existing, but this PR rewrites the whole job.)
Considered and dropped
The ^([a-zA-Z]) rewrite skipping non-letter paths (all current index.yml paths start with letters); the inventory-diff vs rsync digest-depth mismatch (no nested digest/ exists); fern-api@…@null (version key present); and the HAVE_FERN asdf/volta detection gap (cosmetic).
Co-authored-by: Dmitry Tokarev <dtokarev@nvidia.com> Signed-off-by: Neal Vaidya <neal098@gmail.com>
dmitry-tokarev-nv
left a comment
There was a problem hiding this comment.
Nice one!
Thank you for resolving all comments too
Restore the maintainer-authored release-job properties dropped by the docs restructure (tag-faithful snapshots per ai-dynamo#11140, release snapshot validation, force_rebuild recovery, pinned fern-api, SHA-pinned setup-node), retarget the dependency-bump automation from the deleted support-matrix.md to releases.data.ts, retire build_install_selector.py in favor of the new install-selector data flow, install node-ical via npm ci against a committed lockfile, add SRI pins to the asciinema player assets, and fix change detection so new-file-only syncs (e.g. a new locale) still publish. Signed-off-by: Dan Gil <dagil@nvidia.com>
Summary
pages-devanddev.ymlforce_rebuildpath plus tagged-inventory, navigation-target, and Fern configuration checks before commit/publishfern/and update the docs workflow guidanceThe previous workflow checked out only
docs-website, so a release tag could publish whatever content happened to be onmainunder the version label. This change checks out the requested tag alongsidedocs-website, uses the tag's raw docs, navigation, and converter, and converts callouts exactly once.This PR does not force-rebuild any existing snapshot. Historical repository-relative link debt and any curated
v1.2.1redirects will be handled separately.Fixes #11135
Validation
PYTHON=.venv/bin/python fern/release_dryrun.sh v1.2.1fern check— 0 errorsfern docs broken-links— passedbash -n fern/release_dryrun.shcodespellon changed docs and shell filesnpm testin.github/scripts— 20/20 filter tests passedfern/release_dryrun.shmatches the existingdocs: fern/**CI filtergit diff --checkSummary by CodeRabbit
New Features
Bug Fixes
Documentation