Problem
Two CI coverage gaps:
1. build.yaml path filter is too narrow
.github/workflows/build.yaml ("Build VS Code Extension", which runs vsce package) only triggers on:
paths:
- 'apps/lsp/**'
- 'apps/vscode/**'
The packaged extension also bundles apps/vscode-editor, apps/vscode-markdownit, apps/quarto-utils, and most of packages/* (core, editor-*, quarto-core, _-prefixed packages, build, tsconfig, eslint configs). It also depends on root package.json, yarn.lock and turbo.json. A PR that touches only those files doesn't get a packaging check. test-positron.yaml has the same problem (it only triggers on apps/vscode/**).
test.yaml has no path filter, so tests do run. The gap is specifically that packaging and Positron tests don't run.
Fix: widen paths to cover every workspace in the extension's dependency closure plus the root manifests, or drop the path filter.
2. yarn lint never runs in CI
No workflow runs yarn lint, so lint errors build up unnoticed. Running it today will probably surface a backlog. Either fix those first, or add the job as non-blocking at first.
Fix: add a lint job to test.yaml (after yarn install). Consider doing this together with, or right after, the ESLint 10 flat-config migration (deps-upgrade-eslint-prettier.md), so we don't fix lint errors under a config that's about to be replaced.
Related
The yarn install --immutable --immutable-cache --check-cache flags used in these workflows are Yarn 2+ only, and Yarn 1 ignores them, so CI doesn't enforce the lockfile. That's tracked as the first step of the dependency-upgrade plan and should be fixed alongside this.
Found during the dependency-upgrade research.
Problem
Two CI coverage gaps:
1.
build.yamlpath filter is too narrow.github/workflows/build.yaml("Build VS Code Extension", which runsvsce package) only triggers on:The packaged extension also bundles
apps/vscode-editor,apps/vscode-markdownit,apps/quarto-utils, and most ofpackages/*(core, editor-*, quarto-core,_-prefixed packages, build, tsconfig, eslint configs). It also depends on rootpackage.json,yarn.lockandturbo.json. A PR that touches only those files doesn't get a packaging check.test-positron.yamlhas the same problem (it only triggers onapps/vscode/**).test.yamlhas no path filter, so tests do run. The gap is specifically that packaging and Positron tests don't run.Fix: widen
pathsto cover every workspace in the extension's dependency closure plus the root manifests, or drop the path filter.2.
yarn lintnever runs in CINo workflow runs
yarn lint, so lint errors build up unnoticed. Running it today will probably surface a backlog. Either fix those first, or add the job as non-blocking at first.Fix: add a lint job to
test.yaml(afteryarn install). Consider doing this together with, or right after, the ESLint 10 flat-config migration (deps-upgrade-eslint-prettier.md), so we don't fix lint errors under a config that's about to be replaced.Related
The
yarn install --immutable --immutable-cache --check-cacheflags used in these workflows are Yarn 2+ only, and Yarn 1 ignores them, so CI doesn't enforce the lockfile. That's tracked as the first step of the dependency-upgrade plan and should be fixed alongside this.Found during the dependency-upgrade research.