Skip to content

Latest commit

 

History

History
57 lines (41 loc) · 1.85 KB

CONTRIBUTING.md

File metadata and controls

57 lines (41 loc) · 1.85 KB

Contributing

Thank you for improving tmux-attach-browser.

Before opening an issue

  • Confirm tmux itself works with tmux -V and tmux list-sessions.
  • Search existing issues for the same behavior.
  • Include the operating system, terminal, tmux version, and tab --version output in bug reports.

Development

The project requires Go 1.25 or newer and tmux for the real smoke test.

git clone https://github.com/hmmhmmhm/tmux-attach-browser.git
cd tmux-attach-browser
go mod download
go test ./...

Write a failing test before changing behavior. Keep tmux command execution in internal/tmux, Bubble Tea state in internal/ui, and CLI orchestration in internal/app.

Keep every tracked, hand-written .go, .sh, .ps1, .yml, and .yaml file at or below 450 lines. This includes tests and workflow configuration. Documentation, dist, vendored code, Go files with the standard Code generated ... DO NOT EDIT. header, and binary assets are excluded. Split a file by responsibility before it exceeds the limit.

Run all checks before opening a pull request:

test -z "$(gofmt -l .)"
go vet ./...
go test -race ./...
go build ./cmd/tab
sh scripts/check-source-lines.sh
sh scripts/test-source-lines.sh
sh scripts/test-install.sh
sh scripts/tmux-smoke.sh
sh scripts/tab-binary-smoke.sh
go run golang.org/x/vuln/cmd/govulncheck@v1.6.0 ./...
go run github.com/rhysd/actionlint/cmd/actionlint@v1.7.12
shellcheck install.sh scripts/*.sh

Pull requests should be small, explain user-visible behavior, and include tests. Do not include generated dist artifacts.

Commit messages

Use a short imperative subject, for example:

feat: add session sorting option
fix: retain sessions after refresh failure
docs: clarify WSL installation

Reporting security issues

Do not open public issues for vulnerabilities. Follow SECURITY.md.