MPT-23808 Park frontend build to stop npm downloads in CI - #39
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughFrontend operations run when frontend modules exist or when ChangesFrontend operations
Estimated code review effort: 3 (Moderate) | ~20 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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.
Inline comments:
In `@Dockerfile`:
- Around line 25-27: Update the Docker build configuration around the
frontend-build stage so the no-npm guarantee does not depend on BuildKit being
enabled: either explicitly require/configure BuildKit for the documented make
build and docker compose workflow, or move frontend-build into a separate opt-in
Dockerfile target that the dev backend target cannot process. Preserve the
backend dev build without running npm under both legacy and BuildKit builders.
In `@make/common.mk`:
- Around line 5-7: Update the backend and all-scope validation flow in the
relevant make targets to run “mpt-ext meta generate” followed by “mpt-ext meta
validate”. Ensure the default scope=backend path, including the default make
check-all workflow, retains this metadata validation while preserving explicit
frontend scope behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
Run ID: 53a6d9e6-8227-4fcc-9ca7-1cc0bdecdb39
📒 Files selected for processing (3)
.github/dependabot.ymlDockerfilemake/common.mk
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
softwareone-platform/mpt-extension-skills(manual)
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
- GitHub Check: mpt-extension-installation (Prerequisites Create standard build artifact)
- GitHub Check: mpt-extension-installation (Prerequisites Set the version)
- GitHub Check: build
🧰 Additional context used
📓 Path-based instructions (3)
make/**
📄 CodeRabbit inference engine (AGENTS.md)
Inspect
make/for canonical commands used by the repository.
Files:
make/common.mk
⚙️ CodeRabbit configuration file
make/**: Review changes inmake/againstdocs/contributing.mdand the linked repository'sstandards/makefiles.md.
Use the shared standard as the source of truth for Makefile architecture, file layout, and command-group organization.
Files:
make/common.mk
**/*
⚙️ CodeRabbit configuration file
**/*: For each subsequent commit in this PR, explicitly verify if previous review comments have been resolved
Files:
make/common.mkDockerfile
Dockerfile
📄 CodeRabbit inference engine (AGENTS.md)
Inspect
Dockerfileas part of the backend container and local stack setup when the task affects containerization.
Files:
Dockerfile
🔇 Additional comments (2)
.github/dependabot.yml (1)
36-38: LGTM!Dockerfile (1)
41-43: 🗄️ Data Integrity & IntegrationNo frontend assets are currently lost.
frontend/src/modulescontains only.gitkeep, sonpm run buildproduces an emptystatic/.make build scope=allbuilds thedevtarget, which mounts./static. The frontend is intentionally parked until it has assets.> Likely an incorrect or invalid review comment.
1320720 to
943f6fb
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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.
Inline comments:
In `@make/common.mk`:
- Around line 11-13: Update docs/local-development.md and docs/testing.md to
document that bare make, make build, and make check-all default to
scope=backend, and that frontend builds require explicitly setting
scope=frontend or scope=all. Keep the documentation consistent with the scope
default defined in make/common.mk.
- Around line 1-5: Update the DOCKER_BUILDKIT and COMPOSE_DOCKER_CLI_BUILD
assignments in the make configuration to enforce enabled values rather than
preserving explicit 0 overrides. Keep the no-npm guarantee by ensuring both
settings cannot be disabled through the environment.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
Run ID: 2ad98898-d54c-4ad5-9e7f-0f656b8a7bd9
📒 Files selected for processing (3)
.github/dependabot.ymlDockerfilemake/common.mk
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
softwareone-platform/mpt-extension-skills(manual)
🚧 Files skipped from review as they are similar to previous changes (2)
- Dockerfile
- .github/dependabot.yml
📜 Review details
⏰ Context from checks skipped due to timeout. (4)
- GitHub Check: mpt-extension-installation (Build Build Image)
- GitHub Check: mpt-extension-installation (Prerequisites Create standard build artifact)
- GitHub Check: mpt-extension-installation (Prerequisites Set the version)
- GitHub Check: build
🧰 Additional context used
📓 Path-based instructions (2)
make/**
📄 CodeRabbit inference engine (AGENTS.md)
Inspect
make/for canonical commands used by the repository.
Files:
make/common.mk
⚙️ CodeRabbit configuration file
make/**: Review changes inmake/againstdocs/contributing.mdand the linked repository'sstandards/makefiles.md.
Use the shared standard as the source of truth for Makefile architecture, file layout, and command-group organization.
Files:
make/common.mk
**/*
⚙️ CodeRabbit configuration file
**/*: For each subsequent commit in this PR, explicitly verify if previous review comments have been resolved
Files:
make/common.mk
🔇 Additional comments (1)
make/common.mk (1)
46-47: LGTM!
943f6fb to
4e4d27a
Compare
4e4d27a to
a75b1d5
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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.
Inline comments:
In `@Dockerfile`:
- Around line 37-40: Update the Dockerfile RUN instruction guarding the frontend
build so failures from npm ci or npm run build propagate and fail the image
build when src/modules contains directories. Preserve the conditional behavior
and static directory creation, while ensuring the shell does not continue
successfully after a failed frontend command.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
Run ID: ac49ae97-9ad5-4b66-b4a3-b0e2af30ad4d
📒 Files selected for processing (5)
.github/dependabot.ymlDockerfiledocs/local-development.mddocs/testing.mdmake/common.mk
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
softwareone-platform/mpt-extension-skills(manual)
🚧 Files skipped from review as they are similar to previous changes (1)
- .github/dependabot.yml
📜 Review details
⏰ Context from checks skipped due to timeout. (4)
- GitHub Check: mpt-extension-installation (Build Build Image)
- GitHub Check: mpt-extension-installation (Prerequisites Create standard build artifact)
- GitHub Check: mpt-extension-installation (Prerequisites Set the version)
- GitHub Check: build
🧰 Additional context used
📓 Path-based instructions (9)
docs/{local-development,deployment,testing,migrations,documentation}.md
📄 CodeRabbit inference engine (docs/contributing.md)
Update docs/local-development.md, docs/deployment.md, docs/testing.md, docs/migrations.md, or docs/documentation.md when the corresponding workflow changes
Files:
docs/testing.mddocs/local-development.md
docs/**/*.md
📄 CodeRabbit inference engine (docs/contributing.md)
Follow the shared documentation standard for structure and naming from mpt-extension-skills/standards/documentation.md
docs/**/*.md: Put topic-specific behavior in the matching file underdocs/rather than in a general summary document.
When documentation changes, prefer updating the smallest relevant document instead of creating overlapping summary files.
Files:
docs/testing.mddocs/local-development.md
docs/testing.md
📄 CodeRabbit inference engine (Custom checks)
Update
docs/testing.mdwhen the PR changes test strategy or test scope.Read
docs/testing.mdbefore changing code or tests.
Files:
docs/testing.md
docs/{architecture,local-development,deployment,external-integrations,contributing,testing,migrations}.md
📄 CodeRabbit inference engine (docs/documentation.md)
When runtime, testing, migration, or setup behavior changes, update the corresponding document in the same change.
Files:
docs/testing.mddocs/local-development.md
**/*
⚙️ CodeRabbit configuration file
**/*: For each subsequent commit in this PR, explicitly verify if previous review comments have been resolved
Files:
docs/testing.mdDockerfilemake/common.mkdocs/local-development.md
docs/**
⚙️ CodeRabbit configuration file
docs/**: Review documentation changes againstdocs/documentation.mdand the linked repository'sstandards/documentation.md.
Use those documents as the source of truth for structure, topic boundaries, navigation updates, and when to link shared rules instead of copying them.
Files:
docs/testing.mddocs/local-development.md
Dockerfile
📄 CodeRabbit inference engine (AGENTS.md)
Inspect
Dockerfileas part of the backend container and local stack setup when the task affects containerization.
Files:
Dockerfile
make/**
📄 CodeRabbit inference engine (AGENTS.md)
Inspect
make/for canonical commands used by the repository.
Files:
make/common.mk
⚙️ CodeRabbit configuration file
make/**: Review changes inmake/againstdocs/contributing.mdand the linked repository'sstandards/makefiles.md.
Use the shared standard as the source of truth for Makefile architecture, file layout, and command-group organization.
Files:
make/common.mk
docs/local-development.md
📄 CodeRabbit inference engine (AGENTS.md)
Read
docs/local-development.mdfor local setup and service startup when applicable.
Files:
docs/local-development.md
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
Repo: softwareone-platform/mpt-installation-extension
Timestamp: 2026-08-03T13:16:59.682Z
Learning: Use the supported Docker Compose workflow for local development: build with `make build` and run with `make run`.
Learnt from: CR
Repo: softwareone-platform/mpt-installation-extension
Timestamp: 2026-08-03T13:16:59.682Z
Learning: Keep the environment-parameter reference in `docs/deployment.md`; do not duplicate required or optional environment-variable documentation in the local-development document.
Learnt from: CR
Repo: softwareone-platform/mpt-installation-extension
Timestamp: 2026-08-03T13:17:06.496Z
Learning: Add or update tests when a change modifies API request handling, event processing, pipeline step behavior, command output, or dependency wiring in the extension app.
Learnt from: CR
Repo: softwareone-platform/mpt-installation-extension
Timestamp: 2026-08-03T13:17:06.496Z
Learning: Tests are not required for documentation-only changes.
📚 Learning: 2026-07-31T10:20:22.222Z
Learnt from: svazquezco
Repo: softwareone-platform/mpt-installation-extension PR: 36
File: docs/migrations.md:20-28
Timestamp: 2026-07-31T10:20:22.222Z
Learning: In migration documentation and examples, use the migration API exposed by `MPTAPIServiceMixin` through `self.mpt_api_service`. Do not reference the removed `MPTAPIServiceMixin.account_scoped_service` property; in particular, ensure `backend/mpt_installation_extension/migrations/mixins/mpt_api_service.py` remains the authoritative implementation.
Applied to files:
docs/testing.mddocs/local-development.md
🔇 Additional comments (2)
make/common.mk (1)
12-14: LGTM!Also applies to: 19-25, 32-42, 53-54, 63-67, 78-105
docs/local-development.md (1)
18-27: 🗄️ Data Integrity & IntegrationResolve the CI scope contract.
make/common.mkand both documents consistently defineallas the default. Unqualified CI commands run frontend npm operations whenfrontend/src/modules/*/contains code. If CI must default tobackend, changescope ?= backendand update both documents.
a75b1d5 to
fc58edb
Compare
The frontend is a scaffold (frontend/src/modules has no entrypoints), so its build produces an empty static tree. Skip it until real modules exist, with no manual flag: - make/common.mk: FRONTEND_HAS_CODE detects modules via $(wildcard); the frontend runs only for scope=frontend, or scope=all once it has code. Default scope stays all, so backend checks and metadata validation keep running. - Dockerfile: the frontend-build stage detects the same condition and skips npm entirely (empty static) when parked, so a plain `docker build` matches make with no build-arg. The COPY of the static assets into the backend image stays wired. - .github/dependabot.yml: pause npm version updates (open-pull-requests-limit 0), keeping security updates. Adding a module under frontend/src/modules re-enables the build automatically. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fc58edb to
ea81fe9
Compare
|



