Contributing to Agent Smith¶
First off, thanks for taking the time to contribute!
Development Environment¶
This project uses Nix to provide a reproducible development environment.
Prerequisites¶
Nix with Flakes enabled.
Setting up¶
Enter the development shell:
nix develop
This will provide:
Go 1.23+
Mage (build tool)
Code generators and linters
Building¶
To build the project:
go build ./cmd/agents
Or using Nix:
nix build .
Testing¶
We have two tiers of tests:
1. Unit Tests¶
Fast, isolated tests for internal logic.
go test -v ./internal/...
2. End-to-End (E2E) Tests¶
Integration tests that build the binary and run it in a sandboxed environment to verify flows, configuration precedence, and error recovery.
go test -v ./tests/e2e/...
Pull Requests¶
Ensure all tests pass (including E2E).
If you added features, add coverage in
tests/e2e.Update
CHANGELOG.mdif appropriate.
Release Process¶
Releases are automated via GitHub Actions and GoReleaser.
Update
CHANGELOG.mdwith a new version section.Update
VERSIONfile.Tag the commit with
vX.Y.Z.Push the tag.