Replies: 3 comments 1 reply
-
Nice! Certainly, dependencies can be a headache.
To cope with hard to debug environments (e.g: closed source software that uses FlexMeasures), I think we can propose to include which modules are being instaled with flexmeasures in the GH template. We can other stuff such as OS, PostgreSQL version, ... In order to make it easier for the users, we can propose to use, for instance, pipdeptree. Moreover, we can use the flag Example for the
|
Beta Was this translation helpful? Give feedback.
-
Thanks @victorgarcia98 - documenting debugging best practices would be great. So in principle you are supporting this change idea? |
Beta Was this translation helpful? Give feedback.
-
Problem statement
When one pip-installs FlexMeasures, the versions of dependencies are pinned exactly. In some cases, when FlexMeasures is part of an environment, this leads to version conflicts. A good example might be plugins, where people have their own dependencies, and these dependencies have dependencies. Pip will run into dependency conflicts. I document one in this issue.
One can see FlexMeasures not as the sole platform to be run, but as a dependency itself in some project.
Technical details
We provide ranges for version requirements in
requirements/*.in
. Based on these, we regularly (e.g. after each release) compile exact pins, which then live inrequirements/*.txt
.So each FlexMeasures checkout as well as release has a working set of exact dependency versions, which are tested.
For the distribution on Pypi,
setup.py
makes the choice to read inrequirements/*.txt
in order to fillinstall_requires
.Proposed resolution
install_requires
should userequirements/*.in
. Pro: FlexMeasures works better as dependency. Contra: People might experience errors which are harder to debug, e.g. when a new version of some dependency leads to a bug.Dockerfile
), as hosting FlexMeasures is the sole purpose of the containers based on it. Contra: I'm actually not sure if this leads to problems when plugin authors create Docker images based on this.Beta Was this translation helpful? Give feedback.
All reactions