Skip to content

Commit

Permalink
Freeze dev/CI third-party python packages using constraints
Browse files Browse the repository at this point in the history
To define a more stable testing and development environment, provide
explicit python package versions via a constraints file. This can be
used by including `-c constraints.txt` when running pip.

Developers who prefer to test later versions of third-party packages
can containue to run `pip install -U requirements.dev.txt`.
  • Loading branch information
nicois committed Mar 21, 2023
1 parent fb45c5b commit aef38ce
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 2 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
- id: dependencies
run: |
pip install -r requirements.txt
pip install -r requirements.dev.txt
pip install -r requirements.dev.txt -c constraints.txt
- id: pylint
run: make lint
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
# Setup common python dependencies
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install --upgrade -r requirements.dev.txt
pip install -r requirements.dev.txt -c constraints.txt
pip install -e .
- id: unittest
Expand Down
85 changes: 85 additions & 0 deletions constraints.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
astroid==2.5.8
attrs==22.2.0
azure-core==1.26.3
azure-storage-blob==12.15.0
bcrypt==4.0.1
boto3==1.26.96
botocore==1.29.96
botocore-stubs==1.29.96
cachetools==5.3.0
certifi==2022.12.7
cffi==1.15.1
charset-normalizer==3.1.0
coverage==6.5.0
coveralls==3.3.1
cryptography==39.0.2
docopt==0.6.2
exceptiongroup==1.1.1
execnet==1.9.0
freezegun==1.2.2
google-api-core==2.11.0
google-api-python-client==2.82.0
googleapis-common-protos==1.59.0
google-auth==2.16.2
google-auth-httplib2==0.1.0
httplib2==0.21.0
idna==3.4
iniconfig==2.0.0
isodate==0.6.1
isort==5.7.0
jmespath==1.0.1
lazy-object-proxy==1.9.0
mccabe==0.6.1
mock==5.0.1
mypy==1.1.1
mypy-extensions==1.0.0
oauth2client==4.1.3
packaging==23.0
paramiko==3.1.0
pluggy==1.0.0
protobuf==4.22.1
psycopg2==2.9.5
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.21
pydantic==1.10.6
pylint==2.7.2
pylint-quotes==0.2.1
PyNaCl==1.5.0
pyparsing==3.0.9
pytest==7.2.2
pytest-cov==4.0.0
pytest-mock==3.10.0
pytest-timeout==2.1.0
pytest-xdist==3.2.1
python-dateutil==2.8.2
python-snappy==0.6.1
python-systemd==0.0.9
PyYAML==6.0
requests==2.28.2
responses==0.23.1
rohmu==1.0.10
rsa==4.9
s3transfer==0.6.0
six==1.16.0
toml==0.10.2
tomli==2.0.1
types-awscrt==0.16.13
types-botocore==1.0.2
types-httplib2==0.21.0.5
types-mock==5.0.0.5
types-paramiko==3.0.0.4
types-psycopg2==2.9.21.8
types-python-dateutil==2.8.19.10
types-PyYAML==6.0.12.8
types-requests==2.28.11.15
types-six==1.16.21.7
types-urllib3==1.26.25.8
typing_extensions==4.5.0
unify==0.5
untokenize==0.1.1
uritemplate==4.1.1
urllib3==1.26.15
wrapt==1.12.1
yapf==0.30.0
zstandard==0.20.0
7 changes: 7 additions & 0 deletions update-constraints
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash -ex
TEMPDIR="$(mktemp -d)"
python -m venv "$TEMPDIR"
"$TEMPDIR"/bin/pip install -r requirements.txt
"$TEMPDIR"/bin/pip install -r requirements.dev.txt
"$TEMPDIR"/bin/pip freeze | grep -v "pkg-resources" | sort > constraints.txt
rm -rf "$TEMPDIR"

0 comments on commit aef38ce

Please sign in to comment.