Skip to content

Latest commit

 

History

History
54 lines (41 loc) · 2.24 KB

File metadata and controls

54 lines (41 loc) · 2.24 KB

Contributing to omh-shim

Welcome! omh-shim is part of the JupyterHealth ecosystem. As a Jupyter project, you can follow the Jupyter contributor guide.

JupyterHealth is part of the JupyterHub subproject.

Make sure to also follow Project Jupyter's Code of Conduct for a friendly and welcoming collaborative environment.

If you need some help, feel free to ask on Zulip or Discourse.

Development

pip install -e ".[dev]"   # install with dev tools
pre-commit install        # enable the pre-commit hooks (runs ruff on commit)

The same checks run in CI:

ruff check .              # lint (also runs via pre-commit)
mypy                      # strict type-check
pytest                    # test suite

pre-commit runs only the fast lint/hygiene hooks; mypy and pytest stay in CI. The vendored schemas under omh_shim/schemas/ are byte-for-byte upstream copies managed by tools/refresh_schemas.py — don't hand-edit or reformat them.

Versioning & releases

SemVer, applied to the whole public surface — which includes the vendored schemas (consumers call load_schema() / known_ids()), not just converters:

  • MINOR — backwards-compatible additions: a newly served schema, a new converter, or new public API.
  • PATCH — fixes with no new surface (e.g. re-vendoring a schema).
  • MAJOR — breaking changes (removing/renaming a schema id or public symbol, changing convert()'s contract).

The version in pyproject.toml + omh_shim/__init__.py tracks the release being developed: the PR that opens a new release bumps it to the target X.Y.Z (keep [tool.tbump.version] current in sync). To publish, a maintainer moves the ## [Unreleased] entries in CHANGELOG.md to a ## [X.Y.Z] — <date> heading and pushes the vX.Y.Z tag — the release workflow builds and publishes to PyPI on the tag.