From d5d6dac85c0b27e0cfbe25e281241cfcc94b8ace Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Fri, 23 Feb 2024 04:26:39 -0500 Subject: [PATCH 1/2] feat: add python 3.11 support. --- .github/workflows/ci.yml | 10 +- CHANGELOG.rst | 5 + enterprise/__init__.py | 2 +- pylintrc | 5 +- pylintrc_backup | 381 ---------------------- pylintrc_tweaks | 3 +- requirements/ci.txt | 2 +- requirements/constraints.txt | 3 + requirements/dev.txt | 11 +- requirements/doc.txt | 14 +- requirements/edx-platform-constraints.txt | 39 +-- requirements/js_test.txt | 8 +- requirements/test-master.txt | 12 +- requirements/test.txt | 14 +- setup.py | 3 +- tox.ini | 47 ++- 16 files changed, 100 insertions(+), 459 deletions(-) delete mode 100644 pylintrc_backup diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c77c86867..efb4e61522 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,8 +16,10 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.8'] - toxenv: [quality, docs, django32-celery53, django42-celery53, django32-pii-annotations] + python-version: + - '3.8' + - '3.11' + toxenv: [quality, docs, django42-celery53, django42-pii-annotations] env: RUNJSHINT: true steps: @@ -26,7 +28,7 @@ jobs: run: echo "NODE_VER=`cat .nvmrc`" >> $GITHUB_ENV - uses: actions/setup-python@v2 with: - python-version: '3.8' + python-version: ${{ matrix.python-version }} architecture: x64 - uses: actions/setup-node@v2 with: @@ -37,7 +39,7 @@ jobs: TOXENV: ${{ matrix.toxenv }} run: tox - name: Run code coverage - if: matrix.python-version == '3.8' && matrix.toxenv == 'django42' + if: matrix.python-version == '3.8' && matrix.toxenv == 'django42-celery53' uses: codecov/codecov-action@v3 with: flags: unittests diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 34bb05babf..854beb342f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -15,6 +15,11 @@ Change Log Unreleased ---------- + +[4.16.0] +--------- +* feat: Adding python3.11 support. Dropped django32 support. + [4.15.12] --------- * feat: update enterprise customer serializer to include active integration codes diff --git a/enterprise/__init__.py b/enterprise/__init__.py index dd9ab72816..d98a432b25 100644 --- a/enterprise/__init__.py +++ b/enterprise/__init__.py @@ -2,4 +2,4 @@ Your project description goes here. """ -__version__ = "4.15.12" +__version__ = "4.16.0" diff --git a/pylintrc b/pylintrc index f3f9b1eb1b..e725489ca6 100644 --- a/pylintrc +++ b/pylintrc @@ -64,7 +64,7 @@ # SERIOUSLY. # # ------------------------------ -# Generated by edx-lint version: 5.3.4 +# Generated by edx-lint version: 5.3.6 # ------------------------------ [MASTER] ignore = migrations @@ -291,6 +291,7 @@ disable = logging-format-interpolation, no-member, missing-timeout, + use-yield-from, [REPORTS] output-format = text @@ -387,4 +388,4 @@ int-import-graph = [EXCEPTIONS] overgeneral-exceptions = builtins.Exception -# 852b6fff3b5db38083c340a20de6cc6024cc0c00 +# 126dc53d1644a269339811dea1e20f5bd1bf3264 diff --git a/pylintrc_backup b/pylintrc_backup deleted file mode 100644 index 47db11f663..0000000000 --- a/pylintrc_backup +++ /dev/null @@ -1,381 +0,0 @@ -# *************************** -# ** DO NOT EDIT THIS FILE ** -# *************************** -# -# This file was generated by edx-lint: https://github.com/openedx/edx-lint -# -# If you want to change this file, you have two choices, depending on whether -# you want to make a local change that applies only to this repo, or whether -# you want to make a central change that applies to all repos using edx-lint. -# -# Note: If your pylintrc file is simply out-of-date relative to the latest -# pylintrc in edx-lint, ensure you have the latest edx-lint installed -# and then follow the steps for a "LOCAL CHANGE". -# -# LOCAL CHANGE: -# -# 1. Edit the local pylintrc_tweaks file to add changes just to this -# repo's file. -# -# 2. Run: -# -# $ edx_lint write pylintrc -# -# 3. This will modify the local file. Submit a pull request to get it -# checked in so that others will benefit. -# -# -# CENTRAL CHANGE: -# -# 1. Edit the pylintrc file in the edx-lint repo at -# https://github.com/openedx/edx-lint/blob/master/edx_lint/files/pylintrc -# -# 2. install the updated version of edx-lint (in edx-lint): -# -# $ pip install . -# -# 3. Run (in edx-lint): -# -# $ edx_lint write pylintrc -# -# 4. Make a new version of edx_lint, submit and review a pull request with the -# pylintrc update, and after merging, update the edx-lint version and -# publish the new version. -# -# 5. In your local repo, install the newer version of edx-lint. -# -# 6. Run: -# -# $ edx_lint write pylintrc -# -# 7. This will modify the local file. Submit a pull request to get it -# checked in so that others will benefit. -# -# -# -# -# -# STAY AWAY FROM THIS FILE! -# -# -# -# -# -# SERIOUSLY. -# -# ------------------------------ -# Generated by edx-lint version: 5.3.4 -# ------------------------------ -[MASTER] -ignore = migrations -persistent = yes -load-plugins = edx_lint.pylint,pylint_django,pylint_celery -no-docstring-rgx = (__.*__)|Meta - -[MESSAGES CONTROL] -enable = - blacklisted-name, - line-too-long, - - abstract-class-instantiated, - abstract-method, - access-member-before-definition, - anomalous-backslash-in-string, - anomalous-unicode-escape-in-string, - arguments-differ, - assert-on-tuple, - assigning-non-slot, - assignment-from-no-return, - assignment-from-none, - attribute-defined-outside-init, - bad-except-order, - bad-format-character, - bad-format-string-key, - bad-format-string, - bad-open-mode, - bad-reversed-sequence, - bad-staticmethod-argument, - bad-str-strip-call, - bad-super-call, - binary-op-exception, - boolean-datetime, - catching-non-exception, - cell-var-from-loop, - confusing-with-statement, - continue-in-finally, - dangerous-default-value, - duplicate-argument-name, - duplicate-bases, - duplicate-except, - duplicate-key, - expression-not-assigned, - format-combined-specification, - format-needs-mapping, - function-redefined, - global-variable-undefined, - import-error, - import-self, - inconsistent-mro, - inherit-non-class, - init-is-generator, - invalid-all-object, - invalid-format-index, - invalid-length-returned, - invalid-sequence-index, - invalid-slice-index, - invalid-slots-object, - invalid-slots, - invalid-unary-operand-type, - logging-too-few-args, - logging-too-many-args, - logging-unsupported-format, - lost-exception, - method-hidden, - misplaced-bare-raise, - misplaced-future, - missing-format-argument-key, - missing-format-attribute, - missing-format-string-key, - no-member, - no-method-argument, - no-name-in-module, - no-self-argument, - no-value-for-parameter, - non-iterator-returned, - nonexistent-operator, - not-a-mapping, - not-an-iterable, - not-callable, - not-context-manager, - not-in-loop, - pointless-statement, - pointless-string-statement, - raising-bad-type, - raising-non-exception, - redefined-builtin, - redefined-outer-name, - redundant-keyword-arg, - repeated-keyword, - return-arg-in-generator, - return-in-init, - return-outside-function, - signature-differs, - super-init-not-called, - syntax-error, - too-few-format-args, - too-many-format-args, - too-many-function-args, - truncated-format-string, - undefined-all-variable, - undefined-loop-variable, - undefined-variable, - unexpected-keyword-arg, - unexpected-special-method-signature, - unpacking-non-sequence, - unreachable, - unsubscriptable-object, - unsupported-binary-operation, - unsupported-membership-test, - unused-format-string-argument, - unused-format-string-key, - used-before-assignment, - using-constant-test, - yield-outside-function, - - astroid-error, - fatal, - method-check-failed, - parse-error, - raw-checker-failed, - - empty-docstring, - invalid-characters-in-docstring, - missing-docstring, - wrong-spelling-in-comment, - wrong-spelling-in-docstring, - - unused-argument, - unused-import, - unused-variable, - - eval-used, - exec-used, - - bad-classmethod-argument, - bad-mcs-classmethod-argument, - bad-mcs-method-argument, - bare-except, - broad-except, - consider-iterating-dictionary, - consider-using-enumerate, - global-at-module-level, - global-variable-not-assigned, - logging-format-interpolation, - logging-not-lazy, - multiple-imports, - multiple-statements, - no-classmethod-decorator, - no-staticmethod-decorator, - protected-access, - redundant-unittest-assert, - reimported, - simplifiable-if-statement, - singleton-comparison, - superfluous-parens, - unidiomatic-typecheck, - unnecessary-lambda, - unnecessary-pass, - unnecessary-semicolon, - unneeded-not, - useless-else-on-loop, - - deprecated-method, - deprecated-module, - - too-many-boolean-expressions, - too-many-nested-blocks, - too-many-statements, - - wildcard-import, - wrong-import-order, - wrong-import-position, - - missing-final-newline, - mixed-line-endings, - trailing-newlines, - trailing-whitespace, - unexpected-line-ending-format, - - bad-inline-option, - bad-option-value, - deprecated-pragma, - unrecognized-inline-option, - useless-suppression, -disable = - bad-indentation, - broad-exception-raised, - consider-using-f-string, - duplicate-code, - file-ignored, - fixme, - global-statement, - invalid-name, - locally-disabled, - no-else-return, - suppressed-message, - too-few-public-methods, - too-many-ancestors, - too-many-arguments, - too-many-branches, - too-many-instance-attributes, - too-many-lines, - too-many-locals, - too-many-public-methods, - too-many-return-statements, - ungrouped-imports, - unspecified-encoding, - unused-wildcard-import, - use-maxsplit-arg, - - - logging-fstring-interpolation, - logging-format-interpolation, - no-member, - missing-timeout, - -[REPORTS] -output-format = text -reports = no -score = no - -[BASIC] -module-rgx = (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ -const-rgx = (([A-Z_][A-Z0-9_]*)|(__.*__)|log|urlpatterns)$ -class-rgx = [A-Z_][a-zA-Z0-9]+$ -function-rgx = ([a-z_][a-z0-9_]{2,40}|test_[a-z0-9_]+)$ -method-rgx = ([a-z_][a-z0-9_]{2,40}|setUp|set[Uu]pClass|tearDown|tear[Dd]ownClass|assert[A-Z]\w*|maxDiff|test_[a-z0-9_]+)$ -attr-rgx = [a-z_][a-z0-9_]{2,30}$ -argument-rgx = [a-z_][a-z0-9_]{2,30}$ -variable-rgx = [a-z_][a-z0-9_]{2,30}$ -class-attribute-rgx = ([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ -inlinevar-rgx = [A-Za-z_][A-Za-z0-9_]*$ -good-names = f,i,j,k,db,ex,Run,_,__ -bad-names = foo,bar,baz,toto,tutu,tata -no-docstring-rgx = __.*__$|test_.+|setUp$|setUpClass$|tearDown$|tearDownClass$|Meta$ -docstring-min-length = 5 - -[FORMAT] -max-line-length = 120 -ignore-long-lines = ^\s*(# )?((?)|(\.\. \w+: .*))$ -single-line-if-stmt = no -max-module-lines = 1000 -indent-string = ' ' - -[MISCELLANEOUS] -notes = FIXME,XXX,TODO - -[SIMILARITIES] -min-similarity-lines = 4 -ignore-comments = yes -ignore-docstrings = yes -ignore-imports = no - -[TYPECHECK] -ignore-mixin-members = yes -ignored-classes = SQLObject -unsafe-load-any-extension = yes -generated-members = - REQUEST, - acl_users, - aq_parent, - objects, - DoesNotExist, - can_read, - can_write, - get_url, - size, - content, - status_code, - create, - build, - fields, - tag, - org, - course, - category, - name, - revision, - _meta, - -[VARIABLES] -init-import = no -dummy-variables-rgx = _|dummy|unused|.*_unused -additional-builtins = - -[CLASSES] -defining-attr-methods = __init__,__new__,setUp -valid-classmethod-first-arg = cls -valid-metaclass-classmethod-first-arg = mcs - -[DESIGN] -max-args = 5 -ignored-argument-names = _.* -max-locals = 15 -max-returns = 6 -max-branches = 12 -max-statements = 50 -max-parents = 7 -max-attributes = 7 -min-public-methods = 2 -max-public-methods = 20 - -[IMPORTS] -deprecated-modules = regsub,TERMIOS,Bastion,rexec -import-graph = -ext-import-graph = -int-import-graph = - -[EXCEPTIONS] -overgeneral-exceptions = builtins.Exception - -# 852b6fff3b5db38083c340a20de6cc6024cc0c00 diff --git a/pylintrc_tweaks b/pylintrc_tweaks index 0ae79afb45..39e04e4ced 100644 --- a/pylintrc_tweaks +++ b/pylintrc_tweaks @@ -8,4 +8,5 @@ no-docstring-rgx=(__.*__)|Meta disable+ = logging-format-interpolation, no-member, - missing-timeout, \ No newline at end of file + missing-timeout, + use-yield-from, diff --git a/requirements/ci.txt b/requirements/ci.txt index 91f601b1d4..c7cfe38210 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -14,7 +14,7 @@ packaging==24.0 # via tox platformdirs==4.2.0 # via virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via tox py==1.11.0 # via tox diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 254db29c5b..52404154f1 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -35,3 +35,6 @@ tox<4 # upgrading django-simple-history django-simple-history<=3.1.1 + +# 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.txt b/requirements/dev.txt index 320e4d4eb9..1c187a0e5a 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -71,8 +71,9 @@ babel==2.14.0 # -r requirements/doc.txt # pydata-sphinx-theme # sphinx -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/doc.txt # -r requirements/test-master.txt # -r requirements/test.txt @@ -364,7 +365,7 @@ edx-django-utils==5.12.0 # edx-drf-extensions # edx-rest-api-client # edx-toggles -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via # -r requirements/doc.txt # -r requirements/test-master.txt @@ -374,13 +375,13 @@ edx-i18n-tools==1.5.0 # via -r requirements/dev.in edx-lint==5.3.6 # via -r requirements/dev.in -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/doc.txt # -r requirements/test-master.txt # -r requirements/test.txt # edx-drf-extensions -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via # -r requirements/doc.txt # -r requirements/test-master.txt @@ -593,7 +594,7 @@ platformdirs==3.11.0 # pylint # snowflake-connector-python # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via # -r requirements/doc.txt # -r requirements/test.txt diff --git a/requirements/doc.txt b/requirements/doc.txt index 9f4ecbc49c..f371c0b59b 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -46,8 +46,9 @@ babel==2.14.0 # via # pydata-sphinx-theme # sphinx -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test-master.txt # celery # django @@ -225,15 +226,15 @@ edx-django-utils==5.12.0 # edx-drf-extensions # edx-rest-api-client # edx-toggles -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via # -r requirements/test-master.txt # edx-rbac -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/test-master.txt # edx-drf-extensions -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via -r requirements/test-master.txt edx-rest-api-client==5.7.0 # via -r requirements/test-master.txt @@ -343,7 +344,7 @@ platformdirs==3.11.0 # via # -r requirements/test-master.txt # snowflake-connector-python -pluggy==1.4.0 +pluggy==1.5.0 # via pytest prompt-toolkit==3.0.43 # via @@ -565,3 +566,6 @@ yarl==1.9.4 # aiohttp zipp==3.18.1 # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/edx-platform-constraints.txt b/requirements/edx-platform-constraints.txt index f5c41be742..ef988bb0c8 100644 --- a/requirements/edx-platform-constraints.txt +++ b/requirements/edx-platform-constraints.txt @@ -58,6 +58,7 @@ backports-zoneinfo[tzdata]==0.2.1 # via # celery # django + # edx-milestones # icalendar # kombu beautifulsoup4==4.12.3 @@ -118,7 +119,7 @@ charset-normalizer==2.0.12 # -r requirements/edx/paver.txt # requests # snowflake-connector-python -chem==1.2.0 +chem==1.3.0 # via -r requirements/edx/kernel.in # via # -c requirements/edx/../constraints.txt @@ -191,7 +192,6 @@ django==4.2.10 # django-oauth-toolkit # django-sekizai # django-ses - # django-splash # django-statici18n # django-storages # django-user-tasks @@ -338,8 +338,6 @@ django-ses==3.5.2 # edx-organizations # edx-proctoring # ora2 -django-splash==1.3.0 - # via -r requirements/edx/kernel.in django-statici18n==2.4.0 # via # -r requirements/edx/kernel.in @@ -416,7 +414,7 @@ edx-braze-client==0.2.2 # via # -r requirements/edx/bundled.in # edx-enterprise -edx-bulk-grades==1.0.2 +edx-bulk-grades==1.1.0 # via # -r requirements/edx/kernel.in # staff-graded-xblock @@ -438,7 +436,7 @@ edx-django-release-util==1.4.0 # -r requirements/edx/kernel.in # edxval # openedx-blockstore -edx-django-sites-extensions==4.0.2 +edx-django-sites-extensions==4.2.0 # via -r requirements/edx/kernel.in edx-django-utils==5.12.0 # via @@ -457,7 +455,7 @@ edx-django-utils==5.12.0 # openedx-events # ora2 # super-csv -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via # -r requirements/edx/kernel.in # edx-completion @@ -469,23 +467,23 @@ edx-drf-extensions==10.2.0 # edx-when # edxval # openedx-learning -edx-enterprise==4.15.3 +edx-enterprise==4.15.9 # via # -c requirements/edx/../constraints.txt # -r requirements/edx/kernel.in -edx-event-bus-kafka==5.6.0 +edx-event-bus-kafka==5.7.0 # via -r requirements/edx/kernel.in -edx-event-bus-redis==0.3.3 +edx-event-bus-redis==0.5.0 # via -r requirements/edx/kernel.in edx-i18n-tools==1.5.0 # via # -r requirements/edx/bundled.in # ora2 -edx-milestones==0.5.0 +edx-milestones==0.6.0 # via -r requirements/edx/kernel.in edx-name-affirmation==2.3.7 # via -r requirements/edx/kernel.in -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/edx/kernel.in # -r requirements/edx/paver.txt @@ -503,11 +501,11 @@ edx-opaque-keys[django]==2.5.1 # ora2 edx-organizations==6.13.0 # via -r requirements/edx/kernel.in -edx-proctoring==4.16.1 +edx-proctoring==4.17.0 # via # -r requirements/edx/kernel.in # edx-proctoring-proctortrack -edx-rbac==1.8.0 +edx-rbac==1.9.0 edx-rest-api-client==5.7.0 # via # -r requirements/edx/kernel.in @@ -540,7 +538,7 @@ edx-when==2.5.0 # via # -r requirements/edx/kernel.in # edx-proctoring -edxval==2.4.4 +edxval==2.5.0 # via -r requirements/edx/kernel.in elasticsearch==7.13.4 # via @@ -582,7 +580,7 @@ glob2==0.7 # via -r requirements/edx/kernel.in gunicorn==21.2.0 # via -r requirements/edx/kernel.in -help-tokens==2.3.0 +help-tokens==2.4.0 # via -r requirements/edx/kernel.in html5lib==1.1 # via @@ -664,7 +662,7 @@ libsass==0.10.0 # -r requirements/edx/paver.txt loremipsum==1.0.5 # via ora2 -lti-consumer-xblock==9.8.3 +lti-consumer-xblock==9.10.0 # via -r requirements/edx/kernel.in lxml==4.9.4 # via @@ -768,7 +766,7 @@ openedx-django-require==2.1.0 # via -r requirements/edx/kernel.in openedx-django-wiki==2.1.0 # via -r requirements/edx/kernel.in -openedx-events==9.5.2 +openedx-events==9.9.1 # via # -r requirements/edx/kernel.in # edx-event-bus-kafka @@ -1050,7 +1048,6 @@ six==1.16.0 # -r requirements/edx/paver.txt # analytics-python # bleach - # chem # codejail-includes # crowdsourcehinter-xblock # edx-ace @@ -1201,7 +1198,7 @@ webob==1.8.7 # xblock wrapt==1.16.0 # via -r requirements/edx/paver.txt -xblock[django]==3.1.0 +xblock[django]==4.0.0 # via # -r requirements/edx/kernel.in # acid-xblock @@ -1227,7 +1224,7 @@ xblock-utils==4.0.0 # via edx-sga xmlsec==1.3.13 # via python3-saml -xss-utils==0.5.0 +xss-utils==0.6.0 # via -r requirements/edx/kernel.in yarl==1.9.4 # via aiohttp diff --git a/requirements/js_test.txt b/requirements/js_test.txt index 21d460dcd8..50da99f59f 100644 --- a/requirements/js_test.txt +++ b/requirements/js_test.txt @@ -10,15 +10,15 @@ attrs==23.2.0 # trio autocommand==2.2.2 # via jaraco-text -backports-tarfile==1.1.0 +backports-tarfile==1.1.1 # via jaraco-context certifi==2024.2.2 # via selenium -cheroot==10.0.0 +cheroot==10.0.1 # via cherrypy cherrypy==18.9.0 # via jasmine -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via # trio # trio-websocket @@ -44,7 +44,7 @@ jaraco-collections==5.0.1 # cherrypy jaraco-context==5.3.0 # via jaraco-text -jaraco-functools==4.0.0 +jaraco-functools==4.0.1 # via # -r requirements/js_test.in # cheroot diff --git a/requirements/test-master.txt b/requirements/test-master.txt index 481948a7dc..ace73cd8d6 100644 --- a/requirements/test-master.txt +++ b/requirements/test-master.txt @@ -35,8 +35,9 @@ attrs==23.2.0 # via # -c requirements/edx-platform-constraints.txt # aiohttp -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -c requirements/edx-platform-constraints.txt # celery # django @@ -229,17 +230,17 @@ edx-django-utils==5.12.0 # edx-drf-extensions # edx-rest-api-client # edx-toggles -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via # -c requirements/edx-platform-constraints.txt # -r requirements/base.in # edx-rbac -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -c requirements/edx-platform-constraints.txt # -r requirements/base.in # edx-drf-extensions -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via # -c requirements/edx-platform-constraints.txt # -r requirements/base.in @@ -523,3 +524,6 @@ yarl==1.9.4 # via # -c requirements/edx-platform-constraints.txt # aiohttp + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/test.txt b/requirements/test.txt index a22c76fd71..5f72d0c47e 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -37,8 +37,9 @@ attrs==23.2.0 # -r requirements/test-master.txt # aiohttp # pytest -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test-master.txt # -r requirements/test.in # celery @@ -208,15 +209,15 @@ edx-django-utils==5.12.0 # edx-drf-extensions # edx-rest-api-client # edx-toggles -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via # -r requirements/test-master.txt # edx-rbac -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/test-master.txt # edx-drf-extensions -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via -r requirements/test-master.txt edx-rest-api-client==5.7.0 # via -r requirements/test-master.txt @@ -323,7 +324,7 @@ platformdirs==3.11.0 # via # -r requirements/test-master.txt # snowflake-connector-python -pluggy==1.4.0 +pluggy==1.5.0 # via # diff-cover # pytest @@ -521,3 +522,6 @@ yarl==1.9.4 # via # -r requirements/test-master.txt # aiohttp + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/setup.py b/setup.py index e52d265338..de2537fb56 100755 --- a/setup.py +++ b/setup.py @@ -112,11 +112,12 @@ def get_requirements(requirements_file): classifiers=[ "Development Status :: 3 - Alpha", "Framework :: Django", - "Framework :: Django :: 3.2", + "Framework :: Django :: 4.2", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.11", ], ) diff --git a/tox.ini b/tox.ini index bf280c69f4..6a3f5f5634 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{32,42}-celery{53}, django{32}-pii-annotations +envlist = py{38,311}-django{42}-celery{53}, django{42}-pii-annotations [doc8] max-line-length = 120 @@ -11,7 +11,7 @@ norecursedirs = .* docs requirements node_modules [isort] line_length = 120 -known_edx = +known_edx = known_django = django known_djangoapp = model_utils known_first_party = consent,enterprise,enterprise_learner_portal,integrated_channels @@ -23,24 +23,23 @@ sections = FUTURE,STDLIB,THIRDPARTY,DJANGO,DJANGOAPP,EDX,FIRSTPARTY,LOCALFOLDER universal = 1 [testenv] -setenv = +setenv = TOXENV={envname} -deps = - django32: Django>=3.2,<4.0 +deps = django42: Django>=4.2,<4.3 celery53: -r{toxinidir}/requirements/celery53.txt -r{toxinidir}/requirements/test.txt -commands = +commands = py.test -Wd {posargs} [testenv:docs] -setenv = +setenv = DJANGO_SETTINGS_MODULE = enterprise.settings.test PYTHONPATH = {toxinidir} -allowlist_externals = +allowlist_externals = make rm -deps = +deps = -r{toxinidir}/requirements/doc.txt commands = doc8 --ignore-path docs/_build --ignore-path docs/decisions README.rst docs @@ -51,27 +50,27 @@ commands = python setup.py check --restructuredtext [testenv:isort] -deps = +deps = -r{toxinidir}/requirements/dev.txt -commands = +commands = isort --skip migrations tests test_utils enterprise enterprise_learner_portal consent integrated_channels manage.py setup.py [testenv:isort-check] -deps = +deps = -r{toxinidir}/requirements/dev.txt -commands = +commands = isort --skip migrations --check-only --diff tests test_utils enterprise enterprise_learner_portal consent integrated_channels manage.py setup.py [testenv:quality] -setenv = +setenv = DJANGO_SETTINGS_MODULE = enterprise.settings.test -allowlist_externals = +allowlist_externals = make rm touch -deps = +deps = -r{toxinidir}/requirements/dev.txt -commands = +commands = touch tests/__init__.py pylint -j 0 enterprise enterprise_learner_portal consent integrated_channels tests test_utils requirements/check_pins.py --django-settings-module=enterprise.settings.test rm tests/__init__.py @@ -80,18 +79,18 @@ commands = [testenv:jasmine] passenv = JASMINE_BROWSER DISPLAY -deps = - django32: Django>=3.2,<4.0 +deps = + django42: Django>=4.2,<4.3 -r{toxinidir}/requirements/js_test.txt -commands = +commands = jasmine [testenv:pii-annotations] -setenv = +setenv = DJANGO_SETTINGS_MODULE = enterprise.settings.test -deps = - django32: Django>=3.2,<4.0 +deps = + django42: Django>=4.2,<4.3 -r{toxinidir}/requirements/test.txt -commands = +commands = code_annotations django_find_annotations --config_file .pii_annotations.yml --lint --report --coverage From 03bda32564882145393d82348a156a90f4b1024f Mon Sep 17 00:00:00 2001 From: Brian Beggs Date: Wed, 17 Apr 2024 11:39:26 -0400 Subject: [PATCH 2/2] build: Update codecov and start using repo tokens --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index efb4e61522..21c8eb9b79 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,10 +40,11 @@ jobs: run: tox - name: Run code coverage if: matrix.python-version == '3.8' && matrix.toxenv == 'django42-celery53' - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: flags: unittests fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} - name: Run jshint if: matrix.toxenv=='django42-celery53' # Only run this once as part of tests run: |