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.

39 lines · 2.2 KBRaw History
1# Publishing to the VS Code Marketplace and Open VSX
2
3The extension is served by every Diffinery instance (`/-/vscode/diffinery.vsix`, built by
4`apps/diffinery/scripts/build-docs.mjs`). These are the steps for listing it on the marketplaces as well. Cursor,
5Windsurf and VSCodium install from Open VSX; VS Code installs from the Visual Studio Marketplace, so both are needed.
6
7## Before the first upload
8
91. Set `"license": "Apache-2.0"` in `package.json` and ship a copy of the repository's `LICENSE` in the package (both
10 registries show it; `vsce` warns without it).
112. Create the `codician` publisher on the Marketplace (https://marketplace.visualstudio.com/manage, which needs an
12 Azure DevOps organization for the personal access token) and the `codician` namespace on Open VSX
13 (`npx ovsx create-namespace codician`, after signing the Eclipse publisher agreement). The extension id
14 `codician.diffinery` is what the server's OAuth client (`EDITOR_EXTENSION_ID` in `apps/diffinery/src/auth/oauth.ts`)
15 and the docs use, so keep it.
163. Marketplace builds update through the marketplace: ship them with `diffinery.checkForUpdates` defaulting to
17 `false`, or have `src/updates.ts` skip the check when the extension was installed from a gallery, so the two
18 update paths don't fight.
19
20## Listing
21
22| Field | Value |
23| --- | --- |
24| Name | Diffinery |
25| Short description | `description` in `package.json` |
26| Categories | SCM Providers, Other |
27| Icon | `media/icon.png` (128×128) |
28| Banner | `galleryBanner` in `package.json` |
29| Details page | `README.md` (relative image links are rewritten to the repository) |
30| Changelog | `CHANGELOG.md` |
31| Q&A / issues | `bugs.url` in `package.json` |
32
33## Each release
34
351. Bump `version` in `package.json` and add a `CHANGELOG.md` entry.
362. `node scripts/package.mjs --out dist` builds `dist/diffinery-<version>.vsix`, the same file diffinery.com serves.
373. `npx @vscode/vsce publish --packagePath dist/diffinery-<version>.vsix` and
38 `npx ovsx publish dist/diffinery-<version>.vsix`, with the tokens from step 2 of *Before the first upload* in `VSCE_PAT` and `OVSX_PAT`.
394. Deploying Diffinery keeps diffinery.com serving the same version for people who installed from there.