Skip to content

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/ and render/ 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.