Skip to content

πŸ“ docs(release): prepare v1.6.0-rc.6#602

Merged
scttbnsn merged 3 commits into
dev/v1.6from
docs/v1.6-rc6-changelog
Jul 26, 2026
Merged

πŸ“ docs(release): prepare v1.6.0-rc.6#602
scttbnsn merged 3 commits into
dev/v1.6from
docs/v1.6-rc6-changelog

Conversation

@scttbnsn

@scttbnsn scttbnsn commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Prepares the release surfaces for cutting v1.6.0-rc.6. No runtime code changes.

Why now

rc.5 was cut on 2026-07-23. Since then dev/v1.6 picked up #587, the maturity-cleared notification β€” a new feature, not a fix, with a new maturity-policy model, ~170 lines in Trigger.ts, ~100 in store/container.ts, and a new background sweep on a new DD_MATURITY_SWEEP_CRON default. On top of that the delta carries a full dependency bump wave across all six lockfiles plus a Crowdin translation resync.

That's too much unsoaked change to take straight to GA, so it gets an RC first.

What's here

Changelog. Promotes [Unreleased] to [1.6.0-rc.6] β€” 2026-07-26 so release-cut.yml's CHANGELOG validation resolves an entry for the tag, and backfills the rest of the delta since rc.5: the dependency wave, the translation resync, and the three CI/repo fixes (#599, #594, #593) that landed without changelog entries of their own.

Release identity. The usual 16-file bump: version badge, site-config.ts, the roadmap entry in site-content.ts, demo mock fixtures, the API doc response samples, the quickstart tag matrix, a new highlights section on the updates page, and the three pinned identity tests under scripts/.

All eight version files that release-cut.yml checks already sit at the 1.6.0 base, so no package.json bump is needed for this RC.

