# What this PR does _tldr;_ I think we should install `setuptools` into our engine `Dockerfile` + in our CI env because Python 3.12 no longer installs `distutils` by default. This should unblock us from being able to merge #4656 and #4555. **More details** I would like to be able to merge #4656 and #4555. _However_, in both of these PRs `setuptools` is being removed from `requirements-dev.txt` ([here](https://github.com/grafana/oncall/pull/4555/files#diff-d8146d0816a943b0fa69a20399d7bbdb58e1c84c8b7933b2ba6dea7c10c410f5L113-L116) and [here](https://github.com/grafana/oncall/pull/4656/files#diff-d8146d0816a943b0fa69a20399d7bbdb58e1c84c8b7933b2ba6dea7c10c410f5L113-L116)). This leads to things breaking because of: ```bash File "/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/polymorphic/__init__.py", line 9, in <module> import pkg_resources ModuleNotFoundError: No module named 'pkg_resources' ``` - https://github.com/grafana/oncall/actions/runs/9865348392/job/27242117474?pr=4555#step:5:98 - https://github.com/grafana/oncall/actions/runs/10078898966/job/27864920455?pr=4656#step:5:100 Python 3.12 made a change to no longer pre-install `distutils` ([relevant release notes](https://docs.python.org/3/whatsnew/3.12.html#:~:text=The%20third%2Dparty%20Setuptools%20package%20continues%20to%20provide%20distutils%2C%20if%20you%20still%20require%20it%20in%20Python%203.12%20and%20beyond)): > [PEP 632](https://peps.python.org/pep-0632/): Remove the distutils package. See [the migration guide](https://peps.python.org/pep-0632/#migration-advice) for advice replacing the APIs it provided. The third-party [Setuptools](https://setuptools.pypa.io/en/latest/deprecated/distutils-legacy.html) package continues to provide distutils, if you still require it in Python 3.12 and beyond. > > [gh-95299](https://github.com/python/cpython/issues/95299): Do not pre-install setuptools in virtual environments created with [venv](https://docs.python.org/3/library/venv.html#module-venv). This means that distutils, setuptools, pkg_resources, and easy_install will no longer available by default; to access these run pip install setuptools in the [activated](https://docs.python.org/3/library/venv.html#venv-explanation) virtual environment. Additionally, `setuptools` is in `pip-tools` `UNSAFE_PACKAGES` list ([related GitHub issue](https://github.com/pypa/pipenv/issues/1417#issuecomment-364795745)), hence why I think Dependabot is removing it in #4656 and #4555. ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] Added the relevant release notes label (see labels prefixed w/ `release:`). These labels dictate how your PR will show up in the autogenerated release notes.
486 lines
11 KiB
Text
486 lines
11 KiB
Text
# This file was autogenerated by uv via the following command:
|
|
# uv pip compile requirements.in -o requirements.txt
|
|
amqp==5.2.0
|
|
# via kombu
|
|
appdirs==1.4.4
|
|
# via django-migration-linter
|
|
apscheduler==3.6.3
|
|
# via python-telegram-bot
|
|
asgiref==3.7.2
|
|
# via django
|
|
attrs==23.2.0
|
|
# via
|
|
# jsonschema
|
|
# referencing
|
|
autopep8==2.0.4
|
|
# via django-silk
|
|
babel==2.12.1
|
|
# via -r requirements.in
|
|
beautifulsoup4==4.12.2
|
|
# via -r requirements.in
|
|
billiard==4.2.0
|
|
# via celery
|
|
blinker==1.7.0
|
|
# via flask
|
|
boto3==1.34.41
|
|
# via django-amazon-ses
|
|
botocore==1.34.41
|
|
# via
|
|
# boto3
|
|
# s3transfer
|
|
cachecontrol==0.14.0
|
|
# via firebase-admin
|
|
cachetools==4.2.2
|
|
# via
|
|
# google-auth
|
|
# python-telegram-bot
|
|
celery==5.3.1
|
|
# via -r requirements.in
|
|
certifi==2024.2.2
|
|
# via
|
|
# python-telegram-bot
|
|
# requests
|
|
cffi==1.16.0
|
|
# via
|
|
# cryptography
|
|
# django-sns-view
|
|
charset-normalizer==3.3.2
|
|
# via requests
|
|
click==8.1.7
|
|
# via
|
|
# celery
|
|
# click-didyoumean
|
|
# click-plugins
|
|
# click-repl
|
|
# flask
|
|
# slack-export-viewer
|
|
click-didyoumean==0.3.0
|
|
# via celery
|
|
click-plugins==1.1.1
|
|
# via celery
|
|
click-repl==0.3.0
|
|
# via celery
|
|
cryptography==42.0.8
|
|
# via
|
|
# -r requirements.in
|
|
# django-mirage-field
|
|
# pyopenssl
|
|
# social-auth-core
|
|
defusedxml==0.8.0rc2
|
|
# via
|
|
# python3-openid
|
|
# social-auth-core
|
|
deprecated==1.2.14
|
|
# via
|
|
# opentelemetry-api
|
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
django==4.2.11
|
|
# via
|
|
# -r requirements.in
|
|
# django-add-default-value
|
|
# django-amazon-ses
|
|
# django-anymail
|
|
# django-cors-headers
|
|
# django-debug-toolbar
|
|
# django-deprecate-fields
|
|
# django-filter
|
|
# django-log-request-id
|
|
# django-migration-linter
|
|
# django-mysql
|
|
# django-polymorphic
|
|
# django-redis
|
|
# django-rest-polymorphic
|
|
# django-silk
|
|
# django-sns-view
|
|
# djangorestframework
|
|
# drf-spectacular
|
|
# fcm-django
|
|
# social-auth-app-django
|
|
django-add-default-value==0.10.0
|
|
# via -r requirements.in
|
|
django-amazon-ses==4.0.1
|
|
# via -r requirements.in
|
|
django-anymail==8.6
|
|
# via -r requirements.in
|
|
django-cors-headers==3.7.0
|
|
# via -r requirements.in
|
|
django-dbconn-retry==0.1.7
|
|
# via -r requirements.in
|
|
django-debug-toolbar==4.1.0
|
|
# via -r requirements.in
|
|
django-deprecate-fields==0.1.1
|
|
# via -r requirements.in
|
|
django-filter==2.4.0
|
|
# via -r requirements.in
|
|
django-ipware==4.0.2
|
|
# via -r requirements.in
|
|
django-log-request-id==1.6.0
|
|
# via -r requirements.in
|
|
django-migration-linter==4.1.0
|
|
# via -r requirements.in
|
|
django-mirage-field==1.3.0
|
|
# via -r requirements.in
|
|
django-mysql==4.6.0
|
|
# via -r requirements.in
|
|
django-polymorphic==3.1.0
|
|
# via
|
|
# -r requirements.in
|
|
# django-rest-polymorphic
|
|
django-ratelimit==2.0.0
|
|
# via -r requirements.in
|
|
django-redis==5.4.0
|
|
# via -r requirements.in
|
|
django-rest-polymorphic==0.1.10
|
|
# via -r requirements.in
|
|
django-silk==5.0.3
|
|
# via -r requirements.in
|
|
django-sns-view==0.1.2
|
|
# via -r requirements.in
|
|
djangorestframework==3.15.2
|
|
# via
|
|
# -r requirements.in
|
|
# django-rest-polymorphic
|
|
# drf-spectacular
|
|
drf-spectacular==0.26.5
|
|
# via -r requirements.in
|
|
emoji==2.4.0
|
|
# via
|
|
# -r requirements.in
|
|
# slack-export-viewer
|
|
factory-boy==2.12.0
|
|
# via -r requirements.in
|
|
faker==23.1.0
|
|
# via factory-boy
|
|
fcm-django @ https://github.com/grafana/fcm-django/archive/refs/tags/v1.0.12r1.tar.gz#sha256=7ec7cd9d353fc9edf19a4acd4fa14090a31d83d02ac986c5e5e081dea29f564f
|
|
# via -r requirements.in
|
|
firebase-admin==5.4.0
|
|
# via fcm-django
|
|
flask==3.0.2
|
|
# via slack-export-viewer
|
|
google-api-core==2.17.0
|
|
# via
|
|
# firebase-admin
|
|
# google-api-python-client
|
|
# google-cloud-core
|
|
# google-cloud-firestore
|
|
# google-cloud-storage
|
|
google-api-python-client==2.122.0
|
|
# via
|
|
# -r requirements.in
|
|
# firebase-admin
|
|
google-auth==2.27.0
|
|
# via
|
|
# google-api-core
|
|
# google-api-python-client
|
|
# google-auth-httplib2
|
|
# google-auth-oauthlib
|
|
# google-cloud-core
|
|
# google-cloud-storage
|
|
google-auth-httplib2==0.2.0
|
|
# via
|
|
# -r requirements.in
|
|
# google-api-python-client
|
|
google-auth-oauthlib==1.2.0
|
|
# via -r requirements.in
|
|
google-cloud-core==2.4.1
|
|
# via
|
|
# google-cloud-firestore
|
|
# google-cloud-storage
|
|
google-cloud-firestore==2.14.0
|
|
# via firebase-admin
|
|
google-cloud-storage==2.14.0
|
|
# via firebase-admin
|
|
google-crc32c==1.5.0
|
|
# via
|
|
# google-cloud-storage
|
|
# google-resumable-media
|
|
google-resumable-media==2.7.0
|
|
# via google-cloud-storage
|
|
googleapis-common-protos==1.62.0
|
|
# via
|
|
# google-api-core
|
|
# grpcio-status
|
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
gprof2dot==2022.7.29
|
|
# via django-silk
|
|
grpcio==1.64.1
|
|
# via
|
|
# -r requirements.in
|
|
# google-api-core
|
|
# grpcio-status
|
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
grpcio-status==1.57.0
|
|
# via google-api-core
|
|
hiredis==2.2.3
|
|
# via -r requirements.in
|
|
httplib2==0.22.0
|
|
# via
|
|
# google-api-python-client
|
|
# google-auth-httplib2
|
|
humanize==0.5.1
|
|
# via -r requirements.in
|
|
icalendar==5.0.10
|
|
# via
|
|
# -r requirements.in
|
|
# recurring-ical-events
|
|
# x-wr-timezone
|
|
idna==3.6
|
|
# via requests
|
|
importlib-metadata==6.11.0
|
|
# via opentelemetry-api
|
|
inflection==0.5.1
|
|
# via drf-spectacular
|
|
itsdangerous==2.1.2
|
|
# via flask
|
|
jinja2==3.1.4
|
|
# via flask
|
|
jmespath==1.0.1
|
|
# via
|
|
# boto3
|
|
# botocore
|
|
jsonschema==4.21.1
|
|
# via drf-spectacular
|
|
jsonschema-specifications==2023.12.1
|
|
# via jsonschema
|
|
kombu==5.3.5
|
|
# via celery
|
|
lxml==5.2.2
|
|
# via -r requirements.in
|
|
markdown==3.5.2
|
|
# via pymdown-extensions
|
|
markdown2==2.4.10
|
|
# via
|
|
# -r requirements.in
|
|
# slack-export-viewer
|
|
markupsafe==2.1.5
|
|
# via
|
|
# jinja2
|
|
# werkzeug
|
|
msgpack==1.0.7
|
|
# via cachecontrol
|
|
oauthlib==3.2.2
|
|
# via
|
|
# requests-oauthlib
|
|
# social-auth-core
|
|
opentelemetry-api==1.25.0
|
|
# via
|
|
# -r requirements.in
|
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
# opentelemetry-instrumentation
|
|
# opentelemetry-instrumentation-django
|
|
# opentelemetry-instrumentation-logging
|
|
# opentelemetry-instrumentation-requests
|
|
# opentelemetry-instrumentation-wsgi
|
|
# opentelemetry-sdk
|
|
# opentelemetry-semantic-conventions
|
|
opentelemetry-exporter-otlp-proto-common==1.25.0
|
|
# via opentelemetry-exporter-otlp-proto-grpc
|
|
opentelemetry-exporter-otlp-proto-grpc==1.25.0
|
|
# via -r requirements.in
|
|
opentelemetry-instrumentation==0.46b0
|
|
# via
|
|
# opentelemetry-instrumentation-django
|
|
# opentelemetry-instrumentation-logging
|
|
# opentelemetry-instrumentation-requests
|
|
# opentelemetry-instrumentation-wsgi
|
|
opentelemetry-instrumentation-django==0.46b0
|
|
# via -r requirements.in
|
|
opentelemetry-instrumentation-logging==0.46b0
|
|
# via -r requirements.in
|
|
opentelemetry-instrumentation-requests==0.46b0
|
|
# via -r requirements.in
|
|
opentelemetry-instrumentation-wsgi==0.46b0
|
|
# via
|
|
# -r requirements.in
|
|
# opentelemetry-instrumentation-django
|
|
opentelemetry-proto==1.25.0
|
|
# via
|
|
# opentelemetry-exporter-otlp-proto-common
|
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
opentelemetry-sdk==1.25.0
|
|
# via
|
|
# -r requirements.in
|
|
# opentelemetry-exporter-otlp-proto-grpc
|
|
opentelemetry-semantic-conventions==0.46b0
|
|
# via
|
|
# opentelemetry-instrumentation-django
|
|
# opentelemetry-instrumentation-requests
|
|
# opentelemetry-instrumentation-wsgi
|
|
# opentelemetry-sdk
|
|
opentelemetry-util-http==0.46b0
|
|
# via
|
|
# opentelemetry-instrumentation-django
|
|
# opentelemetry-instrumentation-requests
|
|
# opentelemetry-instrumentation-wsgi
|
|
pem==23.1.0
|
|
# via django-sns-view
|
|
phonenumbers==8.10.0
|
|
# via -r requirements.in
|
|
prometheus-client==0.16.0
|
|
# via -r requirements.in
|
|
prompt-toolkit==3.0.43
|
|
# via click-repl
|
|
proto-plus==1.23.0
|
|
# via google-cloud-firestore
|
|
protobuf==4.25.2
|
|
# via
|
|
# google-api-core
|
|
# google-cloud-firestore
|
|
# googleapis-common-protos
|
|
# grpcio-status
|
|
# opentelemetry-proto
|
|
# proto-plus
|
|
psutil==5.9.4
|
|
# via -r requirements.in
|
|
psycopg2==2.9.3
|
|
# via -r requirements.in
|
|
pyasn1==0.5.1
|
|
# via
|
|
# pyasn1-modules
|
|
# rsa
|
|
pyasn1-modules==0.3.0
|
|
# via google-auth
|
|
pycodestyle==2.11.1
|
|
# via autopep8
|
|
pycparser==2.21
|
|
# via cffi
|
|
pyjwt==2.8.0
|
|
# via
|
|
# social-auth-core
|
|
# twilio
|
|
pymdown-extensions==10.0
|
|
# via -r requirements.in
|
|
pymysql==1.1.1
|
|
# via -r requirements.in
|
|
pyopenssl==24.1.0
|
|
# via django-sns-view
|
|
pyparsing==3.1.1
|
|
# via httplib2
|
|
python-dateutil==2.8.2
|
|
# via
|
|
# botocore
|
|
# celery
|
|
# faker
|
|
# icalendar
|
|
# recurring-ical-events
|
|
python-telegram-bot==13.13
|
|
# via -r requirements.in
|
|
python3-openid==3.2.0
|
|
# via social-auth-core
|
|
pytz==2024.1
|
|
# via
|
|
# apscheduler
|
|
# icalendar
|
|
# python-telegram-bot
|
|
# recurring-ical-events
|
|
# twilio
|
|
# x-wr-timezone
|
|
pyyaml==6.0.1
|
|
# via
|
|
# drf-spectacular
|
|
# pymdown-extensions
|
|
recurring-ical-events==2.1.0
|
|
# via -r requirements.in
|
|
redis==5.0.1
|
|
# via
|
|
# -r requirements.in
|
|
# celery
|
|
# django-redis
|
|
referencing==0.33.0
|
|
# via
|
|
# jsonschema
|
|
# jsonschema-specifications
|
|
regex==2021.11.2
|
|
# via -r requirements.in
|
|
requests==2.32.3
|
|
# via
|
|
# -r requirements.in
|
|
# cachecontrol
|
|
# django-anymail
|
|
# django-sns-view
|
|
# google-api-core
|
|
# google-cloud-storage
|
|
# requests-oauthlib
|
|
# social-auth-core
|
|
# twilio
|
|
requests-oauthlib==1.3.1
|
|
# via
|
|
# google-auth-oauthlib
|
|
# social-auth-core
|
|
rpds-py==0.18.0
|
|
# via
|
|
# jsonschema
|
|
# referencing
|
|
rsa==4.9
|
|
# via google-auth
|
|
s3transfer==0.10.0
|
|
# via boto3
|
|
setuptools==72.1.0
|
|
# via
|
|
# apscheduler
|
|
# opentelemetry-instrumentation
|
|
six==1.16.0
|
|
# via
|
|
# apscheduler
|
|
# django-rest-polymorphic
|
|
# python-dateutil
|
|
# twilio
|
|
slack-export-viewer==1.1.4
|
|
# via -r requirements.in
|
|
slack-sdk==3.21.3
|
|
# via -r requirements.in
|
|
social-auth-app-django==5.4.1
|
|
# via -r requirements.in
|
|
social-auth-core==4.5.2
|
|
# via social-auth-app-django
|
|
soupsieve==2.5
|
|
# via beautifulsoup4
|
|
sqlparse==0.5.0
|
|
# via
|
|
# django
|
|
# django-debug-toolbar
|
|
# django-silk
|
|
toml==0.10.2
|
|
# via django-migration-linter
|
|
tornado==6.4.1
|
|
# via python-telegram-bot
|
|
tqdm==4.66.3
|
|
# via django-mirage-field
|
|
twilio==6.37.0
|
|
# via -r requirements.in
|
|
typing-extensions==4.9.0
|
|
# via opentelemetry-sdk
|
|
tzdata==2024.1
|
|
# via celery
|
|
tzlocal==5.2
|
|
# via apscheduler
|
|
uritemplate==4.1.1
|
|
# via
|
|
# drf-spectacular
|
|
# google-api-python-client
|
|
urllib3==1.26.18
|
|
# via
|
|
# -r requirements.in
|
|
# botocore
|
|
# requests
|
|
uwsgi==2.0.26
|
|
# via -r requirements.in
|
|
vine==5.1.0
|
|
# via
|
|
# amqp
|
|
# celery
|
|
# kombu
|
|
wcwidth==0.2.13
|
|
# via prompt-toolkit
|
|
werkzeug==3.0.3
|
|
# via flask
|
|
whitenoise==5.3.0
|
|
# via -r requirements.in
|
|
wrapt==1.16.0
|
|
# via
|
|
# deprecated
|
|
# opentelemetry-instrumentation
|
|
x-wr-timezone==0.0.6
|
|
# via recurring-ical-events
|
|
zipp==3.19.1
|
|
# via importlib-metadata
|