Skip to content

chore: migrate to Astro 7 + Starlight 0.41 - #205

Merged
JasonCust merged 1 commit into
mainfrom
chore/astro-7-migration
Jul 6, 2026
Merged

JasonCust merged 1 commit into
mainfrom
chore/astro-7-migration

Conversation

@JasonCust

Copy link
Copy Markdown
Contributor

Summary

Coordinated major upgrade resolving the ecosystem readiness tracked in #189:

Ecosystem compatibility verified

Package Version Compatibility
@astrojs/starlight 0.41.3 Requires astro@^7.0.2 ✅
starlight-typedoc 0.23.0 Peer @astrojs/starlight@>=0.39.0 ✅
starlight-changelogs 0.5.0 Peer @astrojs/starlight@>=0.38.0 ✅
@ascorbic/loader-utils 1.0.2 Override $astro (unchanged) ✅

What was validated

  • Full build: 171 pages, zero errors, zero warnings
  • GFM tables render correctly without the workaround
  • TypeDoc API generation works (both ergo + ergo-router)
  • Changelog plugin works
  • Pagefind search index builds (172 HTML files indexed)

Supersedes #199 (Dependabot Starlight-only bump that couldn't resolve without Astro 7).

Closes #189

Test plan

  • CI build job passes (npm ci + npm run build)
  • Spot-check deployed preview for GFM table rendering
  • Verify no regressions in API reference, changelog, or search

Coordinated upgrade resolving the ecosystem readiness tracked in #189:
- astro ~6.4.8 → ^7.0.2 (resolved 7.0.6)
- @astrojs/starlight ^0.40.0 → ^0.41.1 (resolved 0.41.3)
- Remove markdown.gfm workaround (Sätteri enables GFM by default)
- Remove semver-minor Dependabot ignore for astro (no longer needed)

All 171 pages build successfully with zero errors.
Supersedes Dependabot PR #199.

Closes #189
@coderabbitai

coderabbitai Bot commented Jul 5, 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

Run ID: b18a1e4b-a159-4718-b209-2949bb64cb71

📥 Commits

Reviewing files that changed from the base of the PR and between d7c3904 and 3805acb.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (3)
  • .github/dependabot.yml
  • astro.config.mjs
  • package.json
💤 Files with no reviewable changes (1)
  • astro.config.mjs
📜 Recent review details
⚠️ CI failures not shown inline (1)

GitHub Actions: Deploy / 1_build.txt: chore: migrate to Astro 7 + Starlight 0.41

Conclusion: failure

View job details

