Closed PyDeps closed 1 year ago
Hello @PyDeps,
sorry for not answering earlier. An interesting project/mission you have there going and I can follow your reasoning. What took me so long was that I had to make up my mind whether a version limit would make transitions easier and/or more reliable to use and I came to the conclusion it would not.
You mention add_metaclass
as a 'problematic' method since it was introduced in six 1.4.0
.
However, you can nevertheless use transitions
with an earlier version. Only the diagrams extension would be affected but this is as the name suggests just an optional extension.
six
is mostly used for its string_types
which I hope won't go away in the foreseeable future.
This is also why I decided to not introduce upper version limits since this might limit future releases of transitions
to be used in for instance poetry
projects with rather strictly pinned six
versions even though transitions
would work perfectly fine in this context.
I guess I should take a look at the other requirements_*.txt
files since the APIs of pygraphviz
, mypy
or pytest
might be more volatile than six
. A lower version limit for six
might be a good fit for requirements_diagrams.txt
.
I will close this issue (and the related PR) but if you (or any future reader) think(s) I overlooked important factors, let me know by leaving a comment.
Thanks again for your input. I appreciate your work and effort to make open source software better.
Hi, In transitions, 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 six can be changed to >=1.4.0,<=1.16.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.
In version six-1.3, the API six.add_metaclass whch is used by the current project in transitions/extensions/diagrams_base.py is missing.
The calling methods from the six
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.