Template repository for standing up Go library infrastructure matching the zoobz-io ecosystem. Clone it, rename it, start building.
your-new-package/
├── go.mod # Go 1.24+ with toolchain
├── Makefile # test, lint, coverage, ci targets
├── .golangci.yml # v2 config with security linters
├── .codecov.yml # 70% project / 80% patch targets
├── .goreleaser.yml # Library release automation
├── .github/workflows/
│ ├── ci.yml # Test matrix, lint, security, benchmarks
│ ├── coverage.yml # Codecov integration
│ ├── release.yml # Tag-triggered releases
│ └── codeql.yml # Security analysis
├── testing/
│ ├── helpers.go # Reusable test utilities
│ ├── integration/ # Integration test structure
│ └── benchmarks/ # Benchmark structure
├── LICENSE # MIT
├── CONTRIBUTING.md # Development workflow
└── SECURITY.md # Vulnerability reporting
This is a GitHub template repository. Click Use this template on GitHub, or:
gh repo create your-package --template zoobz-io/samoa --clone
cd your-packageThen update go.mod, Makefile, and .goreleaser.yml with your package name.
After creating your repository from the template:
# Update module path
sed -i 's/samoa/your-package/g' go.mod Makefile .goreleaser.yml
# Install development tools
make install-tools
# Verify everything works
make check
# Start building| Feature | Description | Configuration |
|---|---|---|
| Multi-version testing | Go 1.24 and 1.25 matrix | .github/workflows/ci.yml |
| Linting | golangci-lint v2 with security focus | .golangci.yml |
| Coverage tracking | Codecov with PR comments | .codecov.yml |
| Release automation | GoReleaser for library packages | .goreleaser.yml |
| Security scanning | gosec + CodeQL | .github/workflows/codeql.yml |
| Benchmarks | Structured benchmark directory | testing/benchmarks/ |
- Immediate CI: Push and your workflows run—no setup required
- Consistent tooling: Every zoobz-io package uses the same linter config, coverage targets, and release process
- Security by default: gosec, CodeQL, and security-focused linters enabled from day one
- Test infrastructure ready: Helpers, integration tests, and benchmarks structured and waiting
All zoobz-io Go libraries use samoa as their foundation. When standards evolve, updates propagate from here.
- Learn: Review the configuration files directly—they're documented inline
- Guides: See
CONTRIBUTING.mdfor development workflow - Reference: Run
make helpfor available commands
Development workflow and conventions are documented in CONTRIBUTING.md.
MIT License - see LICENSE