I am working in a python project that contains, in a single repository, many different applications that shared some code but will be deployed independently. So of course each application will need a different set of dependencies. I am faced with the following decision regarding the deployment of my application components: Single Job Approach: Testing: Run a single job to test all components together by installing all their combined dependencies. Deployment: Deploy each component independently, but with the same set of combined dependencies. Multiple Jobs Approach: Testing: Run multiple jobs, each testing a single component with only its specific dependencies. Deployment: Deploy each component independently with only the necessary set of dependencies specific to that component. If I go with a single job testing & deployment the number of dependencies will grow a lot. Then could be the case that I have to update some dependency because of a known vulnerability and then I start getting incompatible versions of the newly updated dependency (or sub dependencies) How bad can this get in your experience? Bad enough that it compensates the extra work of setting independent testing & deployment with different dependencies? Continue reading...