Skip to content

Contributing

gonx is MIT licensed and developed on GitHub. Bug reports, feature requests, and pull requests are all welcome.

This repo is a bun workspace with Nx. Clone it and install dependencies:

git clone https://github.com/naxodev/oss.git
cd oss
bun install

You need:

  • Node.js 22+
  • bun (package manager)
  • Go — a stable release (for running e2e tests)

Unit tests run on bun test. Run a single spec directly:

cd packages/gonx && bun test src/graph/static-analysis/parse-go-mod.spec.ts

Or run the whole project through Nx (each spec runs in its own bun process for mock isolation):

bunx nx test gonx

End-to-end tests spin up a local Verdaccio registry and install the published tarball into a generated workspace:

bunx nx e2e gonx-e2e
bunx nx lint gonx
bunx nx format:check
bunx nx format:write
  1. Create a branch from main.

  2. Make your changes, keeping commits focused.

  3. Run lint, tests, and build before pushing:

    bunx nx affected -t lint test build
  4. Open a PR with a clear description.

Commits are validated by commitlint using Conventional Commits. Use the package scope:

feat(gonx): add new generator option
fix(gonx): resolve import edge case
docs(gonx): update executor reference

PR titles matter — squash-merge lands the PR title as the commit subject. Use feat(gonx)!: ... for breaking changes.

  • All features or bug fixes must be covered by one or more unit tests.
  • All public API methods must be documented.

Releases are independent per project and published manually from a maintainer’s machine (the npm account requires 2FA for writes). See CONTRIBUTING.md for the full release workflow.