Closed PyDeps closed 1 year ago
Hmm, yeah. I can see some potential issues, such as when trying to install on Raspberry Pi 64-bit (aarch64), it would attempt to install Jetson.GPIO, but not RPi.GPIO with how it is now. The ==
only refers to requiring it for that platform.
In regards to the requested changes, keep in mind this project runs in many environments, which makes changes like these super tricky to make without breaking things:
In most installations, the setup.py
file is what is executed rather than the requirements file and it's even more complex. The CI environment definitely uses the requirements.txt though.
For items such as Adafruit-PureIO
, we wouldn't want to have users with versions before 1.1.7 because of bugs, which can cause support issues. Also, there's no need to put an upper bounds on that since it's primarily used by Blinka and I maintain both it and Blinka, so I'm well aware if any APIs are updated.
As for pyftdi, we could add an upper bound, but this will likely end up being more maintenance overhead keeping up on new version changes than it would fixing it on the off chance that some api is removed and also more likely cause dependency version constraints as you mentioned if they aren't kept up.
Now with that being said, are there particular version constraints that you are running into? If not, is there another reason that would justify the additional maintenance overhead?
Hi, In Adafruit_Blinka, inappropriate dependency versioning constraints can cause risks.
Below are the dependencies and version constraints that the project is using
The version constraint == will introduce the risk of dependency conflicts because the scope of dependencies is too strict. The version constraint No Upper Bound and * will introduce the risk of the missing API Error because the latest version of the dependencies may remove some APIs.
After further analysis, in this project, The version constraint of dependency Adafruit-PureIO can be changed to >=1.1.0,<=1.1.9. The version constraint of dependency pyftdi can be changed to >=0.30.0,<=0.54.0.
The above modification suggestions can reduce the dependency conflicts as much as possible, and introduce the latest version as much as possible without calling Error in the projects.
The invocation of the current project includes all the following methods.
The calling methods from the Adafruit-PureIO
The calling methods from the pyftdi
The calling methods from the all methods
@developer Could please help me check this issue? May I pull a request to fix it? Thank you very much.