Publishing to the VS Code Marketplace and Open VSX
Not done yet: for now the extension is served only from diffinery.com (/-/vscode/diffinery.vsix, built by
apps/diffinery/scripts/build-docs.mjs). These are the steps for when Diffinery goes public. Cursor, Windsurf and
VSCodium install from Open VSX; VS Code installs from the Visual Studio Marketplace, so both are needed.
Before the first upload
- Add a
LICENSEfile and alicensefield inpackage.json(both registries show it;vscewarns without it). - Create the
codicianpublisher on the Marketplace (https://marketplace.visualstudio.com/manage, needs an Azure DevOps organization for the personal access token) and thecodiciannamespace on Open VSX (npx ovsx create-namespace codician, after signing the Eclipse publisher agreement). The extension idcodician.diffineryis what the server's OAuth client (EDITOR_EXTENSION_IDinapps/diffinery/src/auth/oauth.ts) and the docs use, so keep it. - Marketplace builds update through the marketplace: ship them with
diffinery.checkForUpdatesdefaulting tofalse, or havesrc/updates.tsskip the check when the extension was installed from a gallery, so the two update paths don't fight.
Listing
| Field | Value |
|---|---|
| Name | Diffinery |
| Short description | description in package.json |
| Categories | SCM Providers, Other |
| Icon | media/icon.png (128×128) |
| Banner | galleryBanner in package.json |
| Details page | README.md (relative image links are rewritten to the repository) |
| Changelog | CHANGELOG.md |
| Q&A / issues | bugs.url in package.json |
Each release
- Bump
versioninpackage.jsonand add aCHANGELOG.mdentry. node scripts/package.mjs --out distbuildsdist/diffinery-<version>.vsix, the same file diffinery.com serves.npx @vscode/vsce publish --packagePath dist/diffinery-<version>.vsixandnpx ovsx publish dist/diffinery-<version>.vsix, with the tokens from steps 2 above inVSCE_PATandOVSX_PAT.- Deploying Diffinery keeps diffinery.com serving the same version for people who installed from there.