Contributing
Bugs and feature requests
Please use GitHub issue tracker for bugs and feature requests.
Using the web app? Please try the following first:
- Refresh the page.
- Click Reset to clear the loaded files and cached state.
- Clear your browser cache (or open the app in a private/incognito window) in case a stale WASM build is cached.
If the problem persists, open an issue and include the relevant block below.
Web app:
- Platform: Web
- Browser + version: (e.g. Chrome 124)
- OS: (e.g. macOS 14.5)
- Region / file size: (e.g. chr7:55M-55.2M, 2 GB BAM)
- What happened vs. what you expected:
- Any errors in the browser console (F12 → Console):
CLI:
- Platform: CLI
- cigar-sashimi version: (tool_version from JSON `metadata`, or git commit)
- OS: (e.g. Ubuntu 22.04)
- Environment: rustc --version, cargo --version, node --version
- Exact command run:
- What happened vs. what you expected (include stderr):
Before opening a PR
Contributions are welcome. A few conventions keep the project consistent.
Run the full check suite locally — CI runs the same:
cargo test -p cigar-sashimi-core
cargo clippy -- -D warnings
cd render && node --test
Project conventions
- Coordinates: computation is 0-based half-open; all JSON output and user-facing
coordinates are 1-based inclusive. Convert only at the serialization boundary
(
to_1based()), not earlier. - The JSON contract is shared. Any change to the core's output schema is a
cross-module API change — update
core/andrender/together and add tests on both sides. See Architecture for the schema. - Match the surrounding code. Follow existing patterns and run
cargo fmt/clippy; fix what they flag before pushing.
Where things live
| Area | Path |
|---|---|
| Analysis core (Rust) | core/src/ |
| Renderer (Node) | render/src/ |
| WASM bindings | wasm/src/ |
| Browser app | web/index.html |
| Wrapper script | cigar-sashimi |
| Docs | docs/ + mkdocs.yml |
See Development for build, test, and WASM instructions.