Internals
Development and release
Run quality checks, build local and cross-platform binaries, install locally, tag releases, and publish npm packages.
Prerequisites
Maintainers need:
- Go
1.26+ - Node
18+ - npm publish rights for the
webctxpackage - GitHub repository admin access for releases and secrets
Local checks
Run the full check target:
make check
It runs:
gofmt
go test ./...
go vet ./...
npm run lint
The npm lint path currently checks the JavaScript shim and postinstall script syntax:
node --check bin/webctx.js
node --check scripts/postinstall.js
Build locally
make build
./dist/webctx --help
The build uses trimpath and linker flags for version metadata.
Build all release binaries
make build-all
Targets:
darwin/amd64
darwin/arm64
linux/amd64
linux/arm64
windows/amd64
Install locally
make install-local
This installs the built binary to ~/.local/bin/webctx.
Release process
- Run checks:
make check
-
Confirm
package.jsonpoints toamxv/webctxand the release workflow targetswebctx. -
Create and push a tag:
make release-tag VERSION=0.1.2
- The GitHub Actions release workflow should build binaries, create the GitHub Release, and publish npm.
Required secret
The release workflow needs:
NPM_TOKEN
Set it with GitHub CLI:
gh secret set NPM_TOKEN --repo amxv/webctx