You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rationale for >=: This is the standard practice to loosely specify the dependency version in setup.py so that new package installations do not make unnecessary changes to the user environment. (In contrast, strict version specification is used in requirements.txt to track the build & test environment used for the package development.) Using a loosely specified version also avoids releasing a new version of BuildingsPy whenever a new version of pyfunnel is released — unless of course the new version of pyfunnel breaks BuildingsPy (e.g., due to a change in function signatures or output formats).
Issue with >=: CI tests in Buildings and IBPSA do not specify a version of pyfunnel, but rather install it as a dependency of BuildingsPy. So which version of pyfunnel is actually used likely depends on the caching system of the CI tool, and one has to look at the install log to check it out.
Conclusion: I would keep the version of pyfunnel loosely specified in setup.py of BuildingsPy but I would strictly specify it in .travis.yml of Buildings and IBPSA.
Sounds fine for me. Another option is using extras_require. We could specify [CI] and tell travis and gitlab to pip install buildingspy[CI]:
setup(
# Loose version in main requirements
install_requires=[
"pyfunnel>=0.3.0",
],
# Strict version in extras
extras_require={
'CI': [
"pyfunnel==0.3.0",
]
}
)
Conclusion: I would keep the version of pyfunnel loosely specified in setup.py of BuildingsPy but I would strictly specify it in .travis.yml of Buildings and IBPSA.
That is the recommened best practice. setup.py should use version ranges (to avoid version conflicts on dependencies), CI or Docker file should use pinned versions of all dependencies for transparency (SBOM) and reproducability.
Currently
>=
is used.Rationale for
>=
: This is the standard practice to loosely specify the dependency version insetup.py
so that new package installations do not make unnecessary changes to the user environment. (In contrast, strict version specification is used inrequirements.txt
to track the build & test environment used for the package development.) Using a loosely specified version also avoids releasing a new version of BuildingsPy whenever a new version of pyfunnel is released — unless of course the new version of pyfunnel breaks BuildingsPy (e.g., due to a change in function signatures or output formats).Issue with
>=
: CI tests in Buildings and IBPSA do not specify a version of pyfunnel, but rather install it as a dependency of BuildingsPy. So which version of pyfunnel is actually used likely depends on the caching system of the CI tool, and one has to look at the install log to check it out.Conclusion: I would keep the version of pyfunnel loosely specified in
setup.py
of BuildingsPy but I would strictly specify it in.travis.yml
of Buildings and IBPSA.@mwetter @FWuellhorst Do you agree?
The text was updated successfully, but these errors were encountered: