Dependencies For Apps
We pin all our dependencies (including dependencies of dependencies) to an exact version in requirements.txt. This makes deployment more deterministic and reproducible.
Sometime we create a requirements.in to list the top level dependencies, with only the known version constraints. This can be used to install the latest versions of all dependencies.
Sometimes a repo has a script to do this.
If an update script doesn't already exist, the basic procedure to add or update a requirement are:
Update requirements.in or requirements_dev.in as needed.
Delete the old virtual environment, and start and activate a new one. This is needed to make sure we don't have any extra packages installed.
Run "pip install -r requirements.in" to install latest requirements.
Run "pip freeze -r requirements.in > requirements.txt" to create a file listing the exact versions.
Run "pip install -r requirements_dev.in".
Run "pip freeze -r requirements_dev.in > requirements_dev.txt".
Test!
Last updated