Skip to content

Latest commit

 

History

History
78 lines (58 loc) · 2.32 KB

File metadata and controls

78 lines (58 loc) · 2.32 KB

Contributing to eddy

Contributions are welcome — bug reports, fixes, new methods, and documentation improvements alike. For anything substantial, please open an issue first so we can discuss the design.

Development setup

git clone https://github.com/PlanetFormationLab/eddy.git
cd eddy
pip install -e ".[test,docs]"

This installs eddy in editable mode together with the testing and documentation extras. Python 3.10+ is required.

If you plan to submit a pull request, consider enabling the pre-commit hooks so style/lint checks run on every commit:

pip install pre-commit
pre-commit install

Running the test suite

pytest -v

The smoke tests under tests/ reuse FITS files from docs/tutorials/ as fixtures. The data files are gitignored; the tutorials' download cells (or the URLs in .github/workflows/ci.yml) will fetch them on demand. Tests that need a missing fixture are skipped rather than failed locally.

Mark slow tests with @pytest.mark.slow so they can be excluded with pytest -m "not slow".

Code style

We run ruff for linting and basic style. The config lives in pyproject.toml under [tool.ruff]; run

ruff check .
ruff check . --fix     # apply auto-fixable suggestions

CI rejects PRs with lint errors. The rule set is intentionally minimal (pycodestyle E/W + pyflakes F); we don't enforce import sorting or naming conventions.

Branching and commits

  • Branch from master for new work. Use descriptive branch names (e.g. fix-rotationmap-pa-wrap).
  • Keep commits focused and self-describing. The body should explain why, not just what.
  • Reference the relevant issue number in the commit message or PR description when applicable.

Pull requests

  • Make sure pytest and ruff check . pass locally before opening the PR.
  • New user-visible behaviour (new arguments, deprecated signatures, changed defaults) should add an entry to CHANGELOG.md.
  • Tutorials in docs/tutorials/ are executed notebooks. If your change affects an existing tutorial's output, re-execute it with jupyter nbconvert --execute --inplace docs/tutorials/<name>.ipynb before committing.

Questions

For anything else, open an issue or contact Richard Teague directly.