Contributing¶
Thanks for your interest in pyxsd!
Reporting issues¶
Please open a GitHub issue for
bugs and feature requests. Include the schema and instance document (or a
minimal reproduction), the pyxsd version (pyxsd --version), and the
Python version. Bug reports alone are not contributions under the terms
below — but they are greatly appreciated.
Development setup¶
git clone https://github.com/knorby/pyxsd
cd pyxsd
uv sync --group dev # runtime + dev/test dependencies
uv run pytest --cov # full suite with coverage
uvx ruff@0.16.6 check . # lint
uvx ruff@0.16.6 format --check .
uv run mypy src/pyxsd # type check
uv run python tests/report_conformance.py # conformance report
pre-commit install sets up the repo’s lint/secret hooks. Python 3.11 is
the floor; CI tests 3.11–3.14.
Pull requests¶
Fork, make a feature branch, keep changes focused.
Tests, type hints, and lint must pass (the same gates CI runs).
Public-facing behavior changes should include tests and, where applicable, a note in the documentation (schema features belong in Supported features and the conformance corpus).
Every commit in the history should build and pass the suite.
Contribution terms¶
By submitting a change to this repository (pull request, patch, or other means) you agree that your contribution is provided under the project’s BSD 3-Clause license, and you confirm you have the right to submit it under those terms. The project’s BSD license, including its ORNL provenance note, is preserved in the LICENSE file.
Project direction¶
The 1.0 roadmap (XSD coverage tiers, conformance corpus, docs) has been
delivered; ongoing direction is tracked in the issue tracker and
CHANGELOG.md. Working design notes are kept outside the published
docs tree. The 0.1 TODO list is of historical interest only — most of it
(Python 3, test suite, metaclass-style construction, regex pattern
facets) is now done.