Skip to main content

Contributing

Contributions of any size are welcome. The full guide lives in CONTRIBUTING.md — the essentials:

Dev setup​

git clone https://github.com/msukmanowsky/vindue.git
cd vindue
npm install
npm run tauri dev

Requires macOS, Node.js 20+, Rust (stable), Xcode command line tools, and the Accessibility grant for the dev binary (the app will point you at the exact file).

Tests — run them all​

npm test # vitest (TypeScript suites)
(cd src-tauri && cargo test) # Rust suites
npm run build # tsc + vite type check
(cd src-tauri && cargo fmt --check && cargo clippy -- -D warnings)

CI gates on all of the above.

The fixture-parity rule​

Pure logic (validation, rescaling, cell→rect math, presets, monitor labels, monitor resolution) is pinned by golden-vector fixtures in fixtures/*.json, consumed by both test suites. Change pure logic → update the fixtures once, both languages must pass against the same vectors. Add pure logic → add cases to the fixture file, not just one language's tests. Never fix a failing fixture test by editing only one side.

Security reports​

Private only — GitHub Security tab → "Report a vulnerability". See SECURITY.md.

License​

By contributing, you agree your contributions will be licensed under the MIT License.