Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: systematic testing of SDK and examples on all supported (major) Python version #2445

Open
abey79 opened this issue Jun 15, 2023 · 1 comment
Labels
🧑‍💻 dev experience developer experience (excluding CI) enhancement New feature or request 🐍 Python API Python logging API 🚢 CI

Comments

@abey79
Copy link
Member

abey79 commented Jun 15, 2023

We currently support all current Python version from 3.8 to 3.11, and will probably aim to support 3.12 ASAP when it's out. Backward compatibility is pretty good on the language side but dependency management can be tricky. For example, pinning versions might fix an issue in 3.8 but break compatibility with, e.g. 3.11 because that version of the package wasn't yet compatible with 3.11.

Regardless of how we want to address that in the future, systematic testing of both the SDK and examples on all supported Python version is a prerequisite.

This issue is about:

  • figuring out the right tool for systematic testing (tox, nox, GH action matrix, ...)
  • deploying said tool on the SDK and examples vs. Python 3.8 to 3.11

Relates to:

@abey79 abey79 added enhancement New feature or request 🐍 Python API Python logging API 🧑‍💻 dev experience developer experience (excluding CI) labels Jun 15, 2023
emilk added a commit that referenced this issue Jun 30, 2023
…2536)

### What

This PR introduces basic support to run tests and examples against all
supported version of Python (currently 3.8 to 3.11). Currently, running
tests and `run_all.py` is supported.

Usage:
```
nox --help
nox -s tests
nox -s run_all -- --save
```

For discoverability and convenience, I added a couple of `just`
commands:

```
just py-tests-allpy
just py-run-all-allpy --save
```

On the way, I added the capability to install example requirements to
`run_all.py`:

```
python scripts/run_all.py --install-requirements
```

Decisions:
- I used [nox](https://nox.thea.codes/en/stable/). The alternative is
the older, more widespread [tox](https://tox.wiki/en/latest/). Reasons:
`noxfile.py` is an actual Python script (as are most of our scripts
already) and `nox` is battle-tested enough to be used in some large
projects, including pip itself.
- Nox is best installed globally on the dev machine (as it manages its
own venvs for running stuff). I updated `setup_dev.sh` accordingly, by
installing `pipx` using the OS package manager, and then using pipx to
install nox. (This is The Right Way™️ to globally install Python CLIs.)

Note: this requires all version of python to be installed and available
on the dev machine. Can't recommend MacPorts enough: `sudo port install
python38 python39 python310 python311`.

Relates to:
- #2445

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)

<!-- This line will get updated when the PR build summary job finishes.
-->
PR Build Summary: https://build.rerun.io/pr/2536

<!-- pr-link-docs:start -->
Docs preview: https://rerun.io/preview/2d89edf/docs
Examples preview: https://rerun.io/preview/2d89edf/examples
<!-- pr-link-docs:end -->

---------

Co-authored-by: Emil Ernerfeldt <[email protected]>
@abey79 abey79 mentioned this issue Nov 6, 2023
9 tasks
jleibs pushed a commit that referenced this issue Jan 5, 2024
### What

* Bumps arrow to 14.0.2
* Fixes #3699
* Relates to #2445

I added a bunch of fixes to `scripts/run_all.py`, which has a marked
tendency to bit rot:
* #4710

Some workaround introduced to deal with PyTorch not 3.12 ready, see:
- #4704

TODO:
- [x] `nox -s tests-3.12` passing
- [x] `nox -s run_all-3.12 --save` passing
- [x] `nox -s roundtrips-3.12` passing
- [x] Solve this:
  ```
  ❯ pixi add pyarrow==14.0.0 
× could not determine any available versions for pyarrow on linux-64.
Either the package could not be found or version constraints on other
dependencies result in a conflict.
╰─▶ Cannot solve the request because of: No candidates were found for
pyarrow ==14.0.0.
  ```
- [x] Test won't pass until torch is updated for 3.12:
pytorch/pytorch#110436

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested [demo.rerun.io](https://demo.rerun.io/pr/4146) (if
applicable)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG

- [PR Build Summary](https://build.rerun.io/pr/4146)
- [Docs
preview](https://rerun.io/preview/c0e892a228fcc83e9bef7faff1e17998926ffe52/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/c0e892a228fcc83e9bef7faff1e17998926ffe52/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://ref.rerun.io/dev/bench/)
- [Wasm size tracking](https://ref.rerun.io/dev/sizes/)
@emilk
Copy link
Member

emilk commented Mar 1, 2024

We should run nox -s tests on nightly at least

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🧑‍💻 dev experience developer experience (excluding CI) enhancement New feature or request 🐍 Python API Python logging API 🚢 CI
Projects
None yet
Development

No branches or pull requests

2 participants