Verification

  • node --test scripts/*.test.mjs β€” 133 pass, 0 fail
  • Full pre-push gate green end to end: qlty, qlty-smells, scripts-test, workflow-tests, typecheck-ui, web-scripts-test, coverage (230s), build, zizmor
  • main and dev/v1.6 trees were in sync before this branch, so the pre-cut drift guard only needs the one sync after merge

Changelog

✨ Added

  • Added v1.6.0-rc.6 highlights (maturity-cleared notifications, dependency + translation resync, CI scripting robustness) for July 26, 2026.

πŸ”§ Changed

  • Promoted the v1.6.0-rc.6 release surface by updating version identity references from v1.6.0-rc.5 β†’ v1.6.0-rc.6 across README, site config/content, roadmap/demo content, API documentation samples, quickstart tags, and the updates page.
  • Updated mock/demo data to report 1.6.0-rc.6 consistently (agent, audit, container, server, and API handler fixtures).
  • Refactored release identity assertions in release tests to derive current RC expectations from RC_VERSION, added PREV_RC_VERSION for changelog compare-chain links, and ensured archived release references remain literal.
  • Updated changelog compare link expectations for the RC series to use v1.6.0-rc.6 as the chain head and added the v1.6.0-rc.6 expected compare range (v1.6.0-rc.5...v1.6.0-rc.6).
  • Tightened quickstart/version negative-match logic via dynamically constructed regexes and validation that RC_VERSION matches -rc.<number> before deriving prefix/number.

Concerns

  • Ensure changelog entry content/date (β€œUnreleased” β†’ v1.6.0-rc.6, 2026-07-26) is correctly updated everywhere it’s generated/linked (docs + compare-link tests).
  • Verify archived 1.5.0 / 1.5.2 references remain literal in identity tests (to avoid unintended tautologies).
  • Confirm all release surface fixtures (including demo/portal API examples and Portwing message fields) use the same rc.6 token with no remaining rc.5 stragglers.
  • Confirm verification remains green for the full pre-push gate (133 passing script tests, zero failures).

scttbnsn added 2 commits July 26, 2026 14:21
Promotes the [Unreleased] heading to [1.6.0-rc.6] so release-cut's
CHANGELOG validation resolves an entry for the tag, and records the
rest of the delta since rc.5: the dependency maintenance wave, the
Crowdin translation resync, and the three CI/repo fixes (#599, #594,
#593) that landed without changelog entries of their own.

All eight version files already sit at the 1.6.0 base, so no bump is
needed for this RC.
Advances the badge, site config, roadmap entry, demo fixtures, API doc
samples, quickstart tag matrix, and the pinned release-identity tests
from rc.5 to rc.6, and adds the rc.6 highlights section to the updates
page.
@vercel

vercel Bot commented Jul 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
drydock-website Ready Ready Preview, Comment Jul 26, 2026 7:01pm
drydockdemo-website Ready Ready Preview, Comment Jul 26, 2026 7:01pm

@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. πŸŽ‰

ℹ️ Recent review info
βš™οΈ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 6bd9d057-33a9-4318-accd-61cdddfea65c

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between c0fbd7b and df529b0.

πŸ“’ Files selected for processing (2)
  • scripts/release-docs-identity.test.mjs
  • scripts/release-identity.test.mjs
🚧 Files skipped from review as they are similar to previous changes (2)
  • scripts/release-identity.test.mjs
  • scripts/release-docs-identity.test.mjs

πŸ“ Walkthrough

Walkthrough

Updated release references from 1.6.0-rc.5 to 1.6.0-rc.6 across metadata, demo mocks, documentation, roadmap content, and release highlights. Updated changelog-link and release-identity tests to validate rc.6 metadata, routing, fixtures, version patterns, and compare links.

Possibly related PRs

  • CodesWhat/drydock#549: Updates the same release surfaces and validation tests for an earlier release-candidate bump.
  • CodesWhat/drydock#571: Applies the same version-cascade pattern across documentation, mocks, and release tests.
  • CodesWhat/drydock#521: Adjusts changelog compare-link expectations for release tags.
πŸš₯ Pre-merge checks | βœ… 2
βœ… Passed checks (2 passed)
Check name Status Explanation
Linked Issues check βœ… Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check βœ… Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
πŸ“ Generate docstrings
  • Create stacked PR
  • Commit on current branch
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/v1.6-rc6-changelog

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
scripts/release-docs-identity.test.mjs (1)

26-35: πŸ“ Maintainability & Code Quality | πŸ”΅ Trivial | ⚑ Quick win

Keep release identity expectations on one source of truth.

Both test files duplicate candidate literals while already maintaining an RC_VERSION constant. Derive positive fixtures and boundary negatives from that constant, while keeping the constant itself as the single pinned candidate value.

  • scripts/release-docs-identity.test.mjs#L26-L35: derive badge, highlight, API, and quickstart expectations from RC_VERSION.
  • scripts/release-identity.test.mjs#L66-L78: derive positive, boundary-negative, and extraction fixtures from RC_VERSION.
πŸ€– Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/release-docs-identity.test.mjs` around lines 26 - 35, Use RC_VERSION
as the sole pinned candidate value in scripts/release-docs-identity.test.mjs
lines 26-35: derive badge, highlight, API, and quickstart positive and
boundary-negative assertions from it instead of duplicating version literals.
Apply the same change to scripts/release-identity.test.mjs lines 66-78, deriving
its positive, boundary-negative, and extraction fixtures from RC_VERSION while
leaving that constant as the single source of truth.
πŸ€– Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@scripts/release-docs-identity.test.mjs`:
- Around line 26-35: Use RC_VERSION as the sole pinned candidate value in
scripts/release-docs-identity.test.mjs lines 26-35: derive badge, highlight,
API, and quickstart positive and boundary-negative assertions from it instead of
duplicating version literals. Apply the same change to
scripts/release-identity.test.mjs lines 66-78, deriving its positive,
boundary-negative, and extraction fixtures from RC_VERSION while leaving that
constant as the single source of truth.

ℹ️ Review info
βš™οΈ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: dd0a13a8-d0b7-4821-bae4-5d0f8924c61b

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 033ce49 and c0fbd7b.

β›” Files ignored due to path filters (1)
  • CHANGELOG.md is excluded by !CHANGELOG.md
πŸ“’ Files selected for processing (16)
  • README.md
  • apps/demo/src/mocks/data/agents.ts
  • apps/demo/src/mocks/data/audit.ts
  • apps/demo/src/mocks/data/containers.ts
  • apps/demo/src/mocks/data/server.ts
  • apps/demo/src/mocks/handlers/app.ts
  • apps/web/src/lib/site-config.ts
  • apps/web/src/lib/site-content.ts
  • content/docs/current/api/agent.mdx
  • content/docs/current/api/app.mdx
  • content/docs/current/api/portwing.mdx
  • content/docs/current/quickstart/index.mdx
  • content/docs/current/updates/index.mdx
  • scripts/changelog-links.test.mjs
  • scripts/release-docs-identity.test.mjs
  • scripts/release-identity.test.mjs

CodeRabbit flagged that both identity tests duplicated the candidate
version literal roughly 26 times alongside an RC_VERSION constant that
already existed, which is why every RC bump has been an error-prone
hand-edit across the whole file.

RC_VERSION, plus a new PREV_RC_VERSION for the changelog compare link,
are now the single source of truth. Positive assertions, boundary
negatives, and inline fixtures all derive from them, including the
shields.io double-dash badge form and the quickstart negative lookahead.

The 1.5.0 matcher-generalization case and the 1.5.2 archive references
stay literal: they pin the archived line, not the release identity.

Verified both directions. Pointing RC_VERSION at an unreleased rc.7
fails against the real on-disk files, and reverting the README badge to
rc.5 with RC_VERSION correct also fails, so the assertions still read
real files rather than comparing derived strings to themselves.
@scttbnsn

Copy link
Copy Markdown
Contributor Author

Good catch, took it. Both files now derive everything from RC_VERSION (plus a new PREV_RC_VERSION for the changelog compare link) β€” badge, highlights, API samples, quickstart row, the negative lookahead, and the demo fixture strings. That's what made every RC bump a 26-literal hand-edit.

Left 1.5.0 and the 1.5.2 archive references literal on purpose. Those pin the archived line, not the release identity, and shouldn't move when the candidate does.

Verified it didn't go tautological, in both directions: pointing RC_VERSION at an unreleased rc.7 fails against the real on-disk files, and putting the README badge back to rc.5 with RC_VERSION correct also fails. So the assertions are still reading real files, not comparing derived strings to themselves.

df529b0b

@scttbnsn
scttbnsn merged commit ca6212d into dev/v1.6 Jul 26, 2026
25 checks passed
@scttbnsn
scttbnsn deleted the docs/v1.6-rc6-changelog branch July 26, 2026 19:18
scttbnsn added a commit that referenced this pull request Jul 26, 2026
Routine dev β†’ main sync ahead of cutting `v1.6.0-rc.6`. Per the branch
model, `main` only advances by merging from `dev/v1.6`, never by taking
independent commits, and the cut is dispatched from `main`.

Opened from a throwaway `sync/main-rc6` branch rather than from
`dev/v1.6` directly. Auto-delete-head-branches deleted `dev/v1.6` when
sync PR #596 used it as the head, which is what broke the Crowdin sync.

## Content

The entire delta is the rc.6 prep merged in #602: the dated
`[1.6.0-rc.6]` changelog entry and the 16-file release identity bump.

## Conflict resolution

The three-way merge conflicted on `CHANGELOG.md`. That's an artifact of
squash-merge-only ancestry β€” `main` picked up the same content through
an earlier squash, so the merge reads both sides as independently adding
it.

Resolved with `git merge -s ours origin/main`, which takes `dev/v1.6`'s
tree wholesale. Verified that loses nothing:

- No file exists only on `main`
- The complete content diff between `main` and `dev/v1.6` is exactly the
17 rc.6 prep files, nothing else

After the merge, `git diff HEAD origin/dev/v1.6` is empty, so this
branch's tree is byte-identical to `dev/v1.6`. That's the invariant the
release-cut drift guard asserts.

## Verification

- Full pre-push gate green: qlty, qlty-smells, scripts-test,
workflow-tests, typecheck-ui, web-scripts-test, coverage, build, zizmor
- `renovate.json` already targets `dev/v1.6`, so the drift guard's
bot-target assertion passes
- All eight version files sit at the `1.6.0` base that the tag
validation expects

Next after merge: dispatch `release-cut.yml --ref main -f
release_tag=v1.6.0-rc.6`.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
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.

1 participant