Skip to content

chore: migrate guided-development - #601

Merged
jacob-kreyenbuehl merged 19 commits into
mainfrom
migrate/guided-development
Sep 9, 2026
Merged

chore: migrate guided-development#601
jacob-kreyenbuehl merged 19 commits into
mainfrom
migrate/guided-development

Conversation

@rolanbadrislamov

@rolanbadrislamov rolanbadrislamov commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Moves SAP/guided-development into projects/guided-development/.
  • Splits into three packages: packages/backend (publishable VSCode extension), packages/types (publishable @sap_oss/guided-development-types), packages/frontend (private Vue 3 app bundled into backend)
  • Six example/demo extensions land under examples/ as private: true

Key changes

  • All sibling deps use workspace:* protocol (no exact-version pins that would break changeset version)
  • Root .eslintrc.js extended with projects/guided-development/** overrides to handle legacy TSLint-era code without rewriting source logic
  • Replaced broken import { bas } (ambient-only, not exported) with import { BasToolkit } throughout backend and tests
  • Removed skipLibCheck: true from all tsconfigs; added @types/minimatch@^3.0.5 to example packages to satisfy @types/glob@7 transitive dep
  • Deleted per-package .eslintrc (had "root": true which blocked the root config from applying)

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>
@rolanbadrislamov rolanbadrislamov changed the title feat: migrate guided-development into monorepo chore: migrate guided-development into monorepo Sep 2, 2026
@rolanbadrislamov rolanbadrislamov changed the title chore: migrate guided-development into monorepo chore: migrate guided-development Sep 2, 2026
… 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>
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Build Report

badge

Please note:

  1. Files only stay for around 14 days!
  2. This comment will be updated with the data of the last successful build of this PR.
Name Link
Commit 1c7da10
Logs https://github.com/SAP/app-studio-toolkit/actions/runs/34241718030
VSIX Files https://github.com/SAP/app-studio-toolkit/actions/runs/34241718030/artifacts/10062407197

bd82
bd82 previously requested changes Sep 3, 2026

@bd82 bd82 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see inline comments

Comment thread .gitignore Outdated
Comment thread .eslintrc.js
Comment thread .changeset/config.json Outdated
Comment thread projects/guided-development/package.json Outdated
Comment thread projects/guided-development/README.md Outdated
Comment thread projects/guided-development/packages/backend/README.md Outdated
Comment thread projects/guided-development/packages/backend/README.md Outdated
Comment thread projects/guided-development/packages/frontend/package.json
Comment thread projects/guided-development/packages/frontend/package.json
Comment thread projects/guided-development/packages/frontend/README.md
@bd82

bd82 commented Sep 3, 2026

Copy link
Copy Markdown
Member

So the sap_oss scope will not become a blocker
it is possible to just mark the types package as private and even exlcude it from changesets config.
and leave it as tech debt to be resolved later.

Comment thread projects/guided-development/packages/backend/package.json Outdated
Comment thread .changeset/config.json Outdated
@jacob-kreyenbuehl
jacob-kreyenbuehl dismissed bd82’s stale review September 8, 2026 10:59

Testing dismiss capability per Shachar's instruction to proceed independently

@jacob-kreyenbuehl jacob-kreyenbuehl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 jacob-kreyenbuehl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All review comments addressed, changeset config fixed (backend moved to fixed group). Ready to merge.

Comment thread projects/guided-development/packages/backend/.gitignore Outdated
Comment thread projects/guided-development/packages/types/.gitignore Outdated
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>
Comment thread projects/guided-development/packages/backend/README.md
Comment thread projects/guided-development/packages/types/package.json
Comment thread projects/guided-development/.gitignore
@jacob-kreyenbuehl
jacob-kreyenbuehl merged commit 6588593 into main Sep 9, 2026
4 checks passed
@jacob-kreyenbuehl
jacob-kreyenbuehl deleted the migrate/guided-development branch September 9, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants