Skip to content

Angular migration#27

Merged
danieldanan merged 8 commits into
masterfrom
angular-migration
Jul 2, 2026
Merged

Angular migration#27
danieldanan merged 8 commits into
masterfrom
angular-migration

Conversation

@danieldanan

Copy link
Copy Markdown
Collaborator

migration to angular

- Replace deprecated eslint@8 with eslint@9
- Add @eslint/js and globals as dev dependencies
- Migrate .eslintrc.json to eslint.config.mjs (ESLint v9 flat config format)
- Remove stale eslint-disable-next-line comment in LreTestRunner.ts
  (no-constant-condition no longer flags while(true) in v9)
Eliminates CI deprecation warnings for:
  eslint@8, @humanwhocodes/config-array, @humanwhocodes/object-schema,
  rimraf@3 (transitive), inflight (transitive), glob@7 (transitive)
VSIX output path (critical bug):
- Change --output-path from .\\out to ./out in package:vsix script
- On Linux/bash, .\\out was interpreted as .out (a hidden directory),
  causing the CI artifact upload to fail with 'No files were found'
GitHub Actions Node 20 deprecation warnings:
- Add ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true at workflow level in
  ci.yml and release.yml to suppress informational warnings emitted while
  actions/checkout, actions/setup-node and actions/upload-artifact
  (which declare node20 as their internal runtime) are force-run on the
  Node 24 runner; the actions function correctly on Node 24
Git default-branch hint:
- Add 'git config --global advice.defaultBranchName false' step after
  each checkout to suppress the 'Using master as initial branch' hint
- Change package:vsix output path from angular/out/ to Extension/
  tfx now writes directly to the root Extension/ folder; no intermediate
  angular/out/ directory and no copy step needed
- Remove angular/copy-to-extension.js (no longer required)
- Update ci.yml artifact upload path: angular/out/*.vsix -> Extension/*.vsix
- Update release.yml VSIX file lookup: angular/out/ -> Extension/,
  with version-specific selection before falling back to latest
- Remove Extension/*.vsix from release commit step
  The VSIX is published as a GitHub Release asset only; it is not
  committed back to the repository
rimraf@5 brought in glob@10.5.0 which triggers a security deprecation
warning in npm. Since the project requires Node >= 20, fs.rmSync with
{recursive:true, force:true} is available as a zero-dependency drop-in.
Removes: rimraf, glob@10.5.0 (and their transitive packages)
glob is now completely absent from the dependency tree.
Replace Extension/*.vsix glob with a precise path resolved from the
version in vss-extension.json, so the artifact contains only the single
VSIX produced by the current build.
The VSIX was bundling all node_modules including devDependencies:
- typescript (~22.5 MB) - only needed for compilation
- @esbuild + esbuild (~11 MB) - only needed by tsx for integration tests
- @typescript-eslint/* (~3.9 MB) - linting only
- eslint + @eslint/* (~4.3 MB) - linting only
- @types/* (~2.4 MB) - compile-time only
- tsx (~0.5 MB) - integration test runner only
This caused the VSIX node_modules to be ~59 MB (local) or ~80 MB (CI,
where the Linux esbuild binary was duplicated via .bin symlink resolution).
Fix: run 'npm prune --omit=dev' after the TypeScript build step and before
tfx packages the VSIX. This leaves only production dependencies in
node_modules, reducing expected VSIX node_modules from ~59 MB to ~10 MB.
- ci.yml: add 'Prune dev dependencies' step between build and package
- release.yml: same
- package.json: update package:vsix script to prune before packaging
  and restore devDeps after (npm --prefix LreCiTask install)
@danieldanan danieldanan merged commit 9557d0f into master Jul 2, 2026
1 check passed
@danieldanan danieldanan deleted the angular-migration branch July 2, 2026 14:58
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.

1 participant