Use when creating a changeset, preparing a release, or bumping versions. Covers which packages to reference, how to write user-facing changeset descriptions, the release automation flow, and the npm/Docker version sync requirement. (project)
86
83%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
This repository uses changesets to drive a fully automated release pipeline. Create a changeset whenever your change affects published packages.
A changeset should be created when there is a change that is observable to a consumer of the
@cloudflare/sandbox package. This includes:
Create a new file in .changeset/ (e.g. .changeset/your-feature-name.md):
---
'@cloudflare/sandbox': patch
---
Brief description of your changeOnly reference @cloudflare/sandbox. Never list @repo/shared or @repo/sandbox-container — those are internal workspace packages and must not be versioned independently. Changes to them flow through the public package. Pre-commit hooks and CI enforce this.
Use patch for almost everything. The SDK is in beta:
patch — all normal changes (features, fixes, refactors)minor — breaking changes onlymajor — neverImportant: Changeset files should only reference @cloudflare/sandbox, never @repo/shared or @repo/sandbox-container. These internal packages should not be versioned independently - changes to them flow through the public package. Pre-commit hooks and CI will validate this rule.
Important: Write for end users. Changeset descriptions appear in GitHub releases - they're user-facing documentation, not internal notes.
# Bad - technical/internal focused
Add WebSocket transport for request multiplexing over a single connection
# Good - user-focused with clear benefit and usage
Add WebSocket transport to avoid sub-request limits in Workers and Durable Objects.
Enable with `useWebSocket: true` in sandbox options.Releases run via .github/workflows/release.yml. There is no manual publishing step.
package.jsonDocker image version MUST match the npm package version. This is enforced via ARG SANDBOX_VERSION in packages/sandbox/Dockerfile. Don't try to release them out of band.
packages/sandbox/src/version.tslinux/amd64 only, matching Cloudflare's production runtime (ARM Macs use Rosetta/QEMU locally, preserving dev/prod parity)registry.cloudflare.com/library/sandbox:{version} (with -python, -opencode, -musl, -desktop variants). Any authenticated Cloudflare customer can pull from the library/ namespace without our account ID..changeset/ is descriptive (fix-stream-encoding.md, not patch.md)@cloudflare/sandbox is listedpatch (or minor for breaking changes)f03920a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.