Skip to content
Open
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/playbook-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ jobs:
strategy:
max-parallel: 4
matrix:
python-version: [3.9]
python-version: ['3.11']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be 3.12? (To match requirements file.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, plan is to update this to 3.12. But current challenge is Ansible 9+ removed support for deprecated include syntax used in playbooks and lower version(ansible<9.0.0) is not supported on 3.12.
Plan is to create a separate PR which will require a SRE support where they can validate all the changes and update this to 3.12 with updated Ansible version.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, thanks! (Might be good to include this in the PR description, and the commit message when you squash.)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. As discussed in meeting, renaming the file to requirements3_11.txt (assuming we even need multiple requirements files), would help avoid some confusion.
  2. We should update comments appropriately about the relationship between python and ansible versions, and deferring the ansible upgrade. We may want a new ticket to link to, but I think https://2u-internal.atlassian.net/browse/GSRE-2249?focusedCommentId=5530695 might be the closest one to this topic at this time, except it is focused on the ubuntu upgrade.


steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/syntax-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ jobs:
strategy:
max-parallel: 4
matrix:
python-version: [3.9]
python-version: ['3.11']

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
Expand Down
2 changes: 0 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ upgrade: $(COMMON_CONSTRAINTS_TXT)
pip install -qr requirements/pip.txt
pip install -qr requirements/pip-tools.txt
pip-compile --upgrade -o requirements.txt requirements/base.in
pip-compile --upgrade -o requirements3_12.txt requirements/base3_12.in
pip-compile --upgrade -o playbooks/roles/aws/templates/requirements.txt.j2 requirements/aws.in
pip-compile --upgrade -o util/elasticsearch/requirements.txt requirements/elasticsearch.in
pip-compile --upgrade -o util/jenkins/requirements-cloudflare.txt requirements/cloudflare.in
Expand All @@ -47,7 +46,6 @@ upgrade: $(COMMON_CONSTRAINTS_TXT)
util/post-pip-compile.sh \
requirements/pip-tools.txt \
requirements.txt \
requirements3_12.txt \
playbooks/roles/aws/templates/requirements.txt.j2 \
util/elasticsearch/requirements.txt \
util/jenkins/requirements-cloudflare.txt \
Expand Down
14 changes: 7 additions & 7 deletions playbooks/roles/aws/templates/requirements.txt.j2
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,26 @@
#
# make upgrade
#
awscli==1.38.8
awscli==1.44.43
# via -r requirements/aws.in
boto==2.49.0
# via -r requirements/aws.in
boto3==1.37.8
boto3==1.42.53
# via -r requirements/aws.in
botocore==1.37.8
botocore==1.42.53
# via
# awscli
# boto3
# s3transfer
colorama==0.4.6
# via awscli
docutils==0.16
docutils==0.19
# via awscli
jmespath==1.0.1
jmespath==1.1.0
# via
# boto3
# botocore
pyasn1==0.6.1
pyasn1==0.6.2
# via rsa
python-dateutil==2.9.0.post0
# via
Expand All @@ -39,7 +39,7 @@ rsa==4.7.2
# via awscli
s3cmd==2.4.0
# via -r requirements/aws.in
s3transfer==0.11.4
s3transfer==0.16.0
# via
# awscli
# boto3
Expand Down
59 changes: 31 additions & 28 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,39 +4,41 @@
#
# make upgrade
#
ansible==2.10.7
# via -r requirements/base.in
ansible-base==2.10.17
ansible==8.7.0
# via
# -c requirements/constraints.txt
# -r requirements/base.in
ansible-core==2.15.13
# via ansible
awscli==1.38.8
awscli==1.44.43
# via -r requirements/base.in
bcrypt==3.1.7
# via
# -c requirements/constraints.txt
# paramiko
boto==2.49.0
# via -r requirements/base.in
boto3==1.37.8
boto3==1.42.53
# via -r requirements/base.in
botocore==1.37.8
botocore==1.42.53
# via
# awscli
# boto3
# s3transfer
certifi==2025.1.31
certifi==2026.1.4
# via requests
cffi==1.17.1
cffi==2.0.0
# via
# bcrypt
# cryptography
# pynacl
charset-normalizer==3.4.1
charset-normalizer==3.4.4
# via requests
colorama==0.4.6
# via awscli
cryptography==44.0.2
cryptography==46.0.5
# via
# ansible-base
# ansible-core
# paramiko
datadog==0.8.0
# via -r requirements/base.in
Expand All @@ -46,62 +48,64 @@ decorator==5.2.1
# networkx
docopt==0.6.2
# via -r requirements/base.in
docutils==0.16
docutils==0.19
# via awscli
ecdsa==0.13.3
# via -r requirements/base.in
idna==3.10
idna==3.11
# via requests
jinja2==2.8
jinja2==3.1.2
# via
# -r requirements/base.in
# ansible-base
jmespath==1.0.1
# ansible-core
jmespath==1.1.0
# via
# boto3
# botocore
markupsafe==2.0.1
markupsafe==2.1.1
# via
# -r requirements/base.in
# jinja2
mysqlclient==1.4.6
# via -r requirements/base.in
networkx==1.11
# via -r requirements/base.in
packaging==24.2
# via ansible-base
packaging==26.0
# via ansible-core
paramiko==2.4.2
# via -r requirements/base.in
pathlib2==2.3.0
# via -r requirements/base.in
prettytable==0.7.2
# via -r requirements/base.in
pyasn1==0.6.1
pyasn1==0.6.2
# via
# paramiko
# rsa
pycparser==2.22
pycparser==3.0
# via cffi
pycryptodome==3.21.0
pycryptodome==3.23.0
# via -r requirements/base.in
pymongo==3.9.0
# via -r requirements/base.in
pynacl==1.5.0
pynacl==1.6.2
# via paramiko
python-dateutil==2.9.0.post0
# via botocore
pyyaml==6.0.2
pyyaml==6.0.3
# via
# -r requirements/base.in
# ansible-base
# ansible-core
# awscli
requests==2.32.3
requests==2.32.5
# via
# -r requirements/base.in
# datadog
resolvelib==1.0.1
# via ansible-core
rsa==4.7.2
# via awscli
s3transfer==0.11.4
s3transfer==0.16.0
# via
# awscli
# boto3
Expand All @@ -112,7 +116,6 @@ six==1.17.0
# python-dateutil
urllib3==1.26.18
# via
# -c requirements/common_constraints.txt
# -r requirements/base.in
# botocore
# requests
6 changes: 3 additions & 3 deletions requirements/base.in
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
-c constraints.txt
# Standard dependencies for Ansible runs

ansible<3.0.0
ansible<9.0.0
awscli
boto
boto3
urllib3==1.26.18
datadog==0.8.0
docopt==0.6.2
ecdsa==0.13.3
Jinja2==2.8
markupsafe==2.0.1 # Pining this until we upgrade jinja2, as in newer version on markupsafe soft_unicode is removed and jinja2==2.8 use this pkg
Jinja2==3.1.2
markupsafe==2.1.1
mysqlclient==1.4.6 # Needed for the mysql_db module, 1,4,6 is the newest version that support python 2 which we really need to stop using
networkx==1.11
paramiko==2.4.2
Expand Down
22 changes: 0 additions & 22 deletions requirements/base3_12.in

This file was deleted.

24 changes: 6 additions & 18 deletions requirements/common_constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,27 +12,15 @@
# this file from Github directly. It does not require packaging in edx-lint.

# using LTS django version
Django<5.0
Django<6.0

# elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process.
# elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html
# See https://github.com/openedx/edx-platform/issues/35126 for more info
elasticsearch<7.14.0

# django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected
django-simple-history==3.0.0

# Cause: https://github.com/openedx/event-tracking/pull/290
# event-tracking 2.4.1 upgrades to pymongo 4.4.0 which is not supported on edx-platform.
# We will pin event-tracking to do not break existing installations
# This can be unpinned once https://github.com/openedx/edx-platform/issues/34586
# has been resolved and edx-platform is running with pymongo>=4.4.0
event-tracking<2.4.1

# Cause: https://github.com/openedx/edx-lint/issues/458
# This can be unpinned once https://github.com/openedx/edx-lint/issues/459 has been resolved.
pip<24.3

# Cause: https://github.com/openedx/edx-lint/issues/475
# This can be unpinned once https://github.com/openedx/edx-lint/issues/476 has been resolved.
urllib3<2.3.0
# pip 26 is incompatible with pip-tools hence causing failures during the build process
# Make upgrade command and all requirements upgrade jobs are broken due to this.
# The constraint can be removed once a release (pip-tools > 7.5.2) is available with support for pip 26
# Issue to track this dependency and unpin later on: https://github.com/jazzband/pip-tools/issues/2319
pip<26.0
8 changes: 8 additions & 0 deletions requirements/constraints.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
-c common_constraints.txt

bcrypt<3.2.0 # 3.2.0 dropped support for python 2.7

# Python 3.9 reached EOL in October 2025 and was removed from GitHub Actions runners
# GitHub Actions workflows now use Python 3.11
# Ansible 9+ supports Python 3.11+ but removed the deprecated 'include' syntax causing playbook failures
# Ansible 8.7.0 is the latest version that supports both Python 3.11 AND the deprecated 'include' syntax
# The constraint can be removed once all 63 instances of 'include' are migrated to 'include_tasks' or 'import_tasks'
# Tracking: Configuration playbooks need migration before upgrading to Ansible 9+
ansible<9.0.0
14 changes: 8 additions & 6 deletions requirements/pip-tools.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,21 @@
#
# make upgrade
#
build==1.2.2.post1
build==1.4.0
# via pip-tools
click==8.1.8
click==8.3.1
# via pip-tools
packaging==24.2
# via build
pip-tools==7.4.1
packaging==26.0
# via
# build
# wheel
pip-tools==7.5.3
# via -r requirements/pip-tools.in
pyproject-hooks==1.2.0
# via
# build
# pip-tools
wheel==0.45.1
wheel==0.46.3
# via pip-tools

# The following packages are considered to be unsafe in a requirements file:
Expand Down
2 changes: 1 addition & 1 deletion requirements/pip.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ wheel==0.44.0
# via -r requirements/pip.in

# The following packages are considered to be unsafe in a requirements file:
pip==24.2
pip==25.3
# via
# -c requirements/common_constraints.txt
# -r requirements/pip.in
Expand Down
Loading