chore: migrate cloud-foundry-tools - #624
Draft
jacob-kreyenbuehl wants to merge 10 commits into
Draft
jacob-kreyenbuehl wants to merge 10 commits into
jacob-kreyenbuehl wants to merge 10 commits into
Conversation
Relocate the cloud-foundry-tools extension (backend, frontend, wrapper) from the standalone SAP/cloud-foundry-tools repo (v8.1.2) into projects/cloud-foundry-tools/. Raw move; monorepo wiring and toolchain fixes follow in subsequent commits. Per-package CHANGELOG.md preserved as CHANGELOG.old.md; fresh empty CHANGELOG.md started for the monorepo. Per-package LICENSE dropped (root REUSE covers legal). Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
- add projects/cloud-foundry-tools/tsconfig.base.json (extends root base, skipLibCheck) - backend: declare @types/rimraf (yarn-hoisted in source, pnpm needs it explicit) - frontend: declare lodash (used but undeclared, relied on yarn hoist) - repository fields point at the monorepo - regenerate lockfile Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
- inline per-package nyc.config.js (source referenced repo-root ../../nyc.config) - copy webpack.config.vscode.base.js to project root; adapt module resolution to pnpm workspace-root node_modules (task-explorer precedent) - backend + wrapper: replace deprecated vsce@1.100.1 with @vscode/vsce@2.24.0 and 'vsce package --no-dependencies' (monorepo standard, no yarn dependency) - remove config.commitizen (broke pnpm env-var passing; commitlint runs at root) Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
Relax the same rule set the standalone repo carried (require-description, no-explicit-any, no-unused-expressions, unbound-method, etc.) scoped to projects/cloud-foundry-tools/**, plus prefer-spread/prefer-rest-params. Ignore dist/out/coverage build output. TODO: tighten incrementally. Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
Reflow to the monorepo Prettier profile (default width) from the source's --print-width 120. Also disable the type-aware unsafe-* eslint rules for the project (source relaxed them; matches task-explorer precedent). Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
- add the 3 private packages (vscode-cf-tools, cloud-foundry-tools-frontend, vscode-wing-cf-tools) to changeset ignore; none are published to npm, so changeset must not bump them (prevents upload-vsix cascade). No fixed group needed: no internal workspace edges among them. - backend + wrapper: redirect nyc temp-dir/report-dir to ./reports so these VS Code extensions stay out of the root merged 100% gate (which targets library packages), keeping their own thresholds. Matches guided-development and yeoman-ui extension-backend precedent. coverage:copy exports lcov for coveralls; gitignore reports/. Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
…e out/ The exact 'vue: 3.3.8' pin forced a second Vue tree into the workspace, which polluted the shared @vue/test-utils resolution and broke inquirer-gui's tests (app.onUnmount is a Vue 3.5 API). Widen to '^3.3.4' so the frontend joins the existing vue@3.5.34 tree (no second tree); its 43 tests still pass. Other Vue toolchain pins left at source versions. Also gitignore the backend/wrapper out/ compile output at the project level. Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
…-instance Adding cloud-foundry-tools triggers a full pnpm re-resolution. With task-explorer's vue_frontend_rpc pinning vue@3.4.3, pnpm 11.1.1 then binds the published @sap-devx/inquirer-gui@3.x transitive vuetify to vue@3.4.3 instead of vue@3.5.34. vuetify@3.12.6 calls app.onUnmount (a Vue 3.5 API) in its install(), so the inquirer-gui plugin tests fail at runtime with 'app.onUnmount is not a function'. Pin vue to 3.5.34 workspace-wide (overrides). 3.5.34 was already the version every Vue consumer resolved to on main except task-explorer's rpc; 3.5.34 is backward compatible with its 3.4.3 pin (verified: vue_frontend_rpc ci + inquirer-gui plugin tests + task-explorer all pass). Eliminates vue@3.4.3 from the tree, so no dual Vue instance. Restores the auto-complete-plugin test to green. Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
Contributor
Build ReportPlease note:
|
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.
What
Migrates SAP/cloud-foundry-tools (v8.1.2) into the monorepo under
projects/cloud-foundry-tools/. Three packages, all private (never published to npm):packages/backend—vscode-cf-tools: the Cloud Foundry Tools VS Code extension (VSIX).packages/frontend—cloud-foundry-tools-frontend: Vue 3 webview, bundled into the extension.packages/wrapper—vscode-wing-cf-tools: deprecated wrapper extension, kept for backward compatibility.Why
Consolidate the standalone OSS repo into app-studio-toolkit, on the shared pnpm + Changesets toolchain.
Behaviour
No functional change. Pure relocation + toolchain wiring. Same source, same version (8.1.2). Extensions build the same VSIX artifacts.
Reviewer's guide
Commits are ordered and each does one thing:
CHANGELOG.md→CHANGELOG.old.md(+ header); fresh emptyCHANGELOG.md. Per-packageLICENSEdropped (root REUSE covers legal vialegal-copy.js).projects/cloud-foundry-tools/tsconfig.base.json(extends root,skipLibCheck); declare@types/rimraf(backend) andlodash(frontend) that were yarn-hoisted in the source and pnpm needs explicit; repository fields.nyc.config.js(source referenced repo-root../../nyc.config); copywebpack.config.vscode.base.jsto project root with pnpm workspace-root module resolution; replace deprecatedvsce@1.100.1with@vscode/vsce@2.24.0+--no-dependencies(monorepo standard); dropconfig.commitizen(broke pnpm env-var passing).--print-width 120).ignore(no fixed group: no internal workspace edges); backend + wrapper redirect nyc to./reportsso these VS Code extensions stay out of the root merged 100% gate (which targets library packages) and keep their own thresholds — matching the guided-development / yeoman-ui extension-backend precedent.coverage:copyexports lcov for coveralls.Verification (local, scoped gate)
cipass: backend 299 tests, frontend 43, wrapper 2; VSIX packaged for backend + wrapper.eslintclean,prettier --checkclean,changeset statusshows no graph break.merge-coveragepasses (cf-tools extensions correctly excluded; library gate stays 100%).Notes
@sap/cf-tools@^3.2.2(backend dep) resolves from npm; the in-flight cf-tools-api migration (Migrate cloud-foundry-tools-api (@sap/cf-tools) into the monorepo #615) doesn't change that (semver range still satisfied). Cross-project consumer stays exact-pinned per policy.Independent-review gate pending; opening as draft until the reviews are complete.