Skip to content

zoobz-io/samoa

Repository files navigation

samoa

CI Status codecov Go Report Card CodeQL Go Reference License Go Version Release

Template repository for standing up Go library infrastructure matching the zoobz-io ecosystem. Clone it, rename it, start building.

What's Included

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

Install

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

Then update go.mod, Makefile, and .goreleaser.yml with your package name.

Quick Start

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

Capabilities

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/

Why Samoa?

  • 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

The Zoobz-io Ecosystem

All zoobz-io Go libraries use samoa as their foundation. When standards evolve, updates propagate from here.

Documentation

  • Learn: Review the configuration files directly—they're documented inline
  • Guides: See CONTRIBUTING.md for development workflow
  • Reference: Run make help for available commands

Contributing

Development workflow and conventions are documented in CONTRIBUTING.md.

License

MIT License - see LICENSE

About

Template repository for zoobz-io Go packages

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors