Thank you for your interest in contributing to Panacea! This document explains how to set up a development environment, coding standards, testing, and our pull request process.
Since this is a Hobby-Eberly Telescope reduction pipeline, we encourage users of the telescope to collaborate on new developments.
- Fork the repository and create a feature branch from
main. - Ensure you are using Python 3.9+.
- Install development dependencies:
python -m pip install -U pip
python -m pip install -e .[dev]
We use pytest. Once tests are added, run:
pytest -q
To see coverage (if configured):
pytest --cov=panacea --cov-report=term-missing
We keep documentation in the docs/ folder and use MkDocs for optional local previews.
Prerequisites:
- Python environment (same as development)
- MkDocs
Install MkDocs:
pip install mkdocs
Serve the docs locally from the repo root:
mkdocs serve
Then open the URL printed in the console (typically http://127.0.0.1:8000/) to preview the docs site. The site uses the Markdown files under docs/ directly; no extra configuration is required beyond mkdocs.yml.
- Follow PEP8
- Public functions/classes/methods should include Google‑style docstrings. Example:
def example(a, b):
"""Add two integers.
Args:
a: First number.
b: Second number.
Returns:
The sum of a and b.
Raises:
ValueError: If inputs are invalid.
"""
return a + b
- Use descriptive language.
- Reference issues if applicable.
- Ensure tests pass locally:
pytest. - Update documentation.
- Open a PR against
mainwith a clear description of the change and motivation.
- Use semantic versioning. Tag releases as
vMAJOR.MINOR.PATCH. - After creating a release, update CITATION.cff and README badges.
By participating, you agree to abide by our Code of Conduct (Code of Conduct).