If you don't have write access to the repository:
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/YOUR-USERNAME/wt.git cd wt -
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit:
git add . git commit -m "feat: your feature description"
-
Push to your fork:
git push -u origin feature/your-feature-name
-
Create a Pull Request from your fork to
timvw/wt:main- Go to https://github.com/timvw/wt
- Click "New Pull Request"
- Select "compare across forks"
- Choose your fork and branch
-
Wait for CI to pass and respond to any review feedback
If you have write access to the repository:
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit:
git add . git commit -m "feat: your feature description"
-
Push the branch:
git push -u origin feature/your-feature-name
-
Create a Pull Request:
gh pr create --title "feat: your feature" --body "Description of changes"
-
Wait for CI to pass - Branch protection requires all checks to pass
-
Merge the PR when CI is green
feat/description- New featuresfix/description- Bug fixesdocs/description- Documentation changesrefactor/description- Code refactoringchore/description- Maintenance tasks
Follow Conventional Commits:
feat: add interactive selection for checkoutfix: filter out invalid branch namesdocs: update installation instructionsrefactor: simplify branch filtering logicchore: update dependenciessecurity: update vulnerable dependency
Before pushing:
# Run tests
go test ./...
# Run linter
golangci-lint run
# Build
go build -o bin/wt .The main branch is protected and requires:
- ✅ All CI checks must pass (Test, Build, Lint, Cross Compile)
- ✅ Branch must be up to date with main
- ❌ No direct pushes to main
Every push triggers:
- Tests on Go 1.24 and 1.25 (latest two releases)
- Linting with golangci-lint
- Build verification
- Cross-compilation checks
- All changes merged to
mainvia PRs - When ready to release:
git tag v0.1.x git push origin v0.1.x
- Automated workflow:
- Builds binaries for all platforms
- Publishes GitHub release
- Updates Homebrew tap formula
- Updates Scoop bucket manifest
- Submits WinGet package to
microsoft/winget-pkgs - Publishes AUR package (
wt-bin) - Creates
.deb,.rpm, and.pkg.tar.zstpackages
- Check existing issues: https://github.com/timvw/wt/issues
- Read the README: https://github.com/timvw/wt#readme
- Ask questions in discussions