Thank you for your interest in contributing! This guide explains how to set up your environment, propose changes, and follow project conventions.
- Fork the repo and create a feature branch from
main. - Use recent Python (>=3.9). Install in editable mode:
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate python -m pip install -U pip python -m pip install -e . python -m pip install pytest mkdocs mkdocs-material
Note: For regular users, MetDataPy is available on PyPI: pip install metdatapy. This development setup is only needed for contributors.
- Tests:
python -m pytest -q
- Docs (MkDocs):
mkdocs serve # live preview mkdocs build # static site in site/
- Write clear, readable, and typed Python where reasonable.
- Prefer vectorized
pandas/numpyoperations; avoid unnecessary loops. - Keep public APIs stable; add deprecations with care.
- Lint/formatting enabled in CI: ruff, black, isort; type checking with mypy.
- Match existing code style and avoid unrelated reformatting.
- Scope PRs narrowly; include tests and docs for new features.
- Update
README.mdand relevant pages indocs/when behavior changes. - Add entries/checkmarks to
ROADMAP.mdwhen features are implemented. - Explain motivation, approach, and any trade-offs in the PR description.
- Include minimal reproducible examples, data snippets, versions, and OS.
- Label issues appropriately (bug, enhancement, docs, question).
- Please avoid sharing sensitive data in issues/PRs.
- Be respectful and professional. See
CODE_OF_CONDUCT.md.
- Ensure tests/docs pass on CI; bump version in
pyproject.toml. - Tag the release; publish wheels/sdist to PyPI; archive on Zenodo (planned).
Thanks again for contributing!