Raise the minimum VS Code version to 1.110 - #57
Merged
Merged
Conversation
@types/vscode is ^1.110.0, and vsce won't package an extension whose engines.vscode allows older versions than the API it compiles against, so packaging failed with engines.vscode at ^1.67.0. Packaging also failed because package.json had a files list alongside the .vscodeignore from the original yo code scaffold, and vsce won't combine the two. This keeps the files allowlist, narrowed to the bundle, CHANGELOG and LICENSE (vsce adds package.json and the README itself), and drops .vscodeignore. The README's relative image link is rewritten to the GitHub URL, so images/ doesn't need to ship. npx vsce package now produces a 7-file, 20 KB .vsix.
6 tasks done
dduugg
added a commit
that referenced
this pull request
Sep 30, 2026
* Add npm to Dependabot config Group minor and patch updates into one monthly PR with a 7-day cooldown, matching the github-actions entry. Majors arrive as separate PRs so each can be migrated on its own. Use the increase-if-necessary versioning strategy so updates that fit the existing range change only package-lock.json. The default strategy raises every range, including @types/vscode past engines.vscode, and vsce refuses to package when the @types/vscode range exceeds engines.vscode (see #57). CI doesn't run vsce, so that would first fail at publish time. * Update dependencies within their existing ranges Run npm update, which moves every package to the newest version its range allows, including transitive dependencies. No ranges in package.json change. Notable direct updates: - @types/node 25.5.0 -> 25.9.8 - @types/vscode 1.110.0 -> 1.138.0 - @typescript-eslint/* 8.57.2 -> 8.71.0 - eslint 10.1.0 -> 10.11.0 - jest 30.3.0 -> 30.5.2, ts-jest 29.4.6 -> 29.4.14 - prettier 3.8.1 -> 3.9.9 - ts-loader 9.5.4 -> 9.6.2 - webpack 5.105.4 -> 5.111.1, webpack-cli 7.0.2 -> 7.2.3 webpack 5.111 replaces terser-webpack-plugin with webpack's own minimizer-webpack-plugin, and jest-haste-map 30.5 adds @parcel/watcher. * Upgrade TypeScript to 6.0 and enable strict mode TypeScript 7 is out, but typescript-eslint supports only >=4.8.4 <6.1.0, so pin ~6.0.3, the latest release it supports. TypeScript 6 changes two defaults that matter here: - types defaults to [], so the declarations in @types/node and @types/jest (setTimeout, describe, and built-in modules like path and fs) are no longer loaded implicitly. List both. @types/vscode and @types/js-yaml still resolve through their imports. - strict defaults to true. Set it explicitly in place of the narrower strictNullChecks. It reports only catch variables typed as unknown, at the two catch blocks that read .message. Add an errorMessage() helper: for the Error and stderr-string rejections those blocks see, it logs the same text as before. * Upgrade js-yaml to 5 js-yaml 5 ships its own type declarations, so drop @types/js-yaml. The namespace import and yaml.load() call keep working unchanged. Its load() now defaults to the YAML 1.2 core schema, which no longer resolves `<<` merge keys. A team config that inherits slack.room_for_humans through `<<: *defaults` would lose its Slack action, so load team configs with CORE_SCHEMA plus mergeTag, the migration guide's way to restore v4's merge handling. The other v5 changes don't affect this call: load() now throws on empty input, and getSlackChannel() already returns undefined when load() throws. * Regenerate package-lock.json with npm 11.19.0 CI's Node 24.21 ships npm 11.19.0, whose npm ci rejected the lockfile written by npm 11.6.1 as out of sync: it was missing top-level @emnapi/core and @emnapi/runtime. They are optional peers of @napi-rs/wasm-runtime, part of unrs-resolver's WebAssembly fallback, so nothing failed locally. npm install under 11.19.0 adds those two entries. The other changes are peer flags that 11.19.0 records differently. No other package versions change, and both npm 11.6.1 and 11.19.0 now accept the lockfile in npm ci.
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
Follow-up to #55.
npx vsce packagefailed twice before it could produce a.vsix, so the tag-triggeredpublish.ymlcouldn't have succeeded.engines.vscodegoes from^1.67.0to^1.110.0. The extension compiles against@types/vscode^1.110.0, and vsce won't package an extension that claims to support older VS Code versions than its API types. The CHANGELOG notes the new minimum under Unreleased.package.jsonhad afileslist, and the repo also had the.vscodeignorefrom the originalyo codescaffold. vsce refuses to combine the two. This keepsfiles, narrowed todist/extension.js,CHANGELOG.mdandLICENSE, and deletes.vscodeignore.package.jsonand the README itself.images/hero.giflink is rewritten to the GitHub URL, soimages/doesn't need to ship.dist/*.mapanddist/*.d.tskeeps what the.vscodeignoreused to exclude.Test plan
npm ci,npm t, thennpx vsce package: packaged 7 files, 20 KB (manifest,package.json, README, CHANGELOG, LICENSE,dist/extension.js).