Skip to content

Latest commit

 

History

History
59 lines (47 loc) · 2.7 KB

File metadata and controls

59 lines (47 loc) · 2.7 KB

Contributing to PlotX

All contributions are welcome: code, documentation, translations, bug reports, ideas. If you are unsure whether something fits, open an issue and ask.

The one hard rule: never post confidential or proprietary data — in code, issues, or pull requests. When data is needed to reproduce a problem, a minimal anonymized sample works best.

Development

PlotX builds with stable Rust. Some configurations pull in very heavy dependencies, so the wrong command can turn a quick edit/compile loop into a long wait — use the narrowest one that answers your question:

Purpose Command
Fast type-check loop cargo check -p plotx
Day-to-day development: build and run the app cargo run -p plotx
Test the crate you changed cargo test -p plotx-core
Optimized build for performance work cargo build --release -p plotx
Shipping configuration, uses the reference table executor cargo release-build
Explicit DataFusion maintenance build cargo datafusion-build
The same checks as CI, before a pull request cargo pr-check

Two things that are easy to trip over:

  • Development builds keep the scientific processing crates optimized so they stay usable under a debugger, but the UI and renderer are not. Judge frame rate or rendering performance only with an optimized build.
  • The app, CLI, and shipping build use the in-memory reference table executor. DataFusion and Substrait remain in the workspace for explicit maintenance, but cargo pr-check and CI do not build or validate them.

cargo pr-check requires cargo-deny (cargo install --locked cargo-deny). CI runs exactly the same steps, split into parallel jobs (cargo xtask pr-check quick|lint|test). cargo licenses (requires cargo-about) regenerates dist/THIRD-PARTY-LICENSES.html from the reference-only Windows shipping app's dependency graph.

The user manual is an Astro/Starlight site in docs/ (npm run build to validate). UI screenshots come from the built-in harness: point PLOTX_SHOT at an output directory and run the app; crates/app/src/shot.rs documents the details.

Contributor license agreement

PlotX is distributed under both an open-source license and commercial licenses, so contributions are covered by a short CLA: you keep your copyright and permit your contribution to be distributed under both models. A bot walks you through acceptance on your first pull request — there is nothing to do in advance, and one acceptance covers later contributions.

Make sure the rights are yours to grant (for example, that an employer does not own the work), and mention the source and license of any third-party material in the pull request.