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
ouster-sdk python package raises InvalidVersion error with upcoming version of pip #560
Comments
Thanks for the report, @kgreenek . The version string included in your stack trace (which seems to be produced from I'm not able to reproduce this issue with the latest production version of At your convenience, would you please provide some information about which versions of Best Regards, Staff Engineer |
I am using bazel with rules_python, which is admittedly an unusual setup. Using rules_python, the version exception is raised starting with version 0.26.0. Falling back to 0.25.0 continues to work. According to this issue on the pip github repo: "In 23.2, pip is starting to deprecate recognision of non-standard version strings. [...] The deprecated parsing logic is expected to be entirely removed in 24.0" |
@kgreenek thanks for the additional information. Do you have a minimum reproducible example I can try? |
Here is a minimal reproducible example with instructions for how to run: https://github.com/kgreenek/ouster_sdk_pep440 |
The issue appears to be that this version ( I am not sure where that version string is coming from to be honest. If that version string is part of the ouster-sdk package in pypi, I would ask if you would be willing to make a change to be in compliance with PEP 440. Otherwise, I need to dig in a bit deeper and figure out where that string is coming from. |
@kgreenek |
Interesting. It seems like there is some interaction between rules_python and the ouster-sdk wheel going on. I'll file an issue with the rules_python folks too and see if they have any insight to add. |
I think you may have stumbled across a bug in the version of Some investigation on my side reveals that the invalid version originates from the This is why you'll probably find that the invalid version you get is actually the same value as |
@kgreenek I've narrowed this down to the dependency spec for The current spec is this, which I believe to be a valid dependency spec per PEP 508.
This dependency spec is used because there is no If I remove this dependency spec (specifically the A workaround would be to fork ouster-sdk, remove the |
Thanks for looking into this. I believe that this is actually an invalid specifier. See some notes here: bazelbuild/rules_python#1491 (comment) tl;dr: you probably want to be using |
I'm grateful for the assistance @groodt ! We'll work on a fix, most likely earmarked for a patch following the next release. I'll be keeping this ticket open for tracking purposes. Best Regards, Staff Engineer |
Hi, we're running into exactly the same issue. Any progress on a fix? |
Hi @lalten, I'm afraid we've not had the bandwidth to fix this issue yet, but we plan to address it in our next release which should be no later than end of March. I realize this is not ideal, but it is definitely a priority for us. Best Regards, Staff Engineer |
Hi @twslankard, is this issue resolved in https://github.com/ouster-lidar/ouster_example/releases/tag/20240425? |
Hi @lalten, The issue is not fixed in this release, unfortunately. Please accept my apologies. We're working on it! Cheers, Staff Engineer |
PEP 440 defines a standard for the versions used in pip packages: https://peps.python.org/pep-0440/
This has been a standard since 2013, but not enforced due to compatibility concerns.
However, recently they have decided to start enforcing this standard. New versions of pip raise an InvalidVersion exception when trying to install ouster-sdk packages from pip, similar to the following:
More details about the decision from the pip maintainers can be found here:
pypa/pip#12012
The text was updated successfully, but these errors were encountered: