feat!: raise the VS Code floor to 1.137 - #69
Merged
Merged
Conversation
`@types/vscode` published 1.137.0, and this package's floor tracks it: the types decide the newest API the source may name, and `vsce` refuses to package an extension whose `@types/vscode` outruns its `engines.vscode`. Raising only the types would let code compile against an API the declared floor does not have, so `engines.vscode` moves with them, from `^1.136.0` to `^1.137.0`. That is the whole of the breaking change. Every extension built on this package inherits the floor and must declare at least `^1.137.0` itself, which is why this is a major rather than a minor -- the API is byte-for-byte what 5.0.0 exposed. Verified by unpacking the published 5.0.0 tarball and diffing it against a fresh pack of this tree: `dist/`, `src/` and `bin/` are identical, and only `package.json` and `README.md` differ. The prose needed only renumbering this time. Last release replaced the sentence that claimed a specific version was "the newest `@types/vscode` there is" with the rule the floor follows, so there was no stale fact left to correct -- and `tests/readme-versions.test.ts` caught the two places that still named 1.136 (the requirements table and the migration guide) before they could ship. Verified: `npm run quality` (format, five typecheck projects, lint, 1087 tests with coverage, knip, TypeDoc), `verify:package`, and both real-host contract lanes -- the Extension Host and web fixtures each report VS Code 1.137.0, so the new floor was exercised against a host that actually has it. BREAKING CHANGE: `engines.vscode` is now `^1.137.0`. An extension on an older VS Code cannot install this version; it keeps 5.x, which is unaffected. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NeGat1Bq4vzkzFBgtuc46G
# Conflicts: # package-lock.json # package.json
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.
Releases 6.0.0.
engines.vscodemoves from^1.136.0to^1.137.0; nothingelse about the package changes.
Why
@types/vscodepublished 1.137.0. This package's floor tracks it, because thetypes decide the newest API the source may name, and
vscerefuses to packagean extension whose
@types/vscodeoutruns itsengines.vscode. Raising onlythe types would let code compile against an API the declared floor does not
have, so the two move together.
Extensions built on this package inherit the floor and must declare at least
^1.137.0themselves. That inheritance is what makes this a major rather than aminor.
The API did not change
dist/,src/andbin/are byte-for-byte what 5.0.0 shipped. This wasmeasured rather than asserted: the published 5.0.0 tarball was downloaded and
unpacked, a fresh
npm packwas taken of this tree, and the two were compareddirectory by directory. Only
package.jsonandREADME.mddiffer.The prose needed only renumbering
5.0.0 replaced the sentence that named a specific version as "the newest
@types/vscodethere is" with the rule the floor follows, so there was no stalefact to correct this time — only the numbers.
tests/readme-versions.test.tsearned its place here: run before the prose wastouched, it failed on exactly the two places that still said 1.136 — the
requirements table and the migration guide — and passed once both moved.
Verification
npm run quality— format, five typecheck projects, lint, 1087 tests withcoverage, knip, TypeDoc
npm run verify:package— every subpath imports,require()is refused, theREADME samples typecheck against the packed types, the CLI runs from the
installed package
fixtures each report VS Code
1.137.0, so the floor was exercised against ahost that actually has it rather than only against fakes
🤖 Generated with Claude Code