samoa

package module
v0.0.0-...-a4c2562 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2026 License: MIT Imports: 0 Imported by: 0

README

samoa

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

Template repository for standing up Go library infrastructure matching the zoobzio 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            # Weekly 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 zoobzio/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 zoobzio 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 Zoobzio Ecosystem

All zoobzio 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

Documentation

Overview

Package samoa provides template configurations for zoobzio packages.

This repository serves as the canonical template for all zoobzio Go libraries, containing standardized configurations for:

  • Go module setup (go.mod)
  • Linting (.golangci.yml)
  • Coverage (.codecov.yml)
  • Release automation (.goreleaser.yml)
  • CI/CD workflows (.github/workflows/)
  • Testing infrastructure (testing/)
  • Repository files (LICENSE, CONTRIBUTING.md, SECURITY.md)

To create a new zoobzio package, use this repository as a GitHub template and update package-specific values.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL