From d1068473438145025c4c18dd8b4379808f41f93b Mon Sep 17 00:00:00 2001 From: awais qureshi Date: Mon, 19 Feb 2024 23:31:53 +0500 Subject: [PATCH] build: adding python3.11 and 3.12 support. --- .github/workflows/ci.yml | 14 ++++-- requirements/all.txt | 81 ++++++----------------------------- requirements/base.txt | 14 +++--- requirements/constraints.txt | 6 ++- requirements/dev.in | 2 - requirements/dev.txt | 56 ++++-------------------- requirements/production.txt | 18 ++++---- requirements/test.txt | 18 ++++---- requirements/translations.txt | 14 +++--- tox.ini | 2 +- 10 files changed, 69 insertions(+), 156 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6cdc56c2..e0318b79d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ on: jobs: quality_and_translations_tests: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -33,13 +33,13 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["py38"] + python-version: ["3.11"] django-version: ["django42"] steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: "3.8" + python-version: ${{ matrix.python-version }} architecture: x64 - name: Setup Nodejs Env run: echo "NODE_VER=`cat .nvmrc`" >> $GITHUB_ENV @@ -79,7 +79,13 @@ jobs: with: node-version: ${{ env.NODE_VER }} - name: Install Dependencies - run: make requirements + run: + # if [ "${{ matrix.python-version }}" == "3.8" ]; then + # pip install pyyaml==5.4.1 + # elif [ "${{ matrix.python-version }}" == "3.11" ]; then + # pip install pyyaml==6.0.1 + # fi + make requirements - name: Install Firefox run: | sudo apt-get update diff --git a/requirements/all.txt b/requirements/all.txt index 87e5f17cf..fb4099276 100644 --- a/requirements/all.txt +++ b/requirements/all.txt @@ -4,7 +4,7 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -21,34 +21,30 @@ attrs==23.2.0 # -r requirements/dev.txt # -r requirements/production.txt # edx-ace - # jsonschema # openedx-events backoff==2.2.1 # via # -r requirements/dev.txt # -r requirements/production.txt # segment-analytics-python -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/dev.txt # -r requirements/production.txt # django # djangorestframework -bcrypt==4.1.2 - # via - # -r requirements/dev.txt - # paramiko black==24.3.0 # via -r requirements/dev.txt bleach==6.1.0 # via # -r requirements/dev.txt # -r requirements/production.txt -boto3==1.34.65 +boto3==1.34.70 # via # -r requirements/production.txt # django-ses -botocore==1.34.65 +botocore==1.34.70 # via # -r requirements/production.txt # boto3 @@ -117,7 +113,6 @@ cryptography==42.0.5 # via # -r requirements/dev.txt # -r requirements/production.txt - # paramiko # pyjwt # social-auth-core ddt==1.7.2 @@ -140,10 +135,6 @@ distlib==0.3.8 # via # -r requirements/dev.txt # virtualenv -distro==1.9.0 - # via - # -r requirements/dev.txt - # docker-compose django==4.2.11 # via # -c requirements/common_constraints.txt @@ -237,7 +228,7 @@ django-webpack-loader==3.0.1 # via # -r requirements/dev.txt # -r requirements/production.txt -djangorestframework==3.15.0 +djangorestframework==3.15.1 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -245,20 +236,6 @@ djangorestframework==3.15.0 # drf-jwt # drf-yasg # edx-drf-extensions -docker[ssh]==7.0.0 - # via - # -r requirements/dev.txt - # docker-compose -docker-compose==1.29.2 - # via -r requirements/dev.txt -dockerpty==0.4.1 - # via - # -r requirements/dev.txt - # docker-compose -docopt==0.6.2 - # via - # -r requirements/dev.txt - # docker-compose drf-jwt==1.19.2 # via # -r requirements/dev.txt @@ -276,7 +253,7 @@ edx-auth-backends==4.2.0 # via # -r requirements/dev.txt # -r requirements/production.txt -edx-credentials-themes @ git+https://github.com/openedx/credentials-themes.git@0.4.7 +edx-credentials-themes @ git+https://github.com/openedx/credentials-themes.git@0.4.2 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -333,7 +310,7 @@ exceptiongroup==1.2.0 # pytest factory-boy==3.3.0 # via -r requirements/dev.txt -faker==24.3.0 +faker==24.4.0 # via # -r requirements/dev.txt # factory-boy @@ -342,7 +319,7 @@ fastavro==1.9.4 # -r requirements/dev.txt # -r requirements/production.txt # openedx-events -filelock==3.13.1 +filelock==3.13.3 # via # -r requirements/dev.txt # tox @@ -397,10 +374,6 @@ jmespath==1.0.1 # -r requirements/production.txt # boto3 # botocore -jsonschema==3.2.0 - # via - # -r requirements/dev.txt - # docker-compose lxml==5.1.0 # via # -r requirements/dev.txt @@ -459,16 +432,11 @@ packaging==24.0 # -r requirements/dev.txt # -r requirements/production.txt # black - # docker # drf-yasg # gunicorn # pyproject-api # pytest # tox -paramiko==3.4.0 - # via - # -r requirements/dev.txt - # docker path==16.10.0 # via # -r requirements/dev.txt @@ -562,7 +530,6 @@ pynacl==1.5.0 # -r requirements/dev.txt # -r requirements/production.txt # edx-django-utils - # paramiko pypng==0.20220715.0 # via # -r requirements/dev.txt @@ -572,10 +539,6 @@ pyproject-api==1.6.1 # via # -r requirements/dev.txt # tox -pyrsistent==0.20.0 - # via - # -r requirements/dev.txt - # jsonschema pytest==8.1.1 # via # -r requirements/dev.txt @@ -590,10 +553,6 @@ python-dateutil==2.9.0.post0 # edx-ace # faker # segment-analytics-python -python-dotenv==0.21.1 - # via - # -r requirements/dev.txt - # docker-compose python-memcached==1.62 # via # -r requirements/dev.txt @@ -616,13 +575,11 @@ pytz==2024.1 # drf-yasg pywatchman==2.0.0 ; "linux" in sys_platform # via -r requirements/dev.txt -pyyaml==5.4.1 +pyyaml==6.0.1 # via - # -c requirements/constraints.txt # -r requirements/dev.txt # -r requirements/production.txt # code-annotations - # docker-compose # drf-yasg # edx-django-release-util # edx-i18n-tools @@ -636,8 +593,6 @@ requests==2.31.0 # -r requirements/dev.txt # -r requirements/production.txt # coreapi - # docker - # docker-compose # edx-drf-extensions # edx-rest-api-client # requests-oauthlib @@ -646,7 +601,7 @@ requests==2.31.0 # segment-analytics-python # slumber # social-auth-core -requests-oauthlib==1.4.0 +requests-oauthlib==2.0.0 # via # -r requirements/dev.txt # -r requirements/production.txt @@ -682,14 +637,11 @@ six==1.16.0 # -r requirements/dev.txt # -r requirements/production.txt # bleach - # dockerpty # edx-ace # edx-auth-backends # edx-django-release-util # edx-lint - # jsonschema # python-dateutil - # websocket-client slumber==0.7.1 # via # -r requirements/dev.txt @@ -727,10 +679,6 @@ text-unidecode==1.3 # -r requirements/dev.txt # -r requirements/production.txt # python-slugify -texttable==1.7.0 - # via - # -r requirements/dev.txt - # docker-compose tomli==2.0.1 # via # -r requirements/dev.txt @@ -743,7 +691,7 @@ tomlkit==0.12.4 # via # -r requirements/dev.txt # pylint -tox==4.14.1 +tox==4.14.2 # via -r requirements/dev.txt typing-extensions==4.10.0 # via @@ -768,7 +716,6 @@ urllib3==1.26.18 # -r requirements/dev.txt # -r requirements/production.txt # botocore - # docker # requests # responses virtualenv==20.25.1 @@ -780,10 +727,6 @@ webencodings==0.5.1 # -r requirements/dev.txt # -r requirements/production.txt # bleach -websocket-client==0.59.0 - # via - # -r requirements/dev.txt - # docker-compose xss-utils==0.5.0 # via # -r requirements/dev.txt diff --git a/requirements/base.txt b/requirements/base.txt index 4dec76045..29811fa48 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,7 +4,7 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # django # django-cors-headers @@ -15,8 +15,9 @@ attrs==23.2.0 # openedx-events backoff==2.2.1 # via segment-analytics-python -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # django # djangorestframework bleach==6.1.0 @@ -112,7 +113,7 @@ django-waffle==4.1.0 # edx-toggles django-webpack-loader==3.0.1 # via -r requirements/base.in -djangorestframework==3.15.0 +djangorestframework==3.15.1 # via # -r requirements/base.in # django-rest-swagger @@ -127,7 +128,7 @@ edx-ace==1.8.0 # via -r requirements/base.in edx-auth-backends==4.2.0 # via -r requirements/base.in -edx-credentials-themes @ git+https://github.com/openedx/credentials-themes.git@0.4.7 +edx-credentials-themes @ git+https://github.com/openedx/credentials-themes.git@0.4.2 # via -r requirements/base.in edx-django-release-util==1.3.0 # via -r requirements/base.in @@ -242,9 +243,8 @@ pytz==2024.1 # via # -r requirements/base.in # drf-yasg -pyyaml==5.4.1 +pyyaml==6.0.1 # via - # -c requirements/constraints.txt # code-annotations # drf-yasg # edx-django-release-util @@ -262,7 +262,7 @@ requests==2.31.0 # segment-analytics-python # slumber # social-auth-core -requests-oauthlib==1.4.0 +requests-oauthlib==2.0.0 # via social-auth-core sailthru-client==2.2.3 # via edx-ace diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 311cbd383..d9752031a 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -13,8 +13,12 @@ # The update to pyyaml 6.x failed as docker-compose wants <6,>=3.10. Pinning to <6.0. This constraint will be # re-evaluated as part of APER-1556. -pyyaml<6.0 + # Pinning urllib3 to versions < 2.x as this conflicts with boto. This constraint will be re-evaluated as part of # APER-2422 urllib3<2 + + +# Temporary to Support the python 3.11 Upgrade +backports.zoneinfo;python_version<"3.9" # Newer versions have zoneinfo available in the standard library diff --git a/requirements/dev.in b/requirements/dev.in index 997441f7c..6999c1301 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -11,8 +11,6 @@ # i18n edx-i18n-tools -# for docker devstack -docker-compose # More efficient checking for runserver reload trigger events pywatchman; "linux" in sys_platform diff --git a/requirements/dev.txt b/requirements/dev.txt index c855a2025..9218c9ed3 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,7 +4,7 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/test.txt # django @@ -19,19 +19,17 @@ attrs==23.2.0 # via # -r requirements/test.txt # edx-ace - # jsonschema # openedx-events backoff==2.2.1 # via # -r requirements/test.txt # segment-analytics-python -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test.txt # django # djangorestframework -bcrypt==4.1.2 - # via paramiko black==24.3.0 # via -r requirements/test.txt bleach==6.1.0 @@ -92,7 +90,6 @@ coverage==7.4.4 cryptography==42.0.5 # via # -r requirements/test.txt - # paramiko # pyjwt # social-auth-core ddt==1.7.2 @@ -112,8 +109,6 @@ distlib==0.3.8 # via # -r requirements/test.txt # virtualenv -distro==1.9.0 - # via docker-compose django==4.2.11 # via # -c requirements/common_constraints.txt @@ -180,21 +175,13 @@ django-waffle==4.1.0 # edx-toggles django-webpack-loader==3.0.1 # via -r requirements/test.txt -djangorestframework==3.15.0 +djangorestframework==3.15.1 # via # -r requirements/test.txt # django-rest-swagger # drf-jwt # drf-yasg # edx-drf-extensions -docker[ssh]==7.0.0 - # via docker-compose -docker-compose==1.29.2 - # via -r requirements/dev.in -dockerpty==0.4.1 - # via docker-compose -docopt==0.6.2 - # via docker-compose drf-jwt==1.19.2 # via # -r requirements/test.txt @@ -247,7 +234,7 @@ exceptiongroup==1.2.0 # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==24.3.0 +faker==24.4.0 # via # -r requirements/test.txt # factory-boy @@ -255,7 +242,7 @@ fastavro==1.9.4 # via # -r requirements/test.txt # openedx-events -filelock==3.13.1 +filelock==3.13.3 # via # -r requirements/test.txt # tox @@ -292,8 +279,6 @@ jinja2==3.1.3 # -r requirements/test.txt # code-annotations # coreschema -jsonschema==3.2.0 - # via docker-compose lxml==5.1.0 # via # -r requirements/test.txt @@ -337,13 +322,10 @@ packaging==24.0 # via # -r requirements/test.txt # black - # docker # drf-yasg # pyproject-api # pytest # tox -paramiko==3.4.0 - # via docker path==16.10.0 # via # -r requirements/test.txt @@ -423,7 +405,6 @@ pynacl==1.5.0 # via # -r requirements/test.txt # edx-django-utils - # paramiko pypng==0.20220715.0 # via # -r requirements/test.txt @@ -432,8 +413,6 @@ pyproject-api==1.6.1 # via # -r requirements/test.txt # tox -pyrsistent==0.20.0 - # via jsonschema pytest==8.1.1 # via # -r requirements/test.txt @@ -446,8 +425,6 @@ python-dateutil==2.9.0.post0 # edx-ace # faker # segment-analytics-python -python-dotenv==0.21.1 - # via docker-compose python-memcached==1.62 # via -r requirements/test.txt python-slugify==8.0.4 @@ -464,12 +441,10 @@ pytz==2024.1 # drf-yasg pywatchman==2.0.0 ; "linux" in sys_platform # via -r requirements/dev.in -pyyaml==5.4.1 +pyyaml==6.0.1 # via - # -c requirements/constraints.txt # -r requirements/test.txt # code-annotations - # docker-compose # drf-yasg # edx-django-release-util # edx-i18n-tools @@ -480,8 +455,6 @@ requests==2.31.0 # via # -r requirements/test.txt # coreapi - # docker - # docker-compose # edx-drf-extensions # edx-rest-api-client # requests-oauthlib @@ -490,7 +463,7 @@ requests==2.31.0 # segment-analytics-python # slumber # social-auth-core -requests-oauthlib==1.4.0 +requests-oauthlib==2.0.0 # via # -r requirements/test.txt # social-auth-core @@ -515,14 +488,11 @@ six==1.16.0 # via # -r requirements/test.txt # bleach - # dockerpty # edx-ace # edx-auth-backends # edx-django-release-util # edx-lint - # jsonschema # python-dateutil - # websocket-client slumber==0.7.1 # via # -r requirements/test.txt @@ -554,8 +524,6 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -texttable==1.7.0 - # via docker-compose tomli==2.0.1 # via # -r requirements/test.txt @@ -568,7 +536,7 @@ tomlkit==0.12.4 # via # -r requirements/test.txt # pylint -tox==4.14.1 +tox==4.14.2 # via -r requirements/test.txt typing-extensions==4.10.0 # via @@ -589,7 +557,6 @@ urllib3==1.26.18 # via # -c requirements/constraints.txt # -r requirements/test.txt - # docker # requests # responses virtualenv==20.25.1 @@ -600,14 +567,9 @@ webencodings==0.5.1 # via # -r requirements/test.txt # bleach -websocket-client==0.59.0 - # via docker-compose xss-utils==0.5.0 # via -r requirements/test.txt zipp==3.18.1 # via # -r requirements/test.txt # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/production.txt b/requirements/production.txt index ce3d33442..5d042fefd 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -4,7 +4,7 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # django @@ -19,16 +19,17 @@ backoff==2.2.1 # via # -r requirements/base.txt # segment-analytics-python -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/base.txt # django # djangorestframework bleach==6.1.0 # via -r requirements/base.txt -boto3==1.34.65 +boto3==1.34.70 # via django-ses -botocore==1.34.65 +botocore==1.34.70 # via # boto3 # s3transfer @@ -141,7 +142,7 @@ django-waffle==4.1.0 # edx-toggles django-webpack-loader==3.0.1 # via -r requirements/base.txt -djangorestframework==3.15.0 +djangorestframework==3.15.1 # via # -r requirements/base.txt # django-rest-swagger @@ -158,7 +159,7 @@ edx-ace==1.8.0 # via -r requirements/base.txt edx-auth-backends==4.2.0 # via -r requirements/base.txt -edx-credentials-themes @ git+https://github.com/openedx/credentials-themes.git@0.4.7 +edx-credentials-themes @ git+https://github.com/openedx/credentials-themes.git@0.4.2 # via -r requirements/base.txt edx-django-release-util==1.3.0 # via -r requirements/base.txt @@ -334,9 +335,8 @@ pytz==2024.1 # -r requirements/base.txt # django-ses # drf-yasg -pyyaml==5.4.1 +pyyaml==6.0.1 # via - # -c requirements/constraints.txt # -r requirements/base.txt # -r requirements/production.in # code-annotations @@ -356,7 +356,7 @@ requests==2.31.0 # segment-analytics-python # slumber # social-auth-core -requests-oauthlib==1.4.0 +requests-oauthlib==2.0.0 # via # -r requirements/base.txt # social-auth-core diff --git a/requirements/test.txt b/requirements/test.txt index 5dd8f6889..0f0ae76b5 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -4,7 +4,7 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # django @@ -23,8 +23,9 @@ backoff==2.2.1 # via # -r requirements/base.txt # segment-analytics-python -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/base.txt # django # djangorestframework @@ -158,7 +159,7 @@ django-waffle==4.1.0 # edx-toggles django-webpack-loader==3.0.1 # via -r requirements/base.txt -djangorestframework==3.15.0 +djangorestframework==3.15.1 # via # -r requirements/base.txt # django-rest-swagger @@ -214,13 +215,13 @@ exceptiongroup==1.2.0 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==24.3.0 +faker==24.4.0 # via factory-boy fastavro==1.9.4 # via # -r requirements/base.txt # openedx-events -filelock==3.13.1 +filelock==3.13.3 # via # tox # virtualenv @@ -398,9 +399,8 @@ pytz==2024.1 # via # -r requirements/base.txt # drf-yasg -pyyaml==5.4.1 +pyyaml==6.0.1 # via - # -c requirements/constraints.txt # -r requirements/base.txt # code-annotations # drf-yasg @@ -421,7 +421,7 @@ requests==2.31.0 # segment-analytics-python # slumber # social-auth-core -requests-oauthlib==1.4.0 +requests-oauthlib==2.0.0 # via # -r requirements/base.txt # social-auth-core @@ -490,7 +490,7 @@ tomli==2.0.1 # tox tomlkit==0.12.4 # via pylint -tox==4.14.1 +tox==4.14.2 # via -r requirements/test.in typing-extensions==4.10.0 # via diff --git a/requirements/translations.txt b/requirements/translations.txt index 60ac955d6..81b3ccac9 100644 --- a/requirements/translations.txt +++ b/requirements/translations.txt @@ -4,10 +4,12 @@ # # make upgrade # -asgiref==3.7.2 - # via django -backports-zoneinfo==0.2.1 +asgiref==3.8.1 # via django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # django django==4.2.11 # via # -c requirements/common_constraints.txt @@ -20,10 +22,8 @@ path==16.10.0 # via edx-i18n-tools polib==1.2.0 # via edx-i18n-tools -pyyaml==5.4.1 - # via - # -c requirements/constraints.txt - # edx-i18n-tools +pyyaml==6.0.1 + # via edx-i18n-tools sqlparse==0.4.4 # via django typing-extensions==4.10.0 diff --git a/tox.ini b/tox.ini index 760922624..4d5b7cadd 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{42} +envlist = py{311}-django{42} skipsdist = true [pytest]