PocketStack accepts changes that preserve the browser-only contract:
- no hidden backend
- no remote runner fallback
- no Docker daemon requirement at demo time
- no claims that arbitrary Linux containers run in the browser
Good contributions make the supported surface clearer. If a Compose feature cannot be represented by a browser adapter, prefer a precise unsupported reason over a partial demo that looks more compatible than it is.
Before opening a change:
npm ci
npm run build:wasi-example
npm run build:runtime
npm run test:runtime
npm run test:action
npm run showcases:install
npm run showcases:build
npm run test:showcases
go test ./...
go vet ./...
make smokemake smoke builds the binary, regenerates every example demo, and runs the
generated-demo checks, including all three showcase projects. make release-check additionally runs go vet, a
GoReleaser snapshot build, and checksum verification — run it before preparing a
release.
Work on a branch and open a pull request against main. Note user-facing
changes in CHANGELOG.md under an Unreleased/next-version
heading; the release process covers tagging and
publishing.
New adapters should add:
- analyzer classification tests;
- generated manifest coverage;
- browser runtime tests;
- an example Compose project;
- documentation under docs/adapters/;
- clear unsupported-feature reporting for nearby cases that still cannot work.
The full developer guide — repo layout, prerequisites, and the new-adapter walkthrough — lives at docs/contribute/.