diff --git a/docs/contribute/02_workflow.qmd b/docs/contribute/02_workflow.qmd index 65b96b5d8bdf..02ed1f5df6dc 100644 --- a/docs/contribute/02_workflow.qmd +++ b/docs/contribute/02_workflow.qmd @@ -46,6 +46,29 @@ To run the tests for a specific backend (e.g. sqlite): pytest -m sqlite ``` +#### Running the test suite efficiently when making large changes to a backend + +If you are adding a new backend, or dealing with a major refactor, some `pytest` +tricks can help speed you along through finding and fixing various test +failures. + +Run the tests for your backend tests in parallel + +```sh +pytest -m duckdb -n auto --dist loadgroup --snapshot-update +``` + +Then run only the failed tests using `stepwise` and don't randomize the test +order: + +```sh +pytest -m duckdb --randomly-dont-reorganize --lf --sw +``` + +`pytest` will stop after a test failure, then you can fix the failing test, then +re-run the same `stepwise` command and it will pick up where it left off. + + ### Setting up non-trivial backends ::: {.callout-note} diff --git a/docs/contribute/04_maintainers_guide.qmd b/docs/contribute/04_maintainers_guide.qmd index 1820121b35b8..4ddeb8d7c69e 100644 --- a/docs/contribute/04_maintainers_guide.qmd +++ b/docs/contribute/04_maintainers_guide.qmd @@ -11,16 +11,17 @@ Dependency updates are automated using [Mend Renovate](https://www.mend.io/renov ### poetry -Occasionally you may need to lock [`poetry`](https://python-poetry.org) dependencies. Edit `pyproject.toml` as needed, then run: +Occasionally you may need to lock [`poetry`](https://python-poetry.org) +dependencies. Edit `pyproject.toml` as needed, then run: ```sh -poetry lock --no-update -poetry export --extras all --with dev --with test --with docs --without-hashes --no-ansi > requirements-dev.txt +just check-poetry ``` -The second step updates `requirements-dev.txt` for developers using `pip`. +This will update the lockfile and also update `requirements-dev.txt` for +developers using `pip`. -## Adding examples +## Adding entries to `ibis.examples` If you're not a maintainer, please open an issue asking us to add your example.