fix: pypi package should not pin dependencies precisely#670
Conversation
Signed-off-by: Nicolas Höning <nicolas@seita.nl>
|
Does this require a changelog entry? |
|
This might benefit from a simple example in which some package has two dependencies: FM, and a FM dependency. Maybe in the docs, but also handy for review (testing). Or is that something for the plugin cookie cutter instead? |
|
Who is the intended audience for that example? I believe FM now behaves more like one expects from pypi packages. |
|
True. Would this PR also mean that when have only FM as a dependency, you get it with the latest of all of FM's dependencies? Some of these would be untested by us to work with FM. For example, |
|
The drawback with adding max versions is that (a rather recent version of) FlexMeasures becomes unusable as soon as one little library releases a non-significant release beyond what we tested against. I believe this is a game that cannot be played to perfection, but just needs good continuous attention. For intance, I guess we should add something like We currently have problems with major versions of major libraries with redis, pandas and SQLAlchemy. |
Yes, you get the latest stable versions, as per the way pip works. |
I don't understand how that works. Why would that make FM become unusable? |
|
But in general, I agree. I just wonder whether we should include some sort of fallback instructions in case pip installing FM installs a broken version (due to untested dependencies). Something like |
Alright, it's not immediate. |
The .txt requirement files exist and can be used quite directly. |
|
Okay I understand it better now. Just to be precise about the scope of this PR: let me know if the below is inexact. We forfeit control over what exact dependency versions are installed, but only when FM is installed as a package, which is the expected behaviour for packages anyway. This PR affects developers installing FM as a package. It doesn't affect developers installing the dev version, and also not hosts using FM via Docker, where we still control the exact versions used. We are aware that first-time triers could run into run errors due to dependency issues, but this risk is mitigated by:
Should we modify our Issue template to ask for a list of installed dependencies? |
|
This is a good description IMO and I agree with these two ideas in principle. Or, in any case, let me look into the first one in this PR. |
|
I made an issue out of the test pipeline extension idea, as I want to review and merge this PR soon. The CI pipeline is not made worse with this PR. |
closes #668