Skip to content

Modernize CI, linting, and test tooling#18

Merged
dduugg merged 6 commits intomainfrom
update/modernize-tooling
Apr 13, 2026
Merged

Modernize CI, linting, and test tooling#18
dduugg merged 6 commits intomainfrom
update/modernize-tooling

Conversation

@dduugg
Copy link
Copy Markdown
Contributor

@dduugg dduugg commented Apr 13, 2026

This PR adds a GitHub Actions CI workflow and modernizes the extension's dev tooling, which hadn't been updated since ~2019–2020.

CI

Adds .github/workflows/ci.yml with two parallel jobs — lint and test — triggered on pushes to main and PRs. The test job uses xvfb-run since the VS Code test runner requires a display on headless Linux.

Linting

Replaces tslint (abandoned 2019) with ESLint + @typescript-eslint. Rules from tslint.json are ported to .eslintrc.json; the test-specific override relaxing no-unused-expressions for chai is preserved via an overrides block.

Test runner

Replaces the deprecated vscode npm package with @vscode/test-electron. test/index.ts now exports the run() function the new runner expects, and test/runTests.ts drives VS Code download and launch.

Dependencies

  • Node 18 (EOL Apr 2025) → 22
  • TypeScript 3 → 5; tsconfig target raised to ES2019 for named capture group support in the existing regex
  • mocha 6 → 10, sinon 7 → 19, all @types/* bumped to current

A handful of pre-existing lint violations (missing semicolons, double quotes, missing curly braces, a shadowed variable) were fixed as part of enabling the stricter ruleset.

dduugg added 2 commits April 13, 2026 09:48
Runs lint and tests on every push to main and on pull requests.
Tests use xvfb-run on Ubuntu since the VS Code test runner requires a display.
- Replace abandoned tslint with ESLint + @typescript-eslint; rules ported
  from tslint.json (test/ overrides preserved for chai's unused expressions)
- Replace deprecated `vscode` test package with @vscode/test-electron;
  test/index.ts now exports run() and test/runTests.ts drives the launch
- Update TypeScript 3→5, mocha 6→10, sinon 7→19, @types/* to current;
  raise tsconfig target to ES2019 for named capture group support
- Fix pre-existing lint violations surfaced by stricter rules (quotes,
  semicolons, curly, no-shadow)
@github-project-automation github-project-automation Bot moved this to Triage in Modularity Apr 13, 2026
@dduugg dduugg marked this pull request as ready for review April 13, 2026 16:50
@dduugg dduugg requested a review from a team as a code owner April 13, 2026 16:50
dduugg added 4 commits April 13, 2026 09:52
Each console.debug/log call is noted as likely redundant and suppressed
with eslint-disable-next-line rather than removed, since removal is a
behavioral change outside the scope of this tooling PR.
The two calls immediately preceding showWarningMessage note that the
same stderr is already surfaced via the proper VS Code notification
channel. The rest remain as generic "likely redundant" notes.
@dduugg dduugg merged commit 0d30772 into main Apr 13, 2026
2 checks passed
@dduugg dduugg deleted the update/modernize-tooling branch April 13, 2026 17:58
@github-project-automation github-project-automation Bot moved this from Triage to Done in Modularity Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants