Contributing
XY welcomes focused bug fixes, documentation improvements, tests, and chart surface work. The canonical contributor guide is CONTRIBUTING.md; the internal contributor specification contains the complete release and browser checklists.
Local Setup
make setup installs the editable development package and builds the required
native core. Source development needs Python 3.11+, a Rust toolchain for that
core, and Node 18+ for bundle checks. Confirm the active compute backend
explicitly:
The supported value is native. An unavailable core should raise a clear
import error rather than silently selecting another backend.
Choose the Focused Gate
Run make check-claims before publishing performance prose. Every comparison
must name the chart type, data size and shape, representation mode, backend,
render target, and whether browser time-to-first-render is included.
Adding a Chart Type
A complete chart-family contribution normally spans:
- Builder validation and rollback tests.
- Canonical column ingest or an aggregate kernel.
- Payload metadata with an explicit direct, decimated, density, sampled, or adaptive mode.
- Renderer support or reuse of an existing primitive.
- Standalone/export coverage, including hostile text values.
- A declarative factory and generated API documentation.
- A normal-size visual example, plus a benchmark only when the methodology is honest and reproducible.
Keep generated assets derived from their source generator, preserve lazy
import xy behavior, and include new public symbols in xy.__all__ with type
surface tests.
Before opening a pull request, read the relevant architecture material in the repository and open a focused GitHub issue when the desired behavior changes a public contract.