From 89824c95fb5ab7cf16a926ba5bcf05d263056dd2 Mon Sep 17 00:00:00 2001 From: Tarun Tak Date: Mon, 8 Jun 2026 16:24:10 +0530 Subject: [PATCH] =?UTF-8?q?Revert=20"fix:=20update=20Python=20version=20to?= =?UTF-8?q?=203.11=20and=20use=20latest=20setup-python=20action=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f2cb0093ee17d01ff158c803ce3d1970823fb0bf. --- .github/workflows/playbook-test.yml | 4 +- .github/workflows/syntax-test.yml | 4 +- Makefile | 2 + .../roles/aws/templates/requirements.txt.j2 | 14 +- requirements.txt | 59 ++++----- requirements/base.in | 6 +- requirements/base3_12.in | 22 ++++ requirements/common_constraints.txt | 24 +++- requirements/constraints.txt | 8 -- requirements/pip-tools.txt | 14 +- requirements/pip.txt | 2 +- requirements3_12.txt | 120 ++++++++++++++++++ util/elasticsearch/requirements.txt | 2 +- util/jenkins/requirements-cloudflare.txt | 12 +- util/jenkins/requirements.txt | 60 +++++---- util/pingdom/requirements.txt | 12 +- util/vpc-tools/requirements.txt | 10 +- 17 files changed, 258 insertions(+), 117 deletions(-) create mode 100644 requirements/base3_12.in create mode 100644 requirements3_12.txt diff --git a/.github/workflows/playbook-test.yml b/.github/workflows/playbook-test.yml index 350cbe494..ddd1b9ad2 100644 --- a/.github/workflows/playbook-test.yml +++ b/.github/workflows/playbook-test.yml @@ -13,12 +13,12 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ['3.11'] + python-version: [3.9] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install Dependencies diff --git a/.github/workflows/syntax-test.yml b/.github/workflows/syntax-test.yml index 3eeec5f30..26457ab04 100644 --- a/.github/workflows/syntax-test.yml +++ b/.github/workflows/syntax-test.yml @@ -13,12 +13,12 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ['3.11'] + python-version: [3.9] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install Dependencies diff --git a/Makefile b/Makefile index 8142015e4..ad31ca95a 100755 --- a/Makefile +++ b/Makefile @@ -36,6 +36,7 @@ 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 @@ -46,6 +47,7 @@ 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 \ diff --git a/playbooks/roles/aws/templates/requirements.txt.j2 b/playbooks/roles/aws/templates/requirements.txt.j2 index e110add65..286fc46e9 100644 --- a/playbooks/roles/aws/templates/requirements.txt.j2 +++ b/playbooks/roles/aws/templates/requirements.txt.j2 @@ -4,26 +4,26 @@ # # make upgrade # -awscli==1.44.43 +awscli==1.38.8 # via -r requirements/aws.in boto==2.49.0 # via -r requirements/aws.in -boto3==1.42.53 +boto3==1.37.8 # via -r requirements/aws.in -botocore==1.42.53 +botocore==1.37.8 # via # awscli # boto3 # s3transfer colorama==0.4.6 # via awscli -docutils==0.19 +docutils==0.16 # via awscli -jmespath==1.1.0 +jmespath==1.0.1 # via # boto3 # botocore -pyasn1==0.6.2 +pyasn1==0.6.1 # via rsa python-dateutil==2.9.0.post0 # via @@ -39,7 +39,7 @@ rsa==4.7.2 # via awscli s3cmd==2.4.0 # via -r requirements/aws.in -s3transfer==0.16.0 +s3transfer==0.11.4 # via # awscli # boto3 diff --git a/requirements.txt b/requirements.txt index c7e3ca8b0..c7577d7f7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,13 +4,11 @@ # # make upgrade # -ansible==8.7.0 - # via - # -c requirements/constraints.txt - # -r requirements/base.in -ansible-core==2.15.13 +ansible==2.10.7 + # via -r requirements/base.in +ansible-base==2.10.17 # via ansible -awscli==1.44.43 +awscli==1.38.8 # via -r requirements/base.in bcrypt==3.1.7 # via @@ -18,27 +16,27 @@ bcrypt==3.1.7 # paramiko boto==2.49.0 # via -r requirements/base.in -boto3==1.42.53 +boto3==1.37.8 # via -r requirements/base.in -botocore==1.42.53 +botocore==1.37.8 # via # awscli # boto3 # s3transfer -certifi==2026.1.4 +certifi==2025.1.31 # via requests -cffi==2.0.0 +cffi==1.17.1 # via # bcrypt # cryptography # pynacl -charset-normalizer==3.4.4 +charset-normalizer==3.4.1 # via requests colorama==0.4.6 # via awscli -cryptography==46.0.5 +cryptography==44.0.2 # via - # ansible-core + # ansible-base # paramiko datadog==0.8.0 # via -r requirements/base.in @@ -48,21 +46,21 @@ decorator==5.2.1 # networkx docopt==0.6.2 # via -r requirements/base.in -docutils==0.19 +docutils==0.16 # via awscli ecdsa==0.13.3 # via -r requirements/base.in -idna==3.11 +idna==3.10 # via requests -jinja2==3.1.2 +jinja2==2.8 # via # -r requirements/base.in - # ansible-core -jmespath==1.1.0 + # ansible-base +jmespath==1.0.1 # via # boto3 # botocore -markupsafe==2.1.1 +markupsafe==2.0.1 # via # -r requirements/base.in # jinja2 @@ -70,42 +68,40 @@ mysqlclient==1.4.6 # via -r requirements/base.in networkx==1.11 # via -r requirements/base.in -packaging==26.0 - # via ansible-core +packaging==24.2 + # via ansible-base 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.2 +pyasn1==0.6.1 # via # paramiko # rsa -pycparser==3.0 +pycparser==2.22 # via cffi -pycryptodome==3.23.0 +pycryptodome==3.21.0 # via -r requirements/base.in pymongo==3.9.0 # via -r requirements/base.in -pynacl==1.6.2 +pynacl==1.5.0 # via paramiko python-dateutil==2.9.0.post0 # via botocore -pyyaml==6.0.3 +pyyaml==6.0.2 # via # -r requirements/base.in - # ansible-core + # ansible-base # awscli -requests==2.32.5 +requests==2.32.3 # via # -r requirements/base.in # datadog -resolvelib==1.0.1 - # via ansible-core rsa==4.7.2 # via awscli -s3transfer==0.16.0 +s3transfer==0.11.4 # via # awscli # boto3 @@ -116,6 +112,7 @@ six==1.17.0 # python-dateutil urllib3==1.26.18 # via + # -c requirements/common_constraints.txt # -r requirements/base.in # botocore # requests diff --git a/requirements/base.in b/requirements/base.in index a9fffa821..b1dd2de89 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -1,7 +1,7 @@ -c constraints.txt # Standard dependencies for Ansible runs -ansible<9.0.0 +ansible<3.0.0 awscli boto boto3 @@ -9,8 +9,8 @@ urllib3==1.26.18 datadog==0.8.0 docopt==0.6.2 ecdsa==0.13.3 -Jinja2==3.1.2 -markupsafe==2.1.1 +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 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 diff --git a/requirements/base3_12.in b/requirements/base3_12.in new file mode 100644 index 000000000..79ccb7fd2 --- /dev/null +++ b/requirements/base3_12.in @@ -0,0 +1,22 @@ +-c constraints.txt +# Standard dependencies for Ansible runs + +ansible<10.0.0 +awscli +boto +boto3 +urllib3==1.26.18 +datadog==0.8.0 +docopt==0.6.2 +ecdsa==0.13.3 +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 +pathlib2==2.3.0 +prettytable==0.7.2 +pycryptodome +pymongo==3.9.0 # Needed for the mongo_* modules (playbooks/library/mongo_*) +PyYAML +requests diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index 7d206e7b4..9d5f19f63 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -12,15 +12,27 @@ # this file from Github directly. It does not require packaging in edx-lint. # using LTS django version -Django<6.0 +Django<5.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 -# 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 +# 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 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 8258eb899..aaa989ce5 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -1,11 +1,3 @@ -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' -# Issue to track this dependency and unpin later on: https://2u-internal.atlassian.net/browse/GSRE-2248 -ansible<9.0.0 diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index d89516b82..31d211cc7 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,21 +4,19 @@ # # make upgrade # -build==1.4.0 +build==1.2.2.post1 # via pip-tools -click==8.3.1 +click==8.1.8 # via pip-tools -packaging==26.0 - # via - # build - # wheel -pip-tools==7.5.3 +packaging==24.2 + # via build +pip-tools==7.4.1 # via -r requirements/pip-tools.in pyproject-hooks==1.2.0 # via # build # pip-tools -wheel==0.46.3 +wheel==0.45.1 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip.txt b/requirements/pip.txt index 4c3704e38..1a5b93b82 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -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==25.3 +pip==24.2 # via # -c requirements/common_constraints.txt # -r requirements/pip.in diff --git a/requirements3_12.txt b/requirements3_12.txt new file mode 100644 index 000000000..9eb36ee14 --- /dev/null +++ b/requirements3_12.txt @@ -0,0 +1,120 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# make upgrade +# +ansible==9.13.0 + # via -r requirements/base3_12.in +ansible-core==2.16.14 + # via ansible +awscli==1.38.8 + # via -r requirements/base3_12.in +bcrypt==3.1.7 + # via + # -c requirements/constraints.txt + # paramiko +boto==2.49.0 + # via -r requirements/base3_12.in +boto3==1.37.8 + # via -r requirements/base3_12.in +botocore==1.37.8 + # via + # awscli + # boto3 + # s3transfer +certifi==2025.1.31 + # via requests +cffi==1.17.1 + # via + # bcrypt + # cryptography + # pynacl +charset-normalizer==3.4.1 + # via requests +colorama==0.4.6 + # via awscli +cryptography==44.0.2 + # via + # ansible-core + # paramiko +datadog==0.8.0 + # via -r requirements/base3_12.in +decorator==5.2.1 + # via + # datadog + # networkx +docopt==0.6.2 + # via -r requirements/base3_12.in +docutils==0.16 + # via awscli +ecdsa==0.13.3 + # via -r requirements/base3_12.in +idna==3.10 + # via requests +jinja2==3.1.2 + # via + # -r requirements/base3_12.in + # ansible-core +jmespath==1.0.1 + # via + # boto3 + # botocore +markupsafe==2.1.1 + # via + # -r requirements/base3_12.in + # jinja2 +mysqlclient==1.4.6 + # via -r requirements/base3_12.in +networkx==1.11 + # via -r requirements/base3_12.in +packaging==24.2 + # via ansible-core +paramiko==2.4.2 + # via -r requirements/base3_12.in +pathlib2==2.3.0 + # via -r requirements/base3_12.in +prettytable==0.7.2 + # via -r requirements/base3_12.in +pyasn1==0.6.1 + # via + # paramiko + # rsa +pycparser==2.22 + # via cffi +pycryptodome==3.21.0 + # via -r requirements/base3_12.in +pymongo==3.9.0 + # via -r requirements/base3_12.in +pynacl==1.5.0 + # via paramiko +python-dateutil==2.9.0.post0 + # via botocore +pyyaml==6.0.2 + # via + # -r requirements/base3_12.in + # ansible-core + # awscli +requests==2.32.3 + # via + # -r requirements/base3_12.in + # datadog +resolvelib==1.0.1 + # via ansible-core +rsa==4.7.2 + # via awscli +s3transfer==0.11.4 + # via + # awscli + # boto3 +six==1.17.0 + # via + # bcrypt + # pathlib2 + # python-dateutil +urllib3==1.26.18 + # via + # -c requirements/common_constraints.txt + # -r requirements/base3_12.in + # botocore + # requests diff --git a/util/elasticsearch/requirements.txt b/util/elasticsearch/requirements.txt index f25dfae97..561d3db3e 100644 --- a/util/elasticsearch/requirements.txt +++ b/util/elasticsearch/requirements.txt @@ -8,7 +8,7 @@ deepdiff==3.1.0 # via -r requirements/elasticsearch.in elasticsearch==0.4.5 # via -r requirements/elasticsearch.in -jsonpickle==4.1.1 +jsonpickle==4.0.2 # via deepdiff urllib3==1.26.20 # via elasticsearch diff --git a/util/jenkins/requirements-cloudflare.txt b/util/jenkins/requirements-cloudflare.txt index ad6e06885..c9b00c4ed 100644 --- a/util/jenkins/requirements-cloudflare.txt +++ b/util/jenkins/requirements-cloudflare.txt @@ -4,15 +4,15 @@ # # make upgrade # -certifi==2026.1.4 +certifi==2025.1.31 # via requests -charset-normalizer==3.4.4 +charset-normalizer==3.4.1 # via requests -click==8.3.1 +click==8.1.8 # via -r requirements/cloudflare.in -idna==3.11 +idna==3.10 # via requests -requests==2.32.5 +requests==2.32.3 # via -r requirements/cloudflare.in -urllib3==2.6.3 +urllib3==2.3.0 # via requests diff --git a/util/jenkins/requirements.txt b/util/jenkins/requirements.txt index e47ab59fc..2ea533d1a 100644 --- a/util/jenkins/requirements.txt +++ b/util/jenkins/requirements.txt @@ -6,32 +6,32 @@ # amqp==5.3.1 # via kombu -argcomplete==3.6.3 +argcomplete==3.6.0 # via yq -awscli==1.44.43 +awscli==1.38.8 # via -r requirements/jenkins.in backoff==1.4.3 # via -r requirements/jenkins.in -billiard==4.2.4 +billiard==4.2.1 # via celery boto==2.49.0 # via -r requirements/jenkins.in -boto3==1.42.53 +boto3==1.37.8 # via -r requirements/jenkins.in -botocore==1.42.53 +botocore==1.37.8 # via # awscli # boto3 # s3transfer -celery==5.6.2 +celery==5.4.0 # via -r requirements/jenkins.in -certifi==2026.1.4 +certifi==2025.1.31 # via # opsgenie-sdk # requests -charset-normalizer==3.4.4 +charset-normalizer==3.4.1 # via requests -click==8.3.1 +click==8.1.8 # via # -r requirements/jenkins.in # celery @@ -40,31 +40,29 @@ click==8.3.1 # click-repl click-didyoumean==0.3.1 # via celery -click-plugins==1.1.1.2 +click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery colorama==0.4.6 # via awscli -docutils==0.19 +docutils==0.16 # via awscli -idna==3.11 +idna==3.10 # via requests -jmespath==1.1.0 +jmespath==1.0.1 # via # boto3 # botocore -jq==1.11.0 +jq==1.8.0 # via -r requirements/jenkins.in -kombu==5.6.2 +kombu==5.4.2 # via celery opsgenie-sdk==0.3.1 # via -r requirements/jenkins.in -packaging==26.0 - # via kombu -prompt-toolkit==3.0.52 +prompt-toolkit==3.0.50 # via click-repl -pyasn1==0.6.2 +pyasn1==0.6.1 # via rsa pymysql==0.9.3 # via -r requirements/jenkins.in @@ -74,26 +72,26 @@ python-dateutil==2.9.0.post0 # celery # opsgenie-sdk # s3cmd -python-gnupg==0.5.6 +python-gnupg==0.5.4 # via -r requirements/jenkins.in python-magic==0.4.27 # via s3cmd -pytz==2025.2 +pytz==2025.1 # via opsgenie-sdk -pyyaml==6.0.3 +pyyaml==6.0.2 # via # -r requirements/jenkins.in # awscli # yq redis==2.10.6 # via -r requirements/jenkins.in -requests==2.32.5 +requests==2.32.3 # via opsgenie-sdk rsa==4.7.2 # via awscli s3cmd==2.4.0 # via -r requirements/jenkins.in -s3transfer==0.16.0 +s3transfer==0.11.4 # via # awscli # boto3 @@ -101,12 +99,12 @@ six==1.17.0 # via # opsgenie-sdk # python-dateutil -tomlkit==0.14.0 +tomlkit==0.13.2 # via yq -tzdata==2025.3 - # via kombu -tzlocal==5.3.1 - # via celery +tzdata==2025.1 + # via + # celery + # kombu urllib3==1.26.18 # via # -r requirements/jenkins.in @@ -118,9 +116,9 @@ vine==5.1.0 # amqp # celery # kombu -wcwidth==0.6.0 +wcwidth==0.2.13 # via prompt-toolkit -xmltodict==1.0.3 +xmltodict==0.14.2 # via yq yq==3.4.3 # via -r requirements/jenkins.in diff --git a/util/pingdom/requirements.txt b/util/pingdom/requirements.txt index b80d25734..8dd605636 100644 --- a/util/pingdom/requirements.txt +++ b/util/pingdom/requirements.txt @@ -4,19 +4,19 @@ # # make upgrade # -certifi==2026.1.4 +certifi==2025.1.31 # via requests -charset-normalizer==3.4.4 +charset-normalizer==3.4.1 # via requests click==6.7 # via -r requirements/pingdom.in -idna==3.11 +idna==3.10 # via requests -pyyaml==6.0.3 +pyyaml==6.0.2 # via -r requirements/pingdom.in -requests==2.32.5 +requests==2.32.3 # via -r requirements/pingdom.in six==1.14.0 # via -r requirements/pingdom.in -urllib3==2.6.3 +urllib3==2.3.0 # via requests diff --git a/util/vpc-tools/requirements.txt b/util/vpc-tools/requirements.txt index f95cbe710..65a6a6310 100644 --- a/util/vpc-tools/requirements.txt +++ b/util/vpc-tools/requirements.txt @@ -6,15 +6,15 @@ # boto==2.49.0 # via -r requirements/vpc-tools.in -certifi==2026.1.4 +certifi==2025.1.31 # via requests -charset-normalizer==3.4.4 +charset-normalizer==3.4.1 # via requests docopt==0.6.2 # via -r requirements/vpc-tools.in -idna==3.11 +idna==3.10 # via requests -requests==2.32.5 +requests==2.32.3 # via -r requirements/vpc-tools.in -urllib3==2.6.3 +urllib3==2.3.0 # via requests