This category deals with how your project manages its dependencies:
the Python packages that your project uses to make it work, such as scikit-learn
, pandas
, tensorflow
and pytorch
.
Proper dependency management, i.e., properly specifying which packages your project uses and which exact versions of those packages are being used, is important for being able to recreate the environment that your project was developed in. This allows other developers, automated deployment systems, or even just yourself, to install exactly those Python packages that you had installed while developing your project. Therefore, there is no risk that they are either not able to run your code due to missing dependencies, or run into unexpected bugs caused by secretly updated dependencies. In engineering terms, this relates to the concept of reproducibility: given the same project at the same revision with the same inputs, the same output should be produced.
Additionally, proper dependency management helps with the maintainability of your project. In this case, that means how easy it will be later on to update the packages that your project uses, but also to add new packages, remove old ones. This is especially useful for indirect dependencies, as no-one has or likes to take the time to go through the changelogs of every sub-package you are using to see if it is compatible with all other (sub-)packages.