Skip to main content

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.