Migrate builder-cap2UI5 out of the cap2UI5 monorepo#1
Merged
Conversation
Move the CAP app build project (src/ + assemble/publish scripts) from cap2UI5/cap2UI5:builder-cap2UI5/ into this standalone repository and adapt it to the split: - new scripts/mirror-core.js snapshots the published core package from cap2UI5/builder-abap2UI5-js into run/input/core (committed, with UPSTREAM_COMMIT — same convention as the other mirrors) - assemble-cap.js now vendors the mirrored core INTO the app (core/, linked as file:./core instead of file:../builder-abap2UI5-js/core), so the published app repo is fully self-contained; the core's lock entries are merged into the app lock under core/node_modules/ (npm manages the vendored package as part of the app tree) - publish-cap.js publishes into a checkout of cap2UI5/cap2UI5 (sibling directory or PUBLISH_TARGET), preserving that repo's .git/.github - workflows: update_cap (push/nightly/dispatch) mirrors the core, builds, runs the app's jest suite and publishes to cap2UI5/cap2UI5 via deploy key (secret ACTION_KEY_APP, skipped when unset); test runs the same assemble + jest gate on PRs; UPSTREAM_HEAD receives the triggers from builder-abap2UI5-js:trigger_cap - src/: dependency now file:../run/input/core, README/badges updated to the three-repo layout Verified locally: mirror_core (local checkout) → assemble → npm ci → npm test all green (2 suites, 11 tests); assemble output is deterministic. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ScZqNHaaKSyyd5kYTAXyFR
The published app repo is wiped on every publish (only .git/.github survive), so the devcontainer must come from the builder source. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ScZqNHaaKSyyd5kYTAXyFR
The app-repo variant ships from src/ (published targets are wiped on every publish, so guidance files must come from the builder source). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ScZqNHaaKSyyd5kYTAXyFR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the cap2UI5 monorepo split: this repo now hosts the CAP app build project (hand-written app source in
src/+ assemble/publish scripts), moved fromcap2UI5/cap2UI5:builder-cap2UI5/and adapted to the standalone world.Changes on top of the plain move
scripts/mirror-core.js— snapshots the published core package from cap2UI5/builder-abap2UI5-js intorun/input/core(committed, withUPSTREAM_COMMIT, same convention as the other mirrors;MIRROR_SOURCEfor local checkouts).assemble-cap.jscopies the mirrored core into the app atcore/and rewrites the dependency to"abap2UI5": "file:./core", so the published app repo is fully self-contained. Because the vendored core sits inside the app's package root, npm manages its deps as part of the app tree: the core's lock entries are merged into the app lock undercore/node_modules/— deterministic, offline, and onenpm ciinstalls everything.publish-cap.jspublishes into a checkout of cap2UI5/cap2UI5 (sibling dir orPUBLISH_TARGET), preserving that repo's.git/.github/node_modules.update_cap(push incl.UPSTREAM_HEADtriggers from builder-abap2UI5-js, nightly 06:00, dispatch): mirror → assemble → app jest suite → publish to cap2UI5/cap2UI5 via deploy key (secretACTION_KEY_APP, skipped when unset);testruns the same assemble + jest gate on PRs.src/— dependency nowfile:../run/input/core; ships the app's README, devcontainer and AGENTS.md (published targets are wiped on publish, so guidance files come from here).Verification
npm ci→npm test: green (2 suites, 11 tests)Companion PRs: cap2UI5/builder-abap2UI5-js, cap2UI5/cap2UI5, cap2UI5/builder-cap2UI5-web, cap2UI5/web-cap2UI5-build, cap2UI5/docs.
🤖 Generated with Claude Code
https://claude.ai/code/session_01ScZqNHaaKSyyd5kYTAXyFR
Generated by Claude Code