-
Notifications
You must be signed in to change notification settings - Fork 0
Releasing and Contributing
Two GitHub Actions workflows (.github/workflows/):
-
ci.yml— typecheck / lint / format / test / build, on every pull request and on pushes tomainandrelease. The golden-graph and layout-stability snapshots run as part ofbun test, so CI gates correctness and layout stability on every PR. -
release.yml— the cross-platform desktop build, on a push to thereleasebranch or av*tag. Per platform it builds the nativeanalyzer-coreaddon, compiles the Bun sidecar, and runstauri build.
See docs/RELEASING.md for the current matrix (it's an area of active change — see the open release PRs).
- Each leg builds the per-platform
analyzer-core.nodeand sidecar on a runner of that platform, so the native artifacts always match the target. - Builds are unsigned (no code-signing certs), so installers warn on first launch and auto-update is disabled. See Installation.
- On a
v*tag the workflow publishes a draft GitHub Release with the installers, plus best-effortSHA256SUMS-*.txtfor verification. -
fail-fast: false, so one platform failing doesn't block the others from publishing.
Security note. Linux builds pin parts of the GTK/webkit stack (e.g.
glib); tracked advisories live inSECURITY.md.
Run the same gates CI does:
bun run typecheck # tsgo --noEmit
bun run lint # oxlint --type-aware
bun run format:check # oxfmt
bun test # unit tests + golden/stability snapshotsSee Development & Building for the full script list and the native rebuild steps.
-
Commits follow Conventional Commits —
feat(layout): …,fix(sidebar): …,perf(layout): …,docs: …,refactor(...). Scope is the subsystem. -
Lint & format are oxlint / oxfmt (not ESLint/Prettier). Run
bun run lint:fix/bun run format. -
Tests are expected for new logic. The kernel, layout, query language, rules engine, diff, exports, and editor commands are all pure and unit-tested — follow the existing
*.test.tspattern next to the code. -
Snapshots. If you change analyzer output or a layout, the golden/stability snapshots will change. Regenerate intentionally (
bun test bench/golden.test.ts --update-snapshots,BENCH_UPDATE=1 bun test bench/stability.test.ts) and review the diff before committing. - Determinism. Layout, community detection, SCC, and insights must stay deterministic — same input, same output. Avoid unseeded randomness and unordered iteration in those paths.
If you change analyzer-core/ (Rust) or vello-renderer/ (Rust→WASM), the committed prebuilt artifact must be rebuilt and committed for the change to take effect at runtime. See the native rebuild steps in Development & Building.
A quick orientation is in Architecture Overview; the subsystem deep-dives are linked from there and from the sidebar.
Dual-licensed under Apache-2.0 OR MIT, at your option. Contributions are accepted under the same dual license.
PolyGraph — explore, audit, enforce, and compare software architecture across 26 languages, 100% locally. Repository · Releases · Issues · Licensed Apache-2.0 OR MIT
📖 Using PolyGraph
- Installation
- Getting Started
- The Graph Model
- Layouts & Navigation
- Impact Analysis & Insights
- Query Language
- CLI: Rules & Diff
- Exports, Workspaces & Editor
- Troubleshooting & FAQ
🔧 Internals & Contributing