In https://github.com/dask/dask-gateway/pull/533/files#r852422223 @martindurant noted the value of lower bounds for the requirements to install dask-gateway and dask-gateway-server.
I think that is a good practice and sustainable to maintain if it is tested in the CI system. When lower bounds are established, one can test them in the automatically like this in jupyterhub.
- name: Install Python dependencies
run: |
pip install --upgrade pip
pip install --upgrade . -r dev-requirements.txt
if [ "${{ matrix.oldest_dependencies }}" != "" ]; then
# take any dependencies in requirements.txt such as tornado>=5.0
# and transform them to tornado==5.0 so we can run tests with
# the earliest-supported versions
cat requirements.txt | grep '>=' | sed -e 's@>=@==@g' > oldest-requirements.txt
pip install -r oldest-requirements.txt
fi