release
Release
Guides the release of a new outport version. Runs pre-flight checks, determines the version, tags, and deploys docs.
Step 1 — Pre-flight
Verify master is clean and ready:
git checkout master
git pull
Check for uncommitted changes. If the working tree is dirty, stop and ask.
Run tests and lint:
just test
just lint
Both must pass before proceeding. If tests fail, stop and fix.
Step 2 — Determine version
Check the latest tag:
git tag --sort=-v:refname | head -5
Look at what's changed since the last release:
git log --oneline $(git tag --sort=-v:refname | head -1)..HEAD
Suggest the next version based on what changed:
- Patch (v0.X.Y+1): bug fixes only
- Minor (v0.X+1.0): new features, non-breaking changes
- Major: breaking changes (rare pre-1.0 — minor bumps are fine for breaking changes while pre-1.0)
Present the suggestion with the commit list and ask the user to confirm the version number before proceeding.
Step 3 — Tag and push
git tag vX.Y.Z
git push origin vX.Y.Z
This triggers the GitHub Actions release workflow which builds binaries and updates the Homebrew tap.
Step 4 — Deploy docs
Check if any docs changed since the last release:
git diff --name-only $(git tag --sort=-v:refname | head -2 | tail -1)..HEAD -- docs/ README.md
If docs changed, build and deploy:
npx vitepress build docs
npx wrangler pages deploy docs/.vitepress/dist --project-name outport-dev
If no docs changed, skip this step and say so.
Step 5 — Verify
Check the GitHub Actions run:
gh run list --limit 3
If the latest run is still in progress, let the user know and suggest they check back. If it completed, report the status.
Tell the user to verify the install when ready:
brew update && brew upgrade outport && outport --version
More from steveclarke/outport
outport
Manage dev ports with Outport. Use when setting up a new project, adding services, resolving port conflicts, configuring monorepo cross-service URLs, or working with worktrees and multiple instances. Triggers on "outport", "port conflict", "port allocation", "dev ports", "outport.yml", "port management", "env var ports", "computed values", "cross-service URLs", "CORS origins from ports", ".test domains", "local DNS", "reverse proxy", "cookie isolation", "tunnel", "share localhost", "public URL", "cloudflare tunnel", "outport doctor", "health check", "diagnose outport", "QR code", "mobile access", "phone testing", "LAN IP", "hostname aliases", "multiple hostnames", "subdomain routing". Also use when the user mentions running multiple instances of a project, worktree port setup, or when services need to discover each other's URLs.
35update-docs
Audit all documentation for staleness after code changes. Checks README, CLAUDE.md, init presets, and release docs. Use after completing a feature, merging a PR, or when asked to check docs.
1