Diffinery

codician/diffinerypublic

Open-source, agent-first GitHub and GitHub Actions alternative that runs on your own Cloudflare account: git hosting, pull requests, code review and drop-in GitHub Actions YAML on Workers, Durable Objects, R2 and Containers.

38 lines · 2.1 KBRaw History

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

  1. Add a LICENSE file and a license field in package.json (both registries show it; vsce warns without it).
  2. Create the codician publisher on the Marketplace (https://marketplace.visualstudio.com/manage, needs an Azure DevOps organization for the personal access token) and the codician namespace on Open VSX (npx ovsx create-namespace codician, after signing the Eclipse publisher agreement). The extension id codician.diffinery is what the server's OAuth client (EDITOR_EXTENSION_ID in apps/diffinery/src/auth/oauth.ts) and the docs use, so keep it.
  3. Marketplace builds update through the marketplace: ship them with diffinery.checkForUpdates defaulting to false, or have src/updates.ts skip the check when the extension was installed from a gallery, so the two update paths don't fight.

Listing

FieldValue
NameDiffinery
Short descriptiondescription in package.json
CategoriesSCM Providers, Other
Iconmedia/icon.png (128×128)
BannergalleryBanner in package.json
Details pageREADME.md (relative image links are rewritten to the repository)
ChangelogCHANGELOG.md
Q&A / issuesbugs.url in package.json

Each release

  1. Bump version in package.json and add a CHANGELOG.md entry.
  2. node scripts/package.mjs --out dist builds dist/diffinery-<version>.vsix, the same file diffinery.com serves.
  3. npx @vscode/vsce publish --packagePath dist/diffinery-<version>.vsix and npx ovsx publish dist/diffinery-<version>.vsix, with the tokens from steps 2 above in VSCE_PAT and OVSX_PAT.
  4. Deploying Diffinery keeps diffinery.com serving the same version for people who installed from there.