Skip to content

Commit b00166f

Browse files
committed
Github action to ensure vendored requests version.
1 parent 5ee2c8c commit b00166f

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Check Dependencies
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
check:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v3
11+
12+
#- name: Set up Python
13+
# uses: actions/setup-python@v4
14+
15+
- name: Check Dependencies
16+
run: ./scripts/check_dependencies.sh

scripts/check_dependencies.sh

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/bin/bash -e
2+
3+
# This script checks to make sure that the vendored version of requests shipped
4+
# with pip meets the minimum required version of requests as defined by the
5+
# datadog package.
6+
7+
# create virtual environment
8+
rm -rf venv
9+
pip install virtualenv
10+
virtualenv venv
11+
source venv/bin/activate
12+
13+
# determine highest available version of requests
14+
pip install .
15+
highest=$(pip freeze | grep requests | tr -d 'requests==')
16+
echo "Highest available version of requests: $highest"
17+
18+
# determine minumum required version of requests
19+
pip uninstall -y requests
20+
pip install uv
21+
uv pip install --resolution=lowest .
22+
lowest=$(pip freeze | grep requests | tr -d 'requests==')
23+
echo "Minimum required version of requests: $lowest"
24+
25+
# determine version of requests packaged with pip
26+
vendored=$(docker run --entrypoint='' public.ecr.aws/lambda/python:latest \
27+
python -c "import pip._vendor.requests; print(pip._vendor.requests.__version__)")
28+
echo "Version of vendored requests: $vendored"
29+
30+
# compare versions
31+
pip install packaging
32+
compared=$(python -c "from packaging.version import parse; print(parse('$lowest') <= parse('$vendored'))")
33+
34+
if [[ $compared == "True" ]]; then
35+
echo "The vendored version of requests meets the minimum requirement"
36+
echo " lowest required ($lowest) <= vendored version ($vendored) <= highest available ($highest)"
37+
else
38+
echo "The vendored version of requests does not meet the minimum requirement"
39+
echo " vendered version ($vendored) < lowest required ($lowest) <= highest available ($highest)"
40+
exit 1
41+
fi

0 commit comments

Comments
 (0)