git clone https://github.com/ludo-technologies/polyscan.git
cd polyscan/core
go test ./...Requires Go 1.24+.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-change) - Make your changes
- Run tests and vet:
cd core go test ./... -count=1 go vet ./...
- Commit with a descriptive message
- Push and open a Pull Request
Follow Conventional Commits:
feat:new featurefix:bug fixrefactor:code change that neither fixes a bug nor adds a featuredocs:documentation onlytest:adding or updating tests
- Follow standard Go conventions (
gofmt,go vet) - Keep exported APIs minimal and well-documented with godoc
- All public types and functions must have godoc comments
- All new functionality must include tests
- Tests must pass before merging:
cd core && go test ./... -count=1 - Aim for table-driven tests where applicable
polyscan core is a shared library used by pyscn and the polyscan CLI (in this monorepo). Key constraints:
- No language-specific dependencies. Language-specific behavior is injected via interfaces (
StatementClassifier,CostModel,ComplexityContributor, etc.) - No external dependencies. The module has zero third-party dependencies by design
- Breaking changes require a major version bump. Both pyscn and polyscan pin to specific versions
Use GitHub Issues. Include:
- Go version (
go version) - What you expected vs what happened
- Minimal reproduction steps