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
python project should provide minimal abstract list of projects which are needed to run it correctly in install_requires
requirements.txt files are used to define the requirements for a complete python environment
Since this project is a single Tendrl component, which is expected to be installed with other Tendrl components together, using requirement file seems to be inappropriate. Listing dependencies of single reusable python library/tool/daemon, which is our case here, is not mentioned among 4 common uses of Requirements files as listed in description of the feature in packaging guide. Moreover, it creates additional issues:
using requirements.txt file makes us to install the project in non-production way, which means that we will find problems with listing requirements later than we should, see eg. issue https://github.com/Tendrl/performance_monitoring/issues/17 - this is very blatant issue, but was not noticed by any developer, unit tests or CI - since all of those are using installation method which doesn't resemble what an admin using this project would do
keeping requirements.txt file while specifying install_requires in setup.py requires to maintain function to read requirements.txt file in setup.py, which is unnecessary maintenance burden
feature set of requirements.txt is higher and includes features which should not be done in production setup
The text was updated successfully, but these errors were encountered:
This issue suggest to remove
requirements.txt
file and move items which this file contains intoinstall_requires
setuptools keyword insetup.py
file.Reasoning
Based on explanation of difference between
install_requires
keyword andrequirements.txt
file from upstream Python Packaging User Guide, I understand that:install_requires
requirements.txt
files are used to define the requirements for a complete python environmentSince this project is a single Tendrl component, which is expected to be installed with other Tendrl components together, using requirement file seems to be inappropriate. Listing dependencies of single reusable python library/tool/daemon, which is our case here, is not mentioned among 4 common uses of Requirements files as listed in description of the feature in packaging guide. Moreover, it creates additional issues:
requirements.txt
file makes us to install the project in non-production way, which means that we will find problems with listing requirements later than we should, see eg. issue https://github.com/Tendrl/performance_monitoring/issues/17 - this is very blatant issue, but was not noticed by any developer, unit tests or CI - since all of those are using installation method which doesn't resemble what an admin using this project would dorequirements.txt
file while specifyinginstall_requires
insetup.py
requires to maintain function to readrequirements.txt
file insetup.py
, which is unnecessary maintenance burdenrequirements.txt
is higher and includes features which should not be done in production setupThe text was updated successfully, but these errors were encountered: