Releasing
| Artifact | Where | How |
|---|---|---|
@himmetkaan/remote-devtools, @himmetkaan/remote-devtools-protocol, @himmetkaan/remote-devtools-mdns | npm | Changesets + the Release workflow |
| Relay + UI image | ghcr.io/hks/remote-devtools | The Docker image workflow, on version tags |
| Documentation | GitHub Pages | The Docs workflow, on every push to main |
| Desktop app | GitHub Releases (desktop-vX.Y.Z) | The Desktop release workflow, on desktop-v* tags; see macOS signing |
The relay and the UI are not published to npm; they ship inside the Docker image and the desktop app.
npm packages
With every user-facing change, add a changeset and commit it with the change:
bashpnpm changesetThe SDK and the protocol package are versioned together; the mDNS package has its own version.
When changesets reach
main, theReleaseworkflow opens (or updates) a Version packages pull request that bumps versions and writes the changelogs.Merging that pull request publishes the new versions to npm with provenance and tags them. No GitHub release is created: the desktop app's auto-update reads the repository's latest release, which must stay a desktop release.
The workflow needs an NPM_TOKEN repository secret: an npm granular access token with read and write access to the @himmetkaan packages. Prereleases can be made with pnpm changeset pre enter alpha.
Keep SDK_VERSION in sync
packages/sdk-js/src/client.ts reports SDK_VERSION in every hello. pnpm version-packages (run by the workflow) updates it from package.json; a test fails if they differ.
Docker image
Push a tag like v0.2.0 to build and publish ghcr.io/hks/remote-devtools:0.2.0 and :latest for linux/amd64 and linux/arm64. The workflow uses the built-in GITHUB_TOKEN; no secret is needed. After the first push, make the package public in the repository's Packages settings.
Documentation
The Docs workflow builds this site and deploys it to GitHub Pages. Enable Pages once in the repository settings with Source: GitHub Actions. Preview locally with pnpm docs:dev.
