Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python 3.11 Upgrade #1

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
os:
- ubuntu-20.04
python-version:
- 3.8
- 3.11
targets: [ 'quality','main.test','docs' ]

steps:
Expand All @@ -40,7 +40,7 @@ jobs:
&& export TOXENV=django42 && make test.requirements tox.requirements ${{ matrix.targets }}"

- name: Run Coverage
if: matrix.python-version == '3.8' && matrix.targets=='main.test'
if: matrix.python-version == '3.11' && matrix.targets=='main.test'
uses: codecov/codecov-action@v1
with:
fail_ci_if_error: true
2 changes: 1 addition & 1 deletion .github/workflows/mysql8-migrations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
matrix:
os: [ ubuntu-20.04 ]
python-version: [ 3.8 ]
python-version: [ 3.11 ]

steps:
- name: Checkout repo
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/upgrade-python-requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ jobs:
uses: openedx/.github/.github/workflows/upgrade-python-requirements.yml@master
with:
branch: ${{ github.event.inputs.branch || 'master' }}
python_version: "3.8"
# optional parameters below; fill in if you'd like github or email notifications
# user_reviewers: ""
# team_reviewers: ""
email_address: "[email protected]"
send_success_notification: true
python_version: 3.11
secrets:
requirements_bot_github_token: ${{ secrets.REQUIREMENTS_BOT_GITHUB_TOKEN }}
requirements_bot_github_email: ${{ secrets.REQUIREMENTS_BOT_GITHUB_EMAIL }}
Expand Down
30 changes: 24 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,40 @@ FROM ubuntu:focal as base

# System requirements.

# ENV variables for Python 3.11 support
ARG PYTHON_VERSION=3.11
ENV TZ=UTC
ENV TERM=xterm-256color
ENV DEBIAN_FRONTEND=noninteractive

# software-properties-common is needed to setup Python 3.12 env
RUN apt-get update && \
apt-get install -y software-properties-common && \
apt-add-repository -y ppa:deadsnakes/ppa

# pkg-config; mysqlclient>=2.2.0 requires pkg-config (https://github.com/PyMySQL/mysqlclient/issues/620)

