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 webctx package
  • 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

  1. Run checks:
make check
  1. Confirm package.json points to amxv/webctx and the release workflow targets webctx.

  2. Create and push a tag:

make release-tag VERSION=0.1.2
  1. 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