feat!: raise the VS Code floor to 1.136 - #62
Merged
Conversation
`@types/vscode` published 1.136.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.134.0` to `^1.136.0`. That is the whole of the breaking change. Every extension built on this package inherits the floor and must declare at least `^1.136.0` itself, which is why this is a major rather than a minor -- the API is byte-for-byte what 4.1.1 exposed. Verified by unpacking the published 4.1.1 tarball and diffing it against a fresh pack of this tree: `dist/`, `src/` and `bin/` are identical, and only `package.json`, `README.md` and `CHANGELOG.md` differ. The prose that named the floor is reworded rather than renumbered. It said 1.134.0 "is the newest `@types/vscode` there is" -- true when written, false the day 1.136.0 shipped, and nothing failed in between. It now states the rule the floor follows instead of a fact about the registry, so it has nothing left to go stale. 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.136.1, so the new floor was exercised against a host that actually has it. BREAKING CHANGE: `engines.vscode` is now `^1.136.0`. An extension on an older VS Code cannot install this version; it keeps 4.x, which is unaffected. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Uf34bXf9dd7BURuBCh7Wx
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 5.0.0.
engines.vscodemoves from^1.134.0to^1.136.0; nothingelse about the package changes.
Why
@types/vscodepublished 1.136.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.136.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 4.1.1 shipped. This wasmeasured rather than asserted: the published 4.1.1 tarball was downloaded and
unpacked, a fresh
npm packwas taken of this tree, and the two were compareddirectory by directory. Only
package.json,README.mdandCHANGELOG.mddiffer.
One sentence reworded rather than renumbered
The requirements section said the floor was 1.134.0 "because that is the newest
@types/vscodethere is". That was true when written and false the day 1.136.0shipped, and nothing failed in between. Renumbering it would buy until the next
types release. It now states the rule the floor follows, so there is no fact
about the registry left to go stale.
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.136.1, so the floor was exercised against ahost that actually has it rather than only against fakes
🤖 Generated with Claude Code