Contributing
Development setup
Use the repository's canonical checkout and build commands:
git clone https://github.com/enolalabs/sunset.git
cd sunset
make build
make test
The module declares Go 1.26.2. The public package is under pkg/sunset; CLI
behavior is under cmd/sunset; parser, scanner, output, cache, and engine code
are internal packages.
Focused changes
Add tests for behavior changes. Language additions belong in
internal/language/ with a grammar dependency and representative testdata/;
docstring-specific behavior belongs in internal/docstring/. Keep the public
API minimal and call Close() on values that own tree-sitter resources.
Run the repository checks before review:
make test
make lint
go vet ./...
go test ./...
The CI workflow runs race-enabled tests with a coverage profile and executes the linter. Include failing command output and reproduction input when a change cannot meet a check locally.
Maintainer notes
Maintainers should preserve the module identity
github.com/enolalabs/sunset, keep README install snippets synchronized with
docs/snippets/, and use docs/releasing.md for release evidence. Changes to
the documentation site must pass its validation and build workflow before a
main-branch deployment.
The dedicated Maintainer contribution guide contains the focused repository and documentation checks. Release operators should use the Maintainer release guide.