🤖 AI-generated PR — Please review carefully.
What
The frontend is still a scaffold —
frontend/src/modules/only contains.gitkeep, so the frontend build produces an emptystatic/. Despite that, every CI run installed the frontend npm dependencies up to four times (make build,make check-all→check,make check-all→build, and the Dockerfrontend-buildstage), wasting build time. Dependabot npm bumps could also break the build outright (e.g.typescript@7vs thets-jestpeer range>=4.3 <7).Since the frontend is not in use right now (it will be resumed later), this parks it so no build downloads npm, while keeping the scaffold intact.
Changes
frontend-buildstage is kept but left unreferenced, so BuildKit skips it andnpmnever runs during the image build. The twoCOPY --from=frontend-build /static ./staticlines are commented out, anddev/prodship an emptystatic/viamkdir -p ./static. Re-enabling is just uncommenting thoseCOPYlines.scopechanged fromalltobackend, so baremake build/make check-all(what CI runs) skip the frontend. Frontend work is still available explicitly viascope=frontendorscope=all.npmecosystem'sopen-pull-requests-limitset to0, pausing version-update PRs while keeping security updates. Restore to5when frontend development resumes.Testing
docker compose build backend(dev target) anddocker build --target prod— both build cleanly, and nofrontend-build/npm/node:26steps run (verified in build output).makescope now resolves tobackend.static/directory is present in bothdevandprodimages.static/directories in development and production images.backend.