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