rerun-io / rerun

Visualize streams of multimodal data. Fast, easy to use, and simple to integrate. Built in Rust using egui.
https://rerun.io/
Apache License 2.0
5.61k stars 255 forks source link

Support for python 3.13 #6224

Open jleibs opened 2 months ago

jleibs commented 2 months ago

Still blocked by pyarrow dep.

jleibs commented 2 months ago

In general, since we use cp38-abi3 wheels, is there a reason we need to have the max version specified for ourselves?

requires-python = ">=3.8, <3.13"

Or can we let the solver work it out so it's more clearly the upstream dep that's the issue?

hgaiser commented 3 weeks ago

In general, since we use cp38-abi3 wheels, is there a reason we need to have the max version specified for ourselves?

I would prefer if the max version is indeed unspecified. These version requirements are a bit annoying in python, in my opinion. At least in poetry if you define your project to support 3.9 and up (^3.9), but any dependency defines a smaller range (ie. >=3.8, <3.13 like with rerun) then it fails with the following error:

The current project's supported Python range (>=3.9,<4.0) is not compatible with some of the required packages Python requirement:
  - rerun-sdk requires Python <3.13,>=3.8, so it will not be satisfied for Python >=3.13,<4.0

Very annoying.. even more so because if I change my projects python requirement to >=3.8, <3.13 as well, then other projects that depend on my project will start to have the same error. The common approach seems to be to just define a lower bound. Pytorch for example defines:

Requires-Python: >=3.8.0

Even if they only support up to 3.12 (at the time of writing).

(I would much more prefer the dependency resolver to check if there is any version that matches all dependencies and use that .. but that is a (poetry?) design choice I don't think we will be able to change)