Contributing¶
The complete repository contribution policy is available in CONTRIBUTING.md.
Scientific additions must preserve source values, units, lexical decimal representation, significant digits, phases, component and uncertainty links, and provenance. Pull requests must retain the 99% branch-aware coverage gate and the package's explicit-failure behavior.
Development environment¶
Install Pixi, clone the repository, and run:
pixi install
Use repository tasks instead of an ad hoc Python environment:
pixi run -e default lint
pixi run -e default format-check
pixi run -e default typecheck
pixi run -e default test-cov
pixi run -e default sync-deps-check
pixi run -e default check-data-rights
pixi run -e docs docs-check
Notebooks¶
Notebooks use paired Jupytext files. Edit the percent-format .py source,
synchronize, then execute the .ipynb from a fresh kernel:
pixi run -e notebooks notebooks-sync
pixi run -e notebooks notebooks-run
Downloaded XML and generated tables must remain under the ignored
notebooks/local-only/ directory or another user-controlled path.
Scientific changes¶
New XML interpretations must cite the normative schema or primary ThermoML recommendation and include a synthetic regression that distinguishes the behavior. Never make missing metadata appear present and never discard an unsupported element silently.
Dependency and release metadata¶
pixi.toml is the source of truth for dependency constraints. Synchronize the
pip-facing metadata after changing it:
pixi run sync-deps
pixi run sync-deps-check
pixi lock --check
The core feature becomes the ordinary package dependency set. The yaml,
parquet, pandas, and export features are the only public pip extras;
development, test, notebook, and documentation features remain Pixi-only.
Synchronize a release version with:
pixi run bump-version 0.1.1 --dry-run
pixi run bump-version 0.1.1
pixi lock
This updates pyproject.toml, pixi.toml,
src/thermoml_io/__init__.py, and CITATION.cff together after verifying that
their current versions agree.
Distribution¶
pixi run -e default build
pixi run -e default twine check dist/*
pixi run -e default check-dist
Wheels and source distributions must exclude tests, notebooks, scripts, caches, and experimental data.