##[group]Run pkg="${CLIENT_PACKAGE}"
 �[36;1mpkg="${CLIENT_PACKAGE}"�[0m
 �[36;1mpkg="${pkg#@centralping/}"�[0m
 �[36;1mver="${CLIENT_VERSION}"�[0m
 �[36;1mif [[ "$ver" == "dev" ]]; then ver="main"; fi�[0m
 �[36;1m�[0m
 �[36;1mvalidate_ref() {�[0m
 �[36;1m  local ref="$1" label="$2"�[0m
 �[36;1m  if [[ "$ref" != "main" && ! "$ref" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ ]]; then�[0m
 �[36;1m    echo "::error::Invalid $label ref: $ref"�[0m
🧰 Additional context used
📓 Path-based instructions (1)
**/*

📄 CodeRabbit inference engine (Custom checks)

Do not introduce TODO, FIXME, HACK, or XXX comments in newly added lines of code

Files:

  • package.json
🔇 Additional comments (2)
package.json (1)

18-20: LGTM! The version bump is consistent with the PR's stated validation of @astrojs/starlight, starlight-typedoc, starlight-changelogs, and @ascorbic/loader-utils compatibility with Astro 7, and no lockfile mismatch is evident from this file alone.

.github/dependabot.yml (1)

23-24: LGTM! Narrowing the ignore rule to semver-major only re-enables automated minor/patch updates for astro, consistent with retiring the Astro 6.4 GFM workaround, and these will still be batched via the npm-minor-patch group.


Summary by CodeRabbit

  • New Features

    • Updated the site framework to a newer major version, along with a related documentation theme update.
  • Bug Fixes

    • Adjusted markdown handling to rely on the platform’s default behavior.
    • Refined update rules so future major framework upgrades are still flagged, while minor updates are no longer ignored.

Walkthrough

This PR upgrades the astro dependency to ^7.0.2 and @astrojs/starlight to ^0.41.1, removes the explicit markdown: { gfm: true } config from astro.config.mjs, and narrows the Dependabot ignore rule for astro from ignoring both semver-minor and semver-major updates to ignoring only semver-major updates.

Changes

Astro 7 Migration Groundwork

Layer / File(s) Summary
Dependency version bump
package.json
astro bumped from ~6.4.8 to ^7.0.2; @astrojs/starlight bumped from ^0.40.0 to ^0.41.1.
Markdown config cleanup
astro.config.mjs
Removed the explicit markdown: { gfm: true } block, relying on Astro 7's default markdown processor behavior.
Dependabot rule narrowing
.github/dependabot.yml
Narrowed the astro ignore rule to only version-update:semver-major, allowing semver-minor updates through.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title matches the change, but it is missing the required issue number and uses capitalized words instead of a lowercase conventional-commit description. Use conventional commit format with a lowercase description and issue number, e.g. chore: migrate to astro 7 and starlight 0.41 (#189).
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR updates Astro/Starlight, removes the GFM workaround, and documents compatibility validation, matching the migration readiness objectives.
Out of Scope Changes check ✅ Passed The changes stay focused on the Astro 7 migration, dependency updates, and related config cleanup, with no unrelated edits evident.
Content Accuracy ✅ Passed No files under src/content/ changed in the PR diff vs main, so the content-accuracy check is not applicable.
Zero Tech Debt ✅ Passed Reviewed added lines in .github/dependabot.yml, astro.config.mjs, and package.json; none contain TODO/FIXME/HACK/XXX comments.

Warning

Review ran into problems

🔥 Problems

Linked repositories: Your configuration references 2 linked repositories, but your current plan allows 0. Analyzed ``, skipped CentralPing/ergo, `CentralPing/ergo-router`.


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.

@JasonCust JasonCust left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Lead Architect Review

Verdict: APPROVE (posted as COMMENT — GitHub prohibits self-approval)

Clean, well-scoped coordinated dependency upgrade. All ecosystem peer dependencies verified compatible (Starlight 0.41.3 → astro@^7.0.2, starlight-typedoc 0.23.0 → @astrojs/starlight@>=0.39.0, starlight-changelogs 0.5.0 → @astrojs/starlight@>=0.38.0). GFM workaround correctly removed (Sätteri enables GFM by default in Astro 7). Dependabot config correctly updated (semver-minor ignore removed, semver-major retained per convention). CI build passes (171 pages, zero errors).

  • Blocking items: 0
  • Non-blocking items: 1

Non-blocking observation

@ascorbic/loader-utils@1.0.2 override (package.json overrides section) forces Astro 7 acceptance despite declared peer dep ^4.14.0 || ^5.0.0-beta.0. Pre-existing and functionally correct (build passes). Already tracked by #26 — no action needed in this PR. When #189 closes upon merge, #26 remains the sole tracker for override removal.

@JasonCust JasonCust left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Lead Architect Review (Fresh)

Verdict: APPROVE (posted as COMMENT — GitHub prohibits self-approval)

Clean, well-scoped coordinated dependency upgrade. All ecosystem peer dependencies verified compatible:

  • Starlight 0.41.3 → astro@^7.0.2 ✔️
  • starlight-typedoc 0.23.0 → @astrojs/starlight@>=0.39.0 ✔️
  • starlight-changelogs 0.5.0 → @astrojs/starlight@>=0.38.0 ✔️
  • @astrojs/mdx 7.0.2 → astro@^7.0.0 ✔️

GFM workaround correctly removed (Sätteri processor enables GFM by default in Astro 7). Dependabot config correctly updated (semver-minor ignore removed, semver-major retained per convention). CI build passes (171 pages, zero errors). CodeRabbit review completed with 0 findings.

  • Blocking items: 0
  • Non-blocking items: 1

Non-blocking observation

@ascorbic/loader-utils@1.0.2 override (package.json overrides section) forces Astro 7 acceptance despite declared peer dep ^4.14.0 || ^5.0.0-beta.0. Pre-existing and functionally correct (build passes). Already tracked by #26 — no action needed in this PR.

@JasonCust

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 6, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.

@CentralPing CentralPing deleted a comment from coderabbitai Bot Jul 6, 2026
@JasonCust
JasonCust merged commit 7dd04b4 into main Jul 6, 2026
3 checks passed
@JasonCust
JasonCust deleted the chore/astro-7-migration branch July 6, 2026 03:38
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.

chore: evaluate Astro 7 migration readiness

1 participant