Skip to content

Latest commit

 

History

History
70 lines (49 loc) · 2.07 KB

File metadata and controls

70 lines (49 loc) · 2.07 KB

Contributing

We welcome contributions to EKS! If you have found a bug or would like to request a change, please open an issue first.

We strive to maintain a welcoming environment for all contributors. See our code of conduct for more information.

Development setup

Fork the repo, then clone your fork and install in editable mode with dev dependencies:

pip install -e ".[dev]"
pre-commit install

pre-commit install registers the ruff linting hook so it runs automatically on each commit. You only need to do this once per clone.

Running the tests

pytest

Integration tests compare outputs against golden files stored in tests/integration/golden/. These files are hosted remotely and downloaded automatically when the test suite runs. If your change intentionally alters numerical outputs, you can regenerate your local copies with:

pytest --update-golden

However, the remote golden files can only be updated by a repo maintainer. If your PR requires golden file changes, note this in the PR description and a maintainer will update them before merging.

Linting

We use ruff for linting and import sorting. The pre-commit hook runs it automatically, but you can also run it manually:

ruff check eks tests          # check for violations
ruff check --fix eks tests    # auto-fix where possible

Configuration lives in [tool.ruff] in pyproject.toml.

Type checking

We use pyright for static type checking:

pyright eks

Configuration lives in [tool.pyright] in pyproject.toml. Pyright runs in CI on every pull request but is not in the pre-commit hook (it checks the whole project on every run, adding ~15s per commit).

Pull requests

  • Keep PRs focused — one feature or fix per PR
  • Include tests for new functionality
  • Ensure pytest and ruff check both pass before opening the PR
  • Open against the main branch