RUN apt update && \
DEBIAN_FRONTEND=noninteractive apt-get install -qy \
RUN apt-get update && \
apt-get install -qy \
curl \
vim \
language-pack-en \
build-essential \
python3.8-dev \
python3-virtualenv \
python3.8-distutils \
libffi-dev \
libsqlite3-dev \
python3-pip \
python${PYTHON_VERSION} \
python${PYTHON_VERSION}-dev \
python${PYTHON_VERSION}-distutils \
libmysqlclient-dev \
pkg-config \
libssl-dev && \
rm -rf /var/lib/apt/lists/*

# need to use virtualenv pypi package with Python 3.12
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python${PYTHON_VERSION}
RUN pip install virtualenv

# Use UTF-8.
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
Expand All @@ -39,7 +57,7 @@ ENV ANALYTICS_API_CFG "/edx/etc/${ANALYTICS_API_SERVICE_NAME}.yml"
# Working directory will be root of repo.
WORKDIR ${ANALYTICS_API_CODE_DIR}

RUN virtualenv -p python3.8 --always-copy ${ANALYTICS_API_VENV_DIR}
RUN virtualenv -p python${PYTHON_VERSION} --always-copy ${ANALYTICS_API_VENV_DIR}

# Expose canonical Analytics port
EXPOSE 19001
Expand Down
43 changes: 15 additions & 28 deletions requirements/base.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.8
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# make upgrade
Expand All @@ -9,21 +9,17 @@ asgiref==3.8.1
# django
# django-cors-headers
# django-countries
backports-zoneinfo==0.2.1
# via
# django
# djangorestframework
boto==2.49.0
# via -r requirements/base.in
boto3==1.35.8
boto3==1.35.14
# via -r requirements/base.in
botocore==1.35.8
botocore==1.35.14
# via
# boto3
# s3transfer
certifi==2024.7.4
certifi==2024.8.30
# via requests
cffi==1.17.0
cffi==1.17.1
# via
# cryptography
# pynacl
Expand All @@ -35,11 +31,11 @@ coreapi==2.3.3
# via -r requirements/base.in
coreschema==0.0.4
# via coreapi
cryptography==43.0.0
cryptography==43.0.1
# via
# django-fernet-fields-v2
# pyjwt
django==4.2.15
django==4.2.16
# via
# -c requirements/constraints.txt
# -r requirements/base.in
Expand Down Expand Up @@ -71,7 +67,7 @@ django-fernet-fields-v2==0.9
# via edx-enterprise-data
django-filter==24.3
# via edx-enterprise-data
django-model-utils==4.5.1
django-model-utils==5.0.0
# via
# edx-enterprise-data
# edx-rbac
Expand Down Expand Up @@ -113,35 +109,33 @@ edx-django-utils==5.15.0
# edx-drf-extensions
# edx-enterprise-data
# edx-rest-api-client
edx-drf-extensions==10.3.0
edx-drf-extensions==10.4.0
# via
# -r requirements/base.in
# edx-enterprise-data
# edx-rbac
edx-enterprise-data==8.11.0
edx-enterprise-data==8.11.1
# via -r requirements/base.in
edx-opaque-keys==2.10.0
edx-opaque-keys==2.11.0
# via
# -r requirements/base.in
# edx-ccx-keys
# edx-drf-extensions
# edx-enterprise-data
edx-rbac==1.10.0
# via edx-enterprise-data
edx-rest-api-client==5.7.1
edx-rest-api-client==6.0.0
# via
# -r requirements/base.in
# edx-enterprise-data
factory-boy==3.3.1
# via edx-enterprise-data
faker==28.0.0
faker==28.4.1
# via factory-boy
html5lib==1.1
# via -r requirements/base.in
idna==3.8
# via requests
importlib-metadata==8.4.0
# via markdown
inflection==0.5.1
# via drf-yasg
itypes==1.2.0
Expand Down Expand Up @@ -208,8 +202,7 @@ requests==2.32.3
# edx-drf-extensions
# edx-enterprise-data
# edx-rest-api-client
# slumber
rules==3.4
rules==3.5
# via edx-enterprise-data
s3transfer==0.10.2
# via boto3
Expand All @@ -222,8 +215,6 @@ six==1.16.0
# edx-rbac
# html5lib
# python-dateutil
slumber==0.7.1
# via edx-rest-api-client
sqlparse==0.5.1
# via django
stevedore==5.3.0
Expand All @@ -234,7 +225,6 @@ tqdm==4.66.5
# via -r requirements/base.in
typing-extensions==4.12.2
# via
# asgiref
# django-countries
# edx-opaque-keys
tzdata==2024.1
Expand All @@ -243,16 +233,13 @@ uritemplate==4.1.1
# via
# coreapi
# drf-yasg
urllib3==1.26.19
urllib3==2.2.2
# via
# -c requirements/constraints.txt
# -r requirements/base.in
# botocore
# requests
webencodings==0.5.1
# via html5lib
zipp==3.20.1
# via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools
2 changes: 1 addition & 1 deletion requirements/ci.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.8
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# make upgrade
Expand Down
4 changes: 2 additions & 2 deletions requirements/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@ elasticsearch-dsl>=7.2.1,<8.0.0
pylint==2.4.4
pylint-django==2.0.11

# botocore 1.34.144 depends on urllib3<1.27 and >=1.25.4; python_version < "3.10"
urllib3<2.0.0
# path>16.14.0 has removed the deprecated abspath function, which is breaking the docs build
path<16.15.0
41 changes: 14 additions & 27 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.8
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# make upgrade
Expand All @@ -9,21 +9,17 @@ asgiref==3.8.1
# django
# django-cors-headers
# django-countries
backports-zoneinfo==0.2.1
# via
# django
# djangorestframework
boto==2.49.0
# via -r requirements/base.in
boto3==1.35.8
boto3==1.35.14
# via -r requirements/base.in
botocore==1.35.8
botocore==1.35.14
# via
# boto3
# s3transfer
certifi==2024.7.4
certifi==2024.8.30
# via requests
cffi==1.17.0
cffi==1.17.1
# via
# cryptography
# pynacl
Expand All @@ -35,11 +31,11 @@ coreapi==2.3.3
# via -r requirements/base.in
coreschema==0.0.4
# via coreapi
cryptography==43.0.0
cryptography==43.0.1
# via
# django-fernet-fields-v2
# pyjwt
django==4.2.15
django==4.2.16
# via
# -c requirements/constraints.txt
# -r requirements/base.in
Expand Down Expand Up @@ -71,7 +67,7 @@ django-fernet-fields-v2==0.9
# via edx-enterprise-data
django-filter==24.3
# via edx-enterprise-data
django-model-utils==4.5.1
django-model-utils==5.0.0
# via
# edx-enterprise-data
# edx-rbac
Expand Down Expand Up @@ -113,35 +109,33 @@ edx-django-utils==5.15.0
# edx-drf-extensions
# edx-enterprise-data
# edx-rest-api-client
edx-drf-extensions==10.3.0
edx-drf-extensions==10.4.0
# via
# -r requirements/base.in
# edx-enterprise-data
# edx-rbac
edx-enterprise-data==8.11.1
# via -r requirements/base.in
edx-opaque-keys==2.10.0
edx-opaque-keys==2.11.0
# via
# -r requirements/base.in
# edx-ccx-keys
# edx-drf-extensions
# edx-enterprise-data
edx-rbac==1.10.0
# via edx-enterprise-data
edx-rest-api-client==5.7.1
edx-rest-api-client==6.0.0
# via
# -r requirements/base.in
# edx-enterprise-data
factory-boy==3.3.1
# via edx-enterprise-data
faker==28.0.0
faker==28.4.1
# via factory-boy
html5lib==1.1
# via -r requirements/base.in
idna==3.8
# via requests
importlib-metadata==8.4.0
# via markdown
inflection==0.5.1
# via drf-yasg
itypes==1.2.0
Expand Down Expand Up @@ -210,8 +204,7 @@ requests==2.32.3
# edx-drf-extensions
# edx-enterprise-data
# edx-rest-api-client
# slumber
rules==3.4
rules==3.5
# via edx-enterprise-data
s3transfer==0.10.2
# via boto3
Expand All @@ -224,8 +217,6 @@ six==1.16.0
# edx-rbac
# html5lib
# python-dateutil
slumber==0.7.1
# via edx-rest-api-client
sqlparse==0.5.1
# via django
stevedore==5.3.0
Expand All @@ -236,7 +227,6 @@ tqdm==4.66.5
# via -r requirements/base.in
typing-extensions==4.12.2
# via
# asgiref
# django-countries
# edx-opaque-keys
tzdata==2024.1
Expand All @@ -245,16 +235,13 @@ uritemplate==4.1.1
# via
# coreapi
# drf-yasg
urllib3==1.26.19
urllib3==2.2.2
# via
# -c requirements/constraints.txt
# -r requirements/base.in
# botocore
# requests
webencodings==0.5.1
# via html5lib
zipp==3.20.1
# via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools
2 changes: 1 addition & 1 deletion requirements/django.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
django==4.2.15
django==4.2.16
Loading
Loading