This was inspired by a similar change I78a914f71cef687f09fcfee0f3f498b79d810f5d. In the bootstrap-bridge production, we are calling create-venv every time we fire off a set of production jobs. While it's good to keep the venv updated, it doesn't need to happen hourly. This writes the requirements to a file, and only installs it if the template updates (i.e. if the venv is fresh, the dependencies updated or we updated the daily timestamp). Change-Id: I7a70b73fb907b923f47a2a0de72e21649c15e05f
Create a venv
You would think this role is unnecessary and roles could just install
a venv directly ... except sometimes pip/setuptools get out
of date on a platform and can't understand how to install compatible
things. For example the pip shipped on Bionic will upgrade itself to a
version that doesn't support Python 3.6 because it doesn't understand
the metadata tags the new version marks itself with. We've seen similar
problems with wheels. History has shown that whenever this problem
appears solved, another issue will appear. So for reasons like this, we
have this as a synchronization point for setting up venvs.
Role Variables