Skip to content

ci(vue): wire @modular-frontend/* and @modular-vue/* into release + CI plumbing (PR-05) - #84

Merged
kibertoad merged 2 commits into
mainfrom
claude/vuejs-next-phase-rpyl32
Jul 17, 2026
Merged

ci(vue): wire @modular-frontend/* and @modular-vue/* into release + CI plumbing (PR-05)#84
kibertoad merged 2 commits into
mainfrom
claude/vuejs-next-phase-rpyl32

Conversation

@kibertoad

@kibertoad kibertoad commented Jul 17, 2026

Copy link
Copy Markdown
Owner

What & why

Implements PR-05 from docs/vue-support-tracker.md — the last unblocked row of the Vue initiative ("CI, publish, and workspace plumbing for the new scopes"). Everything else in the initiative is done; only PR-52 (Nuxt, a stretch item gated on D6 + demand) remains after this.

The Vue initiative introduced two new npm scopes — @modular-frontend/* (the shared framework-neutral engines, decision D2) and the @modular-vue/* family — but the release/CI automation was never taught about them. So a merge that changed a Vue or engine package would bump and publish nothing, and @modular-vue/cli (added in PR-50) never got a CI build/test job.

What changed

  • publish.yml (the real gap). The workflow drives off a hardcoded dorny/paths-filter set + a PKG_MAP (filter-key → dir:npmName); neither listed any new-scope package. Added eleven filter entries and eleven PKG_MAP mappings:

    • @modular-frontend/core, @modular-frontend/testing, @modular-frontend/journeys-engine, @modular-frontend/compositions-engine
    • @modular-vue/{vue,core,runtime,testing,journeys,compositions,cli}

    Each filter watches src/** + package.json + README.md (the new packages build to a gitignored dist, so src/** is the publish-surface trigger — matching the pkg_journeys shape, not the older lib/** packages). The dynamic-matrix, version-bump, provenance-publish, tag, and commit steps are all package-agnostic and needed no change.

  • ci.yml (one missing package). The changed-files-job PATH_TO_NAME map already covered every Vue package and all four engines except packages/vue-cli — PR-50 added the package but never wired it into CI. Added ["packages/vue-cli"]="@modular-vue/cli". The reusable ci.common.yml build/test is turbo-driven, so it runs the new packages' real (non-empty) suites unchanged.

Two plan lines turned out to be no-ops (recorded in the tracker rather than acted on):

  • ensure-labels.yml enforces a release-type label (major/minor/patch/skip-release/release-same-version) — there are no per-package labels to extend.
  • pnpm-workspace.yaml already matches every new package via packages/*.

npm-scope reservation / 0.0.0 placeholders (D1) are an npm-account action, not a repo change; the workflow is now ready to publish the real 1.0.0 (Vue) / 0.1.0 (engines) versions on the next release-labeled merge.

Pre-existing gaps found but left out of scope (they predate this initiative and belong to the React/Angular families, not the new Vue scopes): publish.yml also omits @modular-react/compositions and both Angular packages, and ci.yml omits packages/angular-router-core. Worth a separate follow-up.

How it was verified

  • All four workflow files parse as valid YAML.
  • Simulated the publish.yml matrix builder with all eleven new filter keys marked changed → it emits a matrix of exactly the eleven packages, and every dir → npmName entry was verified against the on-disk package.json name.
  • No TS/JS changed (workflow YAML + tracker markdown only), so oxfmt/oxlint/typecheck have nothing to act on.

Checklist

  • pnpm lint passes — N/A, no TS/JS changed (workflow YAML + docs only); YAML validated with a parser instead.
  • Tests cover the change and pass — no runtime code changed; verified by simulating the matrix builder and validating YAML.
  • Docs / tracker updated in the same PR — docs/vue-support-tracker.md marks PR-05 done (writeup + status line + board).
  • Vue impact stated. This is Vue-family CI/release plumbing; it makes the change for the whole @modular-vue/* + @modular-frontend/* set. N/A for React/Angular follow-ups noted above.

🤖 Generated with Claude Code

https://claude.ai/code/session_019YFQihiMZ1RadxDPzfjWRY


Generated by Claude Code

Summary by CodeRabbit

  • Bug Fixes

    • Improved change detection so Vue CLI updates are included in CI builds.
    • Expanded package detection and publishing coverage for Frontend and Vue packages.
  • Documentation

    • Updated the Vue support tracker with completion details and marked the CI/publishing work as done.

…I plumbing (PR-05)

Extend the publish and CI automation to cover the two scopes the Vue
initiative introduced, so they bump, publish, and get validated like the
React families.

- publish.yml: add dorny/paths-filter entries and PKG_MAP mappings for the
  four @modular-frontend/* engines and all seven @modular-vue/* packages.
  Each filter watches src/** + package.json + README.md (the new packages
  build to a gitignored dist). Without this, a merge touching a Vue or
  engine package published nothing.
- ci.yml: add packages/vue-cli -> @modular-vue/cli to the changed-files
  build matrix; PR-50 added the package but never wired it into CI, so its
  test suite never ran on change.

ensure-labels.yml (release-type labels only, no per-package labels) and
pnpm-workspace.yaml (packages/* already matches) need no change.

Updates docs/vue-support-tracker.md: PR-05 marked done with a writeup, and
the status line/board reflect that only PR-52 (Nuxt, stretch) remains.

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

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@kibertoad, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 37 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a4ac48a8-0bd6-40ac-8ac6-525b6119b62a

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3060 and e07d148.

📒 Files selected for processing (1)
  • docs/vue-support-tracker.md
📝 Walkthrough

Walkthrough

CI and publish workflows now detect additional Frontend and Vue packages, map them to npm package names, and include Vue CLI in CI coverage. The Vue support tracker documents the completed plumbing work and marks PR-05 done.

Changes

Package coverage workflows

Layer / File(s) Summary
CI and publish package matrix
.github/workflows/ci.yml, .github/workflows/publish.yml
CI recognizes packages/vue-cli, while publish filters and package mappings cover the added Frontend and Vue package groups.
Vue support tracking
docs/vue-support-tracker.md
The tracker records the workflow updates, refreshes its status metadata, and marks PR-05 as complete.

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

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly reflects the main change: wiring new frontend and Vue package scopes into CI/release automation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/vuejs-next-phase-rpyl32

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.

- Run oxfmt over the tracker so `pnpm lint`'s `oxfmt --check` passes
  (the appended PR-05 writeup used `*type*` emphasis; oxfmt normalizes
  to `_type_`). This is what was turning the Lint CI job red.
- Correct the publish-version note: the `@modular-frontend/*` engines
  are not uniformly `0.1.0` — `journeys-engine` is already `1.7.1`.
  State the real committed versions instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BbP6F82jG5YnvsyFAP8jEk
@kibertoad kibertoad added the skip-release label Jul 17, 2026 — with Claude
@kibertoad
kibertoad merged commit ccebed4 into main Jul 17, 2026
17 of 18 checks passed
@kibertoad
kibertoad deleted the claude/vuejs-next-phase-rpyl32 branch July 17, 2026 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants