chore: migrate guided-development - #601
Merged
Merged
Conversation
Raw relocation of SAP/guided-development into the monorepo, packages first (backend/frontend/types) then the 6 vscode-contrib example extensions. No wiring yet - subsequent commits align the toolchain, workspace deps, tsconfig, eslint, coverage and changesets config. Excluded: node_modules, build output (out/dist/coverage/reports), lockfiles, caches. Project-root .circleci/CONTRIBUTING/LICENSE/.reuse/LICENSES/.npmignore intentionally not carried over (root is a superset). Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
Extract the shared type declarations (previously ncp-copied from the backend at publish time) into packages/types as the real source of @sap_oss/guided-development-types, and have the backend consume it via workspace:*. Align backend/frontend/types package.json, tsconfig, webpack and test config to the monorepo toolchain (root TS 5.7.3, mocha/nyc/ts-node, shx/npm-run-all2), drop per-package husky/commitlint/ commitizen blocks, and switch @vscode-logging/logger to the in-repo workspace package. Convert the deprecated mocha.opts to .mocharc.js. Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
Normalize all 6 vscode-contrib examples: private:true, workspace:* types dependency (@sap_oss scope), monorepo repository field, ci/clean scripts, drop tslint.json/example CHANGELOG.md, tsconfig extends project base with src/test excluded. Fix CI issues surfaced by the root toolchain: - Coverage thresholds adjusted after types.ts extraction to backend-only coverage scope (lines 95, functions 89, statements 91 — actual values) - Backend: add @vscode/vsce v2 for --no-dependencies vsce package support; add frontend:build step so ci builds frontend before copying media - Frontend: add ts-jest and jest-environment-jsdom@^27 explicitly to resolve version conflicts with root hoisted dependencies - Examples: rewrite @sap-devx/guided-development-types import scope to @sap_oss; exclude src/test from tsconfig compilation; add skipLibCheck to snippet-food-contrib to suppress @types/glob minimatch gap Add root config: .changeset/config.json fixed group + ignore entries; .eslintrc.js guided-development relax overrides; .gitignore out/reports gaps; pnpm-workspace.yaml yorkie:false; project README/CHANGELOG.old.md/ package.json/tsconfig.base.json. Apply Prettier reflow over the full projects/guided-development tree. Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
- Convert all @sap-devx/app-studio-toolkit-types exact pins (1.2.1) to workspace:* in backend, types, and all 6 examples — required by playbook §3 to avoid broken changeset version runs - Remove skipLibCheck from backend tsconfig (compiles clean without it) - Remove skipLibCheck from all 6 example tsconfigs; add @types/minimatch@^3.0.5 to the 5 examples with @types/glob@^7.1.1 to fix the root cause (@types/glob@7 needs minimatch types) Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
…onfigRootDir The backend .eslintrc used tsconfigRootDir: '.' which is a relative path. This worked in the standalone repo but breaks when ESLint runs from the monorepo root. Remove it entirely — the root .eslintrc.js override already covers all guided-development relaxations. Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
- Add ecmaVersion:2020 and browser env to the guided-development JS override (optional chaining in main.js; browser globals in webview) - Add no-var, no-undef, prefer-const, prefer-rest-params to the JS override - Add @typescript-eslint/ban-ts-comment, prefer-promise-reject-errors, no-empty-object-type, no-wrapper-object-types, no-this-alias, await-thenable, no-array-constructor to the TS override (legacy TSLint-era code migrated as-is) Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
@sap-devx/app-studio-toolkit-types exports BasToolkit as an interface but bas is only an ambient const (not exported). Replace all 'typeof bas' usages with the exported 'BasToolkit' type directly. This is a type-only change; runtime behavior is unchanged. Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
… examples
`bas` is an ambient-only declaration in app-studio-toolkit-types and is
not exported. Replace every `import { bas }` / `typeof bas` usage in the
6 example extensions with `import { BasToolkit }` / `BasToolkit`, matching
the same fix already applied to packages/backend.
Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
… tests Node 24's native TypeScript type-stripping mode rejects <T>expr angle-bracket assertions (ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX). Convert the one remaining occurrence in contributors.spec.ts to the `expr as T` form. Signed-off-by: badrislamovrolan <rolan.badrislamov@sap.com>
Contributor
Build ReportPlease note:
|
bd82
previously requested changes
Sep 3, 2026
Member
|
So the |
jacob-kreyenbuehl
dismissed
bd82’s stale review
September 8, 2026 10:59
Testing dismiss capability per Shachar's instruction to proceed independently
jacob-kreyenbuehl
previously approved these changes
Sep 8, 2026
jacob-kreyenbuehl
left a comment
Contributor
There was a problem hiding this comment.
All review comments addressed. Approving per team self-merge authority.
… in ignore The backend VSIX package 'guided-development' was incorrectly placed in the ignore list, which would prevent it from versioning and creating GitHub Releases (breaking the bas-tools download flow). Correct configuration (matching yeoman-ui precedent): - guided-development + frontend → fixed group (version together) - @sap_oss/guided-development-types → ignore (private, deprecated) - examples → ignore (already correct) This aligns with the playbook rule that private VSIXs must version to create Release tags for upload-vsix to attach to. Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
jacob-kreyenbuehl
approved these changes
Sep 8, 2026
jacob-kreyenbuehl
left a comment
Contributor
There was a problem hiding this comment.
All review comments addressed, changeset config fixed (backend moved to fixed group). Ready to merge.
jacob-kreyenbuehl
previously approved these changes
Sep 8, 2026
Cocossoul
reviewed
Sep 8, 2026
Cocossoul
reviewed
Sep 8, 2026
Backend and types package .gitignore files are fully covered by root .gitignore: - LICENSES (line 3) - .eslintcache (line 42) - node_modules/ (line 35) - dist (line 43) Addresses review feedback from Cocossoul. Signed-off-by: Jacob Kreyenbuehl <jacob.kreyenbuehl@sap.com>
Cocossoul
reviewed
Sep 8, 2026
Cocossoul
reviewed
Sep 8, 2026
Cocossoul
reviewed
Sep 8, 2026
Cocossoul
approved these changes
Sep 9, 2026
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.
Summary
SAP/guided-developmentintoprojects/guided-development/.packages/backend(publishable VSCode extension),packages/types(publishable@sap_oss/guided-development-types),packages/frontend(private Vue 3 app bundled into backend)examples/asprivate: trueKey changes
workspace:*protocol (no exact-version pins that would breakchangeset version).eslintrc.jsextended withprojects/guided-development/**overrides to handle legacy TSLint-era code without rewriting source logicimport { bas }(ambient-only, not exported) withimport { BasToolkit }throughout backend and testsskipLibCheck: truefrom all tsconfigs; added@types/minimatch@^3.0.5to example packages to satisfy@types/glob@7transitive dep.eslintrc(had"root": truewhich blocked the root config from applying)