Skip to content

@vscode-scoped npm packages #130301

@connor4312

Description

@connor4312

Historically we've published VS Code-related npm packages with the vscode- prefix. This has a few downsides:

  • Contributor access needs to be managed individually. Contributors need to be manually removed from packages when they leave the team, and it's possible to lose access to packages. This has happened in the past, and multiple maintained packages only have a single maintainer.
  • We cannot see or enforce 2FA for individual packages.
  • It's hard for users to know what are "official" VS Code packages, and easy for others to typo-squat

These would be solvable by moving packages to the Github Package Registry which has a more advanced access model. However this requires all consumers of the packages to manually edit their .npmrc files in order to install packages, which can be a headache in CI and for inexperienced Javascripters.

The other solution is to use npm organizations. We have created the @vscode organization on npm, and we recommend that published packages eventually move to be @vscode-scoped. This can be done in a non-breaking way by keeping the old package on npm and publishing new versions of the package under the @vscode organization. Moving a package involves:

  1. Messaging me your npm username if you do not have access to the npm org
  2. Renameing the package in your package.json, and then running npm install or yarn again to update your lock file.
  3. Running npm publish --access public
  4. Optionally running npm deprecate vscode-package-name "This package has been renamed to @vscode/package-name, please update to the new name"

Here are the packages we published which are vscode-prefixed. If these are still in maintained and in use, particularly if they're consumed by the public, consider moving them under the @VScode org:

  • generator-code cannot be renamed due to how yeoman discovers packages
  • vscode-test-web => @vscode/test-electron @connor4312
  • vscode-codicons => @vscode/codicons @misolori
  • vscode-uri => @vscode/uri @jrieken (no plans to migrate)
  • vscode-json-languageservice => @vscode/json-languageservice @aeschli (no plans to migrate)
  • vscode-css-languageservice => @vscode/css-languageservice @aeschli (no plans to migrate)
  • vscode-html-languageservice => @vscode/html-languageservice @aeschli (no plans to migrate)
  • vscode-json-languageserver => @vscode/json-languageserver @aeschli (no plans to migrate)
  • vscode-web-custom-data => @vscode/web-custom-data @aeschli
  • vscode-languageserver-textdocument => @vscode/languageserver-textdocument @dbaeumer (no plans to migrate)
  • vscode-chrome-debug-core => @vscode/chrome-debug-core @roblourens (Deprecated)
  • vscode-chrome-debug-core-testsupport => @vscode/chrome-debug-core-testsupport @roblourens (Deprecated)
  • vscode-ripgrep => @vscode/ripgrep @roblourens
  • vscode-cached-file-search-provider => @vscode/cached-file-search-provider @roblourens (Deprecated)
  • vscode-debug-logger => @vscode/debug-logger @roblourens (Deprecated)
  • vscode-ripgrep-dynamic => @vscode/ripgrep-dynamic @roblourens (Deprecated)
  • lsif protocol packages -- should these be under the vscode org even though they're not vscode specific? @dbaeumer (no plans to migrate)
  • vscode-languageserver => @vscode/languageserver @dbaeumer (no plans to migrate)
  • vscode-languageworker => @vscode/languageworker @dbaeumer (no plans to migrate)
  • vscode-languageserver-types => @vscode/languageserver-types @dbaeumer (no plans to migrate)
  • vscode-languageserver-protocol => @vscode/languageserver-protocol @dbaeumer (no plans to migrate)
  • vscode-nls => @vscode/nls @dbaeumer (no plans to migrate)
  • vscode-nls-dev => @vscode/nls-dev @dbaeumer (no plans to migrate)
  • vscode-jsonrpc => @vscode/jsonrpc @dbaeumer (no plans to migrate)
  • vscode-emmet-helper => @vscode/emmet-helper @rzhao271
  • vscode-windows-registry => @vscode/windows-registry @sbatten
  • iconv-lite-umd => @vscode/iconv-lite-umd @bpasero
  • vscode-telemetry-extractor => @vscode/telemetry-extractor @lramos15
  • vscode-textmate => @vscode/textmate @alexdima (no plans to migrate)
  • vscode-debugprotocol => @vscode/debugprotocol @weinand
  • vscode-debugadapter => @vscode/debugadapter @weinand
  • vscode-debugadapter-testsupport => @vscode/debugadapter-testsupport @weinand
  • vscode-js-debug-browsers => @vscode/js-debug-browsers @connor4312
  • vscode-sqlite3 => @vscode/sqlite3 @bpasero
  • vscode-jupyter-lsp-middleware => @vscode/jupyter-lsp-middleware @rebornix
  • vscode-textbuffer => @vscode/textbuffer @rebornix
  • vscode-extension-telemetry => @vscode/extension-telemetry @lramos15 @sbatten

Metadata

Metadata

Labels

debtCode quality issuesengineeringVS Code - Build / issue tracking / etc.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions