Contributing
May 30, 2026 ยท View on GitHub
Thanks for improving go.dw1.io/yyjson. This package wraps transpiled yyjson
code behind a Go API, so changes should keep generated internals separate
from the public surface.
Before making changes, read DEVELOPMENT.md for the local setup, Makefile targets, generation workflow, and verification commands.
Guidelines
- Keep public API changes small and compatible unless the change is explicitly intended to happen before a release.
- Preserve yyjson behavior unless a difference is documented and tested.
- Do not edit generated files in
internal/yyjsoncby hand. Update the generator or source inputs, then runmake generate. - Keep handwritten wrapper code idiomatic Go and avoid exposing generated C-like names, ccgo runtime details, or unsafe pointer conventions.
- Add or update tests for behavior changes. Fixture-backed tests require the
yyjsonsubmodule;make testinitializes it automatically. - Run
make checkbefore submitting changes. Runmake lintwhengolangci-lintis available.
See LIMITATIONS.md for current platform and tooling limits.