From ad91dceae5e9e62f236aeb9389caccb72703a4dd Mon Sep 17 00:00:00 2001 From: Mohammad Ahtasham ul Hassan <60315450+aht007@users.noreply.github.com> Date: Fri, 28 Jan 2022 16:23:36 +0500 Subject: [PATCH 01/55] fix: fix make upgrade issue and ran make upgrade (#155) --- requirements/base.txt | 2 +- requirements/ci.txt | 4 ++-- requirements/constraints.txt | 3 --- requirements/dev.txt | 18 ++++++++++++++---- requirements/docs.txt | 11 ++++++----- requirements/test.txt | 16 ++++++++++++---- requirements/tox.txt | 2 +- 7 files changed, 36 insertions(+), 20 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 7d8bdeb4..159d8255 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,7 +4,7 @@ # # make upgrade # -asgiref==3.4.1 +asgiref==3.5.0 # via django django==3.2.11 # via diff --git a/requirements/ci.txt b/requirements/ci.txt index 3e191047..c363b5be 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -8,7 +8,7 @@ certifi==2021.10.8 # via requests charset-normalizer==2.0.10 # via requests -coverage==6.2 +coverage==6.3 # via coveralls coveralls==3.3.1 # via -r requirements/ci.in @@ -41,7 +41,7 @@ py==1.11.0 # via # -r requirements/tox.txt # tox -pyparsing==3.0.6 +pyparsing==3.0.7 # via # -r requirements/tox.txt # packaging diff --git a/requirements/constraints.txt b/requirements/constraints.txt index eedc9243..99724184 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -10,6 +10,3 @@ # This file contains all common constraints for edx-repos -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - -# zipp 2.0.0 requires Python >= 3.6 -zipp<2.0.0 \ No newline at end of file diff --git a/requirements/dev.txt b/requirements/dev.txt index 532a311e..42dd024d 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -9,7 +9,7 @@ alabaster==0.7.12 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -asgiref==3.4.1 +asgiref==3.5.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -52,7 +52,7 @@ code-annotations==1.2.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==6.2 +coverage[toml]==6.3 # via # -r requirements/test.txt # pytest-cov @@ -100,6 +100,11 @@ imagesize==1.3.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx +importlib-metadata==4.10.1 + # via + # -r requirements/docs.txt + # -r requirements/test.txt + # sphinx iniconfig==1.1.1 # via # -r requirements/test.txt @@ -187,7 +192,7 @@ pylint-plugin-utils==0.7 # -r requirements/test.txt # pylint-celery # pylint-django -pyparsing==3.0.6 +pyparsing==3.0.7 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -239,7 +244,7 @@ snowballstemmer==2.2.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sphinx==4.3.2 +sphinx==4.4.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -319,6 +324,11 @@ wrapt==1.13.3 # via # -r requirements/test.txt # astroid +zipp==3.7.0 + # via + # -r requirements/docs.txt + # -r requirements/test.txt + # importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/docs.txt b/requirements/docs.txt index e36ed0a4..92f73951 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -20,6 +20,8 @@ idna==3.3 # via requests imagesize==1.3.0 # via sphinx +importlib-metadata==4.10.1 + # via sphinx jinja2==3.0.3 # via sphinx markupsafe==2.0.1 @@ -30,7 +32,7 @@ pockets==0.9.1 # via sphinxcontrib-napoleon pygments==2.11.2 # via sphinx -pyparsing==3.0.6 +pyparsing==3.0.7 # via packaging pytz==2021.3 # via babel @@ -42,7 +44,7 @@ six==1.16.0 # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via sphinx -sphinx==4.3.2 +sphinx==4.4.0 # via # -r requirements/docs.in # sphinx-rtd-theme @@ -64,6 +66,5 @@ sphinxcontrib-serializinghtml==1.1.5 # via sphinx urllib3==1.26.8 # via requests - -# The following packages are considered to be unsafe in a requirements file: -# setuptools +zipp==3.7.0 + # via importlib-metadata diff --git a/requirements/test.txt b/requirements/test.txt index 94f53c3d..3cb982f6 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -8,7 +8,7 @@ alabaster==0.7.12 # via # -r requirements/docs.txt # sphinx -asgiref==3.4.1 +asgiref==3.5.0 # via # -r requirements/base.txt # django @@ -39,7 +39,7 @@ click-log==0.3.2 # via edx-lint code-annotations==1.2.0 # via edx-lint -coverage[toml]==6.2 +coverage[toml]==6.3 # via pytest-cov ddt==1.4.4 # via -r requirements/test.in @@ -73,6 +73,10 @@ imagesize==1.3.0 # via # -r requirements/docs.txt # sphinx +importlib-metadata==4.10.1 + # via + # -r requirements/docs.txt + # sphinx iniconfig==1.1.1 # via pytest isort==5.10.1 @@ -133,7 +137,7 @@ pylint-plugin-utils==0.7 # via # pylint-celery # pylint-django -pyparsing==3.0.6 +pyparsing==3.0.7 # via # -r requirements/docs.txt # packaging @@ -175,7 +179,7 @@ snowballstemmer==2.2.0 # via # -r requirements/docs.txt # sphinx -sphinx==4.3.2 +sphinx==4.4.0 # via # -r requirements/docs.txt # sphinx-rtd-theme @@ -233,6 +237,10 @@ urllib3==1.26.8 # requests wrapt==1.13.3 # via astroid +zipp==3.7.0 + # via + # -r requirements/docs.txt + # importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/tox.txt b/requirements/tox.txt index 3e47a84f..678cee1d 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -18,7 +18,7 @@ pluggy==1.0.0 # via tox py==1.11.0 # via tox -pyparsing==3.0.6 +pyparsing==3.0.7 # via packaging six==1.16.0 # via From 74a9bb1414797e8827065aedf4575be49ac1ee9c Mon Sep 17 00:00:00 2001 From: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com> Date: Mon, 7 Feb 2022 06:55:15 -0500 Subject: [PATCH 02/55] chore: Post Django32 Cleanup (#156) Co-authored-by: Mohammad Ahtasham ul Hassan --- .github/workflows/ci.yml | 6 +++--- requirements/base.txt | 2 +- requirements/ci.txt | 4 ++-- requirements/dev.txt | 9 ++++----- requirements/docs.txt | 2 +- requirements/pip.txt | 4 ++-- requirements/test.txt | 10 ++++------ setup.py | 4 +--- submissions/__init__.py | 2 +- submissions/models.py | 9 ++------- tox.ini | 25 +++++++++++-------------- 11 files changed, 32 insertions(+), 45 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 442226f7..2fbd9ac4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: matrix: os: [ubuntu-20.04] python-version: ['3.8'] - toxenv: [django22-drf312, django30-drf312, django31-drf312, django32-drf312, django32-drflatest, quality, docs] + toxenv: [quality, docs, django32-drf312, django32-drflatest, django40-drf312, django40-drflatest] steps: - uses: actions/checkout@v2 @@ -36,8 +36,8 @@ jobs: run: tox - name: Run Coverage - if: matrix.python-version == '3.8' && matrix.toxenv=='django22-drf312' + if: matrix.python-version == '3.8' && matrix.toxenv=='django32-drf312' uses: codecov/codecov-action@v1 with: flags: unittests - fail_ci_if_error: true \ No newline at end of file + fail_ci_if_error: true diff --git a/requirements/base.txt b/requirements/base.txt index 159d8255..0c94cb4b 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,7 +6,7 @@ # asgiref==3.5.0 # via django -django==3.2.11 +django==3.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in diff --git a/requirements/ci.txt b/requirements/ci.txt index c363b5be..4249bd14 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -6,9 +6,9 @@ # certifi==2021.10.8 # via requests -charset-normalizer==2.0.10 +charset-normalizer==2.0.11 # via requests -coverage==6.3 +coverage==6.3.1 # via coveralls coveralls==3.3.1 # via -r requirements/ci.in diff --git a/requirements/dev.txt b/requirements/dev.txt index 42dd024d..bfe9e715 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -33,7 +33,7 @@ certifi==2021.10.8 # -r requirements/docs.txt # -r requirements/test.txt # requests -charset-normalizer==2.0.10 +charset-normalizer==2.0.11 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -52,13 +52,13 @@ code-annotations==1.2.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==6.3 +coverage[toml]==6.3.1 # via # -r requirements/test.txt # pytest-cov ddt==1.4.4 # via -r requirements/test.txt -django==3.2.11 +django==3.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -84,7 +84,7 @@ edx-lint==5.2.1 # via -r requirements/test.txt factory-boy==3.2.1 # via -r requirements/test.txt -faker==11.3.0 +faker==12.0.0 # via # -r requirements/test.txt # factory-boy @@ -299,7 +299,6 @@ stevedore==3.5.0 text-unidecode==1.3 # via # -r requirements/test.txt - # faker # python-slugify toml==0.10.2 # via diff --git a/requirements/docs.txt b/requirements/docs.txt index 92f73951..ca3bb19d 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -10,7 +10,7 @@ babel==2.9.1 # via sphinx certifi==2021.10.8 # via requests -charset-normalizer==2.0.10 +charset-normalizer==2.0.11 # via requests docutils==0.17.1 # via diff --git a/requirements/pip.txt b/requirements/pip.txt index de37a34a..fd9edb79 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -8,7 +8,7 @@ wheel==0.37.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==21.3.1 +pip==22.0.2 # via -r requirements/pip.in -setuptools==60.5.0 +setuptools==60.7.1 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 3cb982f6..08d40499 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -26,7 +26,7 @@ certifi==2021.10.8 # via # -r requirements/docs.txt # requests -charset-normalizer==2.0.10 +charset-normalizer==2.0.11 # via # -r requirements/docs.txt # requests @@ -39,7 +39,7 @@ click-log==0.3.2 # via edx-lint code-annotations==1.2.0 # via edx-lint -coverage[toml]==6.3 +coverage[toml]==6.3.1 # via pytest-cov ddt==1.4.4 # via -r requirements/test.in @@ -61,7 +61,7 @@ edx-lint==5.2.1 # via -r requirements/test.in factory-boy==3.2.1 # via -r requirements/test.in -faker==11.3.0 +faker==12.0.0 # via factory-boy freezegun==1.1.0 # via -r requirements/test.in @@ -218,9 +218,7 @@ sqlparse==0.4.2 stevedore==3.5.0 # via code-annotations text-unidecode==1.3 - # via - # faker - # python-slugify + # via python-slugify toml==0.10.2 # via # pylint diff --git a/setup.py b/setup.py index 9cb14838..ff03192b 100644 --- a/setup.py +++ b/setup.py @@ -57,10 +57,8 @@ def load_requirements(*requirements_paths): classifiers=[ 'Development Status :: 3 - Alpha', 'Framework :: Django', - 'Framework :: Django :: 2.2', - 'Framework :: Django :: 3.0', - 'Framework :: Django :: 3.1', 'Framework :: Django :: 3.2', + 'Framework :: Django :: 4.0', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU Affero General Public License v3', 'Operating System :: OS Independent', diff --git a/submissions/__init__.py b/submissions/__init__.py index 414149ac..9d112fca 100644 --- a/submissions/__init__.py +++ b/submissions/__init__.py @@ -1,2 +1,2 @@ """ API for creating submissions and scores. """ -__version__ = '3.4.4' +__version__ = '3.5.0' diff --git a/submissions/models.py b/submissions/models.py index b3bb58cd..5d7309bd 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -27,15 +27,10 @@ User = auth.get_user_model() # Signal to inform listeners that a score has been changed -score_set = Signal(providing_args=[ - 'points_possible', 'points_earned', 'anonymous_user_id', - 'course_id', 'item_id', 'created_at' -]) +score_set = Signal() # Signal to inform listeners that a score has been reset -score_reset = Signal( - providing_args=['anonymous_user_id', 'course_id', 'item_id', 'created_at'] -) +score_reset = Signal() class AnonymizedUserIDField(models.CharField): diff --git a/tox.ini b/tox.ini index 54d07cf8..d24adedb 100644 --- a/tox.ini +++ b/tox.ini @@ -1,34 +1,31 @@ [tox] -envlist = py38-django{22,30,31,32}-drf{12, latest}, quality, docs +envlist = py38-django{32,40}-drf{312, latest}, quality, docs [testenv] -setenv= +setenv = DJANGO_SETTINGS_MODULE = settings -deps = +deps = -r{toxinidir}/requirements/test.txt - django22: Django>=2.2,<2.3 - django30: Django>=3.0,<3.1 - django31: Django>=3.1,<3.2 django32: Django>=3.2,<4.0 - drf311: djangorestframework<3.12.0 + django40: Django>=4.0,<4.1 drf312: djangorestframework<3.13.0 drflatest: djangorestframework -commands = +commands = python -Wd -m pytest {posargs} [testenv:quality] -setenv= +setenv = DJANGO_SETTINGS_MODULE=settings -whitelist_externals = +whitelist_externals = make -deps = +deps = -r{toxinidir}/requirements/dev.txt -commands = +commands = make test_quality [testenv:docs] -deps = +deps = -r{toxinidir}/requirements/dev.txt -commands = +commands = python setup.py build_sphinx From 34f01f76dbe49f4d4573a23f21c057f07a1166f9 Mon Sep 17 00:00:00 2001 From: Nathan Sprenkle Date: Tue, 22 Feb 2022 15:07:55 -0500 Subject: [PATCH 03/55] fix: bug in get_team_ids_by_team_submission_uuid (#157) * fix: bug in get_team_ids_by_team_submission_uuid * refactor: return UUIDs as strings * chore: bump version --- submissions/__init__.py | 2 +- submissions/team_api.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/submissions/__init__.py b/submissions/__init__.py index 9d112fca..be129e3f 100644 --- a/submissions/__init__.py +++ b/submissions/__init__.py @@ -1,2 +1,2 @@ """ API for creating submissions and scores. """ -__version__ = '3.5.0' +__version__ = '3.5.1' diff --git a/submissions/team_api.py b/submissions/team_api.py index cdd49a8a..9a4efa7c 100644 --- a/submissions/team_api.py +++ b/submissions/team_api.py @@ -350,12 +350,12 @@ def get_team_ids_by_team_submission_uuid(team_submission_uuids): team submission uuids to team id """ values = TeamSubmission.objects.filter( - team_submission_uuid__in=team_submission_uuids + uuid__in=team_submission_uuids ).values( "uuid", "team_id" ) return { - item['uuid']: item['team_id'] + str(item['uuid']): item['team_id'] for item in values } From 964259786ebf448e549f7ebad0f96dbb85c0d6e4 Mon Sep 17 00:00:00 2001 From: Sarina Canelake Date: Wed, 23 Feb 2022 14:28:59 -0500 Subject: [PATCH 04/55] build: add DEPR workflow automation --- .../add-depr-ticket-to-depr-board.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/add-depr-ticket-to-depr-board.yml diff --git a/.github/workflows/add-depr-ticket-to-depr-board.yml b/.github/workflows/add-depr-ticket-to-depr-board.yml new file mode 100644 index 00000000..73ca4c5c --- /dev/null +++ b/.github/workflows/add-depr-ticket-to-depr-board.yml @@ -0,0 +1,19 @@ +# Run the workflow that adds new tickets that are either: +# - labelled "DEPR" +# - title starts with "[DEPR]" +# - body starts with "Proposal Date" (this is the first template field) +# to the org-wide DEPR project board + +name: Add newly created DEPR issues to the DEPR project board + +on: + issues: + types: [opened] + +jobs: + routeissue: + uses: openedx/.github/.github/workflows/add-depr-ticket-to-depr-board.yml@master + secrets: + GITHUB_APP_ID: ${{ secrets.GRAPHQL_AUTH_APP_ID }} + GITHUB_APP_PRIVATE_KEY: ${{ secrets.GRAPHQL_AUTH_APP_PEM }} + SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }} \ No newline at end of file From 85107165d814596bea79dba774f24615e25ca278 Mon Sep 17 00:00:00 2001 From: Jansen Kantor Date: Fri, 18 Mar 2022 09:54:23 -0400 Subject: [PATCH 05/55] test: added test for get_team_ids_by_team_submission_uuid (#159) * test: added test for get_team_ids_by_team_submission_uuid --- submissions/tests/test_team_api.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/submissions/tests/test_team_api.py b/submissions/tests/test_team_api.py index 8d1355ff..bc0c39d6 100644 --- a/submissions/tests/test_team_api.py +++ b/submissions/tests/test_team_api.py @@ -653,3 +653,22 @@ def test_get_team_submission_student_ids__no_team_submission(self): team_api.get_team_submission_student_ids('aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee') with self.assertRaises(TeamSubmissionNotFoundError): team_api.get_team_submission_student_ids(None) + + def test_get_team_ids_by_team_submission_uuid(self): + team_submissions = [ + TeamSubmissionFactory.create() for _ in range(5) + ] + assert team_api.get_team_ids_by_team_submission_uuid([]) == {} + + actual = team_api.get_team_ids_by_team_submission_uuid([ + team_submissions[0].uuid, + team_submissions[1].uuid, + team_submissions[4].uuid, + ]) + expected = { + str(team_submissions[0].uuid): team_submissions[0].team_id, + str(team_submissions[1].uuid): team_submissions[1].team_id, + str(team_submissions[4].uuid): team_submissions[4].team_id, + } + + assert expected == actual From 094f55854b5c6dadbcbbd2e956f7d6de462643e6 Mon Sep 17 00:00:00 2001 From: michaelroytman Date: Tue, 29 Mar 2022 11:08:57 -0400 Subject: [PATCH 06/55] fix: manually update pip-tools version to 6.5.1 to fix pip/pip-tools bug The following comment is borrowed from this pull request, with changes: https://github.com/openedx/opaque-keys/pull/218 This failure started happening in the automated requirements upgrade GitHub action: https://github.com/openedx/edx-submissions/runs/5704384647?check_suite_focus=true The bug was being caused by an interaction between pip and pip-tools, described here: https://github.com/jazzband/pip-tools/issues/1558 The bug is fixed in pip-tools==6.5.0 - from this pull request: https://github.com/jazzband/pip-tools/pull/1567 This pull requests bumps the version of pip-tools manually to get the automated upgrades working again. --- requirements/pip-tools.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index f4b49211..a0d47aa9 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -8,7 +8,7 @@ click==8.0.3 # via pip-tools pep517==0.12.0 # via pip-tools -pip-tools==6.4.0 +pip-tools==6.5.1 # via -r requirements/pip-tools.in tomli==2.0.0 # via pep517 From 5015be366ab4ac0181e7d0d517baa47b66c9c876 Mon Sep 17 00:00:00 2001 From: Mohammad Ahtasham ul Hassan <60315450+aht007@users.noreply.github.com> Date: Mon, 4 Apr 2022 13:58:35 +0500 Subject: [PATCH 07/55] build: standardize version number placement (#144) --- setup.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index ff03192b..f76c0aee 100644 --- a/setup.py +++ b/setup.py @@ -1,12 +1,11 @@ #!/usr/bin/env python import os +import re import sys from setuptools import find_packages, setup -from submissions import __version__ as VERSION - def is_requirement(line): """ @@ -41,6 +40,23 @@ def load_requirements(*requirements_paths): return list(requirements) +def get_version(*file_paths): + """ + Extract the version string from the file at the given relative path fragments. + """ + filename = os.path.join(os.path.dirname(__file__), *file_paths) + with open(filename, encoding='utf-8') as opened_file: + version_file = opened_file.read() + version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", + version_file, re.M) + if version_match: + return version_match.group(1) + raise RuntimeError('Unable to find version string.') + + +VERSION = get_version("submissions", "__init__.py") + + if sys.argv[-1] == 'tag': print("Tagging the version on github:") os.system("git tag -a %s -m 'version %s'" % (VERSION, VERSION)) From f234859e437d23fc2aa632ecdc5dbe320d8c9805 Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Tue, 12 Apr 2022 12:26:03 -0400 Subject: [PATCH 08/55] chore: Updating Python Requirements --- requirements/base.txt | 4 +-- requirements/ci.txt | 16 +++++----- requirements/dev.txt | 65 +++++++++++++++++++------------------- requirements/docs.txt | 18 +++++------ requirements/pip-tools.txt | 6 ++-- requirements/pip.txt | 4 +-- requirements/test.txt | 59 +++++++++++++++++----------------- requirements/tox.txt | 10 +++--- 8 files changed, 92 insertions(+), 90 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 0c94cb4b..12424ccc 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,7 +6,7 @@ # asgiref==3.5.0 # via django -django==3.2.12 +django==3.2.13 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in @@ -19,7 +19,7 @@ djangorestframework==3.12.4 # via -r requirements/base.in jsonfield==3.1.0 # via -r requirements/base.in -pytz==2021.3 +pytz==2022.1 # via # -r requirements/base.in # django diff --git a/requirements/ci.txt b/requirements/ci.txt index 4249bd14..7ed042d8 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -6,9 +6,9 @@ # certifi==2021.10.8 # via requests -charset-normalizer==2.0.11 +charset-normalizer==2.0.12 # via requests -coverage==6.3.1 +coverage==6.3.2 # via coveralls coveralls==3.3.1 # via -r requirements/ci.in @@ -18,7 +18,7 @@ distlib==0.3.4 # virtualenv docopt==0.6.2 # via coveralls -filelock==3.4.2 +filelock==3.6.0 # via # -r requirements/tox.txt # tox @@ -29,7 +29,7 @@ packaging==21.3 # via # -r requirements/tox.txt # tox -platformdirs==2.4.1 +platformdirs==2.5.1 # via # -r requirements/tox.txt # virtualenv @@ -41,7 +41,7 @@ py==1.11.0 # via # -r requirements/tox.txt # tox -pyparsing==3.0.7 +pyparsing==3.0.8 # via # -r requirements/tox.txt # packaging @@ -56,11 +56,11 @@ toml==0.10.2 # via # -r requirements/tox.txt # tox -tox==3.24.5 +tox==3.25.0 # via -r requirements/tox.txt -urllib3==1.26.8 +urllib3==1.26.9 # via requests -virtualenv==20.13.0 +virtualenv==20.14.1 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index bfe9e715..c2490b7c 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -14,7 +14,7 @@ asgiref==3.5.0 # -r requirements/base.txt # -r requirements/test.txt # django -astroid==2.9.3 +astroid==2.11.2 # via # -r requirements/test.txt # pylint @@ -33,32 +33,36 @@ certifi==2021.10.8 # -r requirements/docs.txt # -r requirements/test.txt # requests -charset-normalizer==2.0.11 +charset-normalizer==2.0.12 # via # -r requirements/docs.txt # -r requirements/test.txt # requests -click==8.0.3 +click==8.1.2 # via # -r requirements/test.txt # click-log # code-annotations # edx-lint -click-log==0.3.2 +click-log==0.4.0 # via # -r requirements/test.txt # edx-lint -code-annotations==1.2.0 +code-annotations==1.3.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==6.3.1 +coverage[toml]==6.3.2 # via # -r requirements/test.txt # pytest-cov ddt==1.4.4 # via -r requirements/test.txt -django==3.2.12 +dill==0.3.4 + # via + # -r requirements/test.txt + # pylint +django==3.2.13 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -80,15 +84,15 @@ docutils==0.17.1 # -r requirements/test.txt # sphinx # sphinx-rtd-theme -edx-lint==5.2.1 +edx-lint==5.2.2 # via -r requirements/test.txt factory-boy==3.2.1 # via -r requirements/test.txt -faker==12.0.0 +faker==13.3.4 # via # -r requirements/test.txt # factory-boy -freezegun==1.1.0 +freezegun==1.2.1 # via -r requirements/test.txt idna==3.3 # via @@ -100,7 +104,7 @@ imagesize==1.3.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -importlib-metadata==4.10.1 +importlib-metadata==4.11.3 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -113,7 +117,7 @@ isort==5.10.1 # via # -r requirements/test.txt # pylint -jinja2==3.0.3 +jinja2==3.1.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -127,12 +131,12 @@ lazy-object-proxy==1.7.1 # via # -r requirements/test.txt # astroid -markupsafe==2.0.1 +markupsafe==2.1.1 # via # -r requirements/docs.txt # -r requirements/test.txt # jinja2 -mccabe==0.6.1 +mccabe==0.7.0 # via # -r requirements/test.txt # pylint @@ -144,11 +148,11 @@ packaging==21.3 # -r requirements/test.txt # pytest # sphinx -pbr==5.8.0 +pbr==5.8.1 # via # -r requirements/test.txt # stevedore -platformdirs==2.4.1 +platformdirs==2.5.1 # via # -r requirements/test.txt # pylint @@ -172,7 +176,7 @@ pygments==2.11.2 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -pylint==2.12.2 +pylint==2.13.5 # via # -r requirements/test.txt # edx-lint @@ -183,7 +187,7 @@ pylint-celery==0.3 # via # -r requirements/test.txt # edx-lint -pylint-django==2.5.0 +pylint-django==2.5.3 # via # -r requirements/test.txt # edx-lint @@ -192,12 +196,12 @@ pylint-plugin-utils==0.7 # -r requirements/test.txt # pylint-celery # pylint-django -pyparsing==3.0.7 +pyparsing==3.0.8 # via # -r requirements/docs.txt # -r requirements/test.txt # packaging -pytest==6.2.5 +pytest==7.1.1 # via # -r requirements/test.txt # pytest-cov @@ -211,11 +215,11 @@ python-dateutil==2.8.2 # -r requirements/test.txt # faker # freezegun -python-slugify==5.0.2 +python-slugify==6.1.1 # via # -r requirements/test.txt # code-annotations -pytz==2021.3 +pytz==2022.1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -244,7 +248,7 @@ snowballstemmer==2.2.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sphinx==4.4.0 +sphinx==4.5.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -300,30 +304,27 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -toml==0.10.2 +tomli==2.0.1 # via # -r requirements/test.txt + # coverage # pylint # pytest -tomli==2.0.0 - # via - # -r requirements/test.txt - # coverage -typing-extensions==4.0.1 +typing-extensions==4.1.1 # via # -r requirements/test.txt # astroid # pylint -urllib3==1.26.8 +urllib3==1.26.9 # via # -r requirements/docs.txt # -r requirements/test.txt # requests -wrapt==1.13.3 +wrapt==1.14.0 # via # -r requirements/test.txt # astroid -zipp==3.7.0 +zipp==3.8.0 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index ca3bb19d..e16086b9 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -10,7 +10,7 @@ babel==2.9.1 # via sphinx certifi==2021.10.8 # via requests -charset-normalizer==2.0.11 +charset-normalizer==2.0.12 # via requests docutils==0.17.1 # via @@ -20,11 +20,11 @@ idna==3.3 # via requests imagesize==1.3.0 # via sphinx -importlib-metadata==4.10.1 +importlib-metadata==4.11.3 # via sphinx -jinja2==3.0.3 +jinja2==3.1.1 # via sphinx -markupsafe==2.0.1 +markupsafe==2.1.1 # via jinja2 packaging==21.3 # via sphinx @@ -32,9 +32,9 @@ pockets==0.9.1 # via sphinxcontrib-napoleon pygments==2.11.2 # via sphinx -pyparsing==3.0.7 +pyparsing==3.0.8 # via packaging -pytz==2021.3 +pytz==2022.1 # via babel requests==2.27.1 # via sphinx @@ -44,7 +44,7 @@ six==1.16.0 # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via sphinx -sphinx==4.4.0 +sphinx==4.5.0 # via # -r requirements/docs.in # sphinx-rtd-theme @@ -64,7 +64,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -urllib3==1.26.8 +urllib3==1.26.9 # via requests -zipp==3.7.0 +zipp==3.8.0 # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index a0d47aa9..a31aa926 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,13 +4,13 @@ # # make upgrade # -click==8.0.3 +click==8.1.2 # via pip-tools pep517==0.12.0 # via pip-tools -pip-tools==6.5.1 +pip-tools==6.6.0 # via -r requirements/pip-tools.in -tomli==2.0.0 +tomli==2.0.1 # via pep517 wheel==0.37.1 # via pip-tools diff --git a/requirements/pip.txt b/requirements/pip.txt index fd9edb79..0580dc5c 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -8,7 +8,7 @@ wheel==0.37.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==22.0.2 +pip==22.0.4 # via -r requirements/pip.in -setuptools==60.7.1 +setuptools==62.1.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 08d40499..27f4f584 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,7 +12,7 @@ asgiref==3.5.0 # via # -r requirements/base.txt # django -astroid==2.9.3 +astroid==2.11.2 # via # pylint # pylint-celery @@ -26,23 +26,25 @@ certifi==2021.10.8 # via # -r requirements/docs.txt # requests -charset-normalizer==2.0.11 +charset-normalizer==2.0.12 # via # -r requirements/docs.txt # requests -click==8.0.3 +click==8.1.2 # via # click-log # code-annotations # edx-lint -click-log==0.3.2 +click-log==0.4.0 # via edx-lint -code-annotations==1.2.0 +code-annotations==1.3.0 # via edx-lint -coverage[toml]==6.3.1 +coverage[toml]==6.3.2 # via pytest-cov ddt==1.4.4 # via -r requirements/test.in +dill==0.3.4 + # via pylint # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -57,13 +59,13 @@ docutils==0.17.1 # -r requirements/docs.txt # sphinx # sphinx-rtd-theme -edx-lint==5.2.1 +edx-lint==5.2.2 # via -r requirements/test.in factory-boy==3.2.1 # via -r requirements/test.in -faker==12.0.0 +faker==13.3.4 # via factory-boy -freezegun==1.1.0 +freezegun==1.2.1 # via -r requirements/test.in idna==3.3 # via @@ -73,7 +75,7 @@ imagesize==1.3.0 # via # -r requirements/docs.txt # sphinx -importlib-metadata==4.10.1 +importlib-metadata==4.11.3 # via # -r requirements/docs.txt # sphinx @@ -83,7 +85,7 @@ isort==5.10.1 # via # -r requirements/test.in # pylint -jinja2==3.0.3 +jinja2==3.1.1 # via # -r requirements/docs.txt # code-annotations @@ -92,11 +94,11 @@ jsonfield==3.1.0 # via -r requirements/base.txt lazy-object-proxy==1.7.1 # via astroid -markupsafe==2.0.1 +markupsafe==2.1.1 # via # -r requirements/docs.txt # jinja2 -mccabe==0.6.1 +mccabe==0.7.0 # via pylint mock==4.0.3 # via -r requirements/test.in @@ -105,9 +107,9 @@ packaging==21.3 # -r requirements/docs.txt # pytest # sphinx -pbr==5.8.0 +pbr==5.8.1 # via stevedore -platformdirs==2.4.1 +platformdirs==2.5.1 # via pylint pluggy==1.0.0 # via pytest @@ -123,7 +125,7 @@ pygments==2.11.2 # via # -r requirements/docs.txt # sphinx -pylint==2.12.2 +pylint==2.13.5 # via # edx-lint # pylint-celery @@ -131,17 +133,17 @@ pylint==2.12.2 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.0 +pylint-django==2.5.3 # via edx-lint pylint-plugin-utils==0.7 # via # pylint-celery # pylint-django -pyparsing==3.0.7 +pyparsing==3.0.8 # via # -r requirements/docs.txt # packaging -pytest==6.2.5 +pytest==7.1.1 # via # pytest-cov # pytest-django @@ -154,9 +156,9 @@ python-dateutil==2.8.2 # -r requirements/test.in # faker # freezegun -python-slugify==5.0.2 +python-slugify==6.1.1 # via code-annotations -pytz==2021.3 +pytz==2022.1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -179,7 +181,7 @@ snowballstemmer==2.2.0 # via # -r requirements/docs.txt # sphinx -sphinx==4.4.0 +sphinx==4.5.0 # via # -r requirements/docs.txt # sphinx-rtd-theme @@ -219,23 +221,22 @@ stevedore==3.5.0 # via code-annotations text-unidecode==1.3 # via python-slugify -toml==0.10.2 +tomli==2.0.1 # via + # coverage # pylint # pytest -tomli==2.0.0 - # via coverage -typing-extensions==4.0.1 +typing-extensions==4.1.1 # via # astroid # pylint -urllib3==1.26.8 +urllib3==1.26.9 # via # -r requirements/docs.txt # requests -wrapt==1.13.3 +wrapt==1.14.0 # via astroid -zipp==3.7.0 +zipp==3.8.0 # via # -r requirements/docs.txt # importlib-metadata diff --git a/requirements/tox.txt b/requirements/tox.txt index 678cee1d..6524f39e 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -6,19 +6,19 @@ # distlib==0.3.4 # via virtualenv -filelock==3.4.2 +filelock==3.6.0 # via # tox # virtualenv packaging==21.3 # via tox -platformdirs==2.4.1 +platformdirs==2.5.1 # via virtualenv pluggy==1.0.0 # via tox py==1.11.0 # via tox -pyparsing==3.0.7 +pyparsing==3.0.8 # via packaging six==1.16.0 # via @@ -26,7 +26,7 @@ six==1.16.0 # virtualenv toml==0.10.2 # via tox -tox==3.24.5 +tox==3.25.0 # via -r requirements/tox.in -virtualenv==20.13.0 +virtualenv==20.14.1 # via tox From 4342f682787bb177037f2aeb8cf5ae9259269417 Mon Sep 17 00:00:00 2001 From: Matt Hughes Date: Mon, 18 Apr 2022 17:12:12 -0400 Subject: [PATCH 09/55] chore: cut over alerts to new opsgenie instance --- .github/workflows/upgrade-python-requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-python-requirements.yml b/.github/workflows/upgrade-python-requirements.yml index 4aab6f74..fad6ec10 100644 --- a/.github/workflows/upgrade-python-requirements.yml +++ b/.github/workflows/upgrade-python-requirements.yml @@ -18,7 +18,7 @@ jobs: # optional parameters below; fill in if you'd like github or email notifications # user_reviewers: "" # team_reviewers: "" - email_address: "masters-requirements-update@edx.opsgenie.net" + email_address: "masters-requirements-update@2u-internal.opsgenie.net" send_success_notification: true secrets: requirements_bot_github_token: ${{ secrets.REQUIREMENTS_BOT_GITHUB_TOKEN }} From 71147a7581ba71327a038f1ad59f0019d2a57fa0 Mon Sep 17 00:00:00 2001 From: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com> Date: Fri, 6 May 2022 12:01:25 -0400 Subject: [PATCH 10/55] chore: Updating Python Requirements (#163) --- requirements/ci.txt | 2 +- requirements/dev.txt | 16 ++++++++-------- requirements/docs.txt | 4 ++-- requirements/test.txt | 16 ++++++++-------- requirements/tox.txt | 2 +- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/requirements/ci.txt b/requirements/ci.txt index 7ed042d8..bb73b1ca 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -29,7 +29,7 @@ packaging==21.3 # via # -r requirements/tox.txt # tox -platformdirs==2.5.1 +platformdirs==2.5.2 # via # -r requirements/tox.txt # virtualenv diff --git a/requirements/dev.txt b/requirements/dev.txt index c2490b7c..b9e63a0a 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -14,7 +14,7 @@ asgiref==3.5.0 # -r requirements/base.txt # -r requirements/test.txt # django -astroid==2.11.2 +astroid==2.11.3 # via # -r requirements/test.txt # pylint @@ -23,7 +23,7 @@ attrs==21.4.0 # via # -r requirements/test.txt # pytest -babel==2.9.1 +babel==2.10.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -88,7 +88,7 @@ edx-lint==5.2.2 # via -r requirements/test.txt factory-boy==3.2.1 # via -r requirements/test.txt -faker==13.3.4 +faker==13.4.0 # via # -r requirements/test.txt # factory-boy @@ -152,7 +152,7 @@ pbr==5.8.1 # via # -r requirements/test.txt # stevedore -platformdirs==2.5.1 +platformdirs==2.5.2 # via # -r requirements/test.txt # pylint @@ -171,12 +171,12 @@ py==1.11.0 # pytest pycodestyle==2.8.0 # via -r requirements/test.txt -pygments==2.11.2 +pygments==2.12.0 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx -pylint==2.13.5 +pylint==2.13.7 # via # -r requirements/test.txt # edx-lint @@ -201,7 +201,7 @@ pyparsing==3.0.8 # -r requirements/docs.txt # -r requirements/test.txt # packaging -pytest==7.1.1 +pytest==7.1.2 # via # -r requirements/test.txt # pytest-cov @@ -310,7 +310,7 @@ tomli==2.0.1 # coverage # pylint # pytest -typing-extensions==4.1.1 +typing-extensions==4.2.0 # via # -r requirements/test.txt # astroid diff --git a/requirements/docs.txt b/requirements/docs.txt index e16086b9..9d847242 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -6,7 +6,7 @@ # alabaster==0.7.12 # via sphinx -babel==2.9.1 +babel==2.10.1 # via sphinx certifi==2021.10.8 # via requests @@ -30,7 +30,7 @@ packaging==21.3 # via sphinx pockets==0.9.1 # via sphinxcontrib-napoleon -pygments==2.11.2 +pygments==2.12.0 # via sphinx pyparsing==3.0.8 # via packaging diff --git a/requirements/test.txt b/requirements/test.txt index 27f4f584..793df5a0 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,13 +12,13 @@ asgiref==3.5.0 # via # -r requirements/base.txt # django -astroid==2.11.2 +astroid==2.11.3 # via # pylint # pylint-celery attrs==21.4.0 # via pytest -babel==2.9.1 +babel==2.10.1 # via # -r requirements/docs.txt # sphinx @@ -63,7 +63,7 @@ edx-lint==5.2.2 # via -r requirements/test.in factory-boy==3.2.1 # via -r requirements/test.in -faker==13.3.4 +faker==13.4.0 # via factory-boy freezegun==1.2.1 # via -r requirements/test.in @@ -109,7 +109,7 @@ packaging==21.3 # sphinx pbr==5.8.1 # via stevedore -platformdirs==2.5.1 +platformdirs==2.5.2 # via pylint pluggy==1.0.0 # via pytest @@ -121,11 +121,11 @@ py==1.11.0 # via pytest pycodestyle==2.8.0 # via -r requirements/test.in -pygments==2.11.2 +pygments==2.12.0 # via # -r requirements/docs.txt # sphinx -pylint==2.13.5 +pylint==2.13.7 # via # edx-lint # pylint-celery @@ -143,7 +143,7 @@ pyparsing==3.0.8 # via # -r requirements/docs.txt # packaging -pytest==7.1.1 +pytest==7.1.2 # via # pytest-cov # pytest-django @@ -226,7 +226,7 @@ tomli==2.0.1 # coverage # pylint # pytest -typing-extensions==4.1.1 +typing-extensions==4.2.0 # via # astroid # pylint diff --git a/requirements/tox.txt b/requirements/tox.txt index 6524f39e..12e5ebdc 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -12,7 +12,7 @@ filelock==3.6.0 # virtualenv packaging==21.3 # via tox -platformdirs==2.5.1 +platformdirs==2.5.2 # via virtualenv pluggy==1.0.0 # via tox From 39fc4de5daab17814df6a1a628a87db7e1ccc704 Mon Sep 17 00:00:00 2001 From: Jawayria <39649635+Jawayria@users.noreply.github.com> Date: Tue, 14 Jun 2022 15:14:14 +0500 Subject: [PATCH 11/55] fix: Install pip and pip-tools in upgrade script (#165) * fix: Install pip and pip-tools in upgrade script * fix: make upgrade --- Makefile | 2 ++ requirements/base.txt | 2 +- requirements/ci.txt | 8 ++++---- requirements/dev.txt | 36 ++++++++++++++++++++---------------- requirements/docs.txt | 10 +++++----- requirements/pip-tools.txt | 4 ++-- requirements/pip.txt | 4 ++-- requirements/test.txt | 34 ++++++++++++++++++---------------- requirements/tox.txt | 4 ++-- 9 files changed, 56 insertions(+), 48 deletions(-) diff --git a/Makefile b/Makefile index e97ec1f0..62786dbd 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,8 @@ upgrade: ## Update the requirements/*.txt files with the latest packages satisfy # Make sure to compile files after any other files they include! pip-compile --upgrade --allow-unsafe --rebuild -o requirements/pip.txt requirements/pip.in pip-compile --upgrade --verbose --rebuild -o requirements/pip-tools.txt requirements/pip-tools.in + pip install -qr requirements/pip.txt + pip install -qr requirements/pip-tools.txt pip-compile --upgrade --verbose --rebuild -o requirements/base.txt requirements/base.in pip-compile --upgrade --verbose --rebuild -o requirements/docs.txt requirements/docs.in pip-compile --upgrade --verbose --rebuild -o requirements/test.txt requirements/test.in diff --git a/requirements/base.txt b/requirements/base.txt index 12424ccc..db355830 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,7 +4,7 @@ # # make upgrade # -asgiref==3.5.0 +asgiref==3.5.2 # via django django==3.2.13 # via diff --git a/requirements/ci.txt b/requirements/ci.txt index bb73b1ca..9dc11f81 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,11 +4,11 @@ # # make upgrade # -certifi==2021.10.8 +certifi==2022.5.18.1 # via requests charset-normalizer==2.0.12 # via requests -coverage==6.3.2 +coverage==6.4.1 # via coveralls coveralls==3.3.1 # via -r requirements/ci.in @@ -18,7 +18,7 @@ distlib==0.3.4 # virtualenv docopt==0.6.2 # via coveralls -filelock==3.6.0 +filelock==3.7.1 # via # -r requirements/tox.txt # tox @@ -41,7 +41,7 @@ py==1.11.0 # via # -r requirements/tox.txt # tox -pyparsing==3.0.8 +pyparsing==3.0.9 # via # -r requirements/tox.txt # packaging diff --git a/requirements/dev.txt b/requirements/dev.txt index b9e63a0a..8bd66550 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -9,12 +9,12 @@ alabaster==0.7.12 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -asgiref==3.5.0 +asgiref==3.5.2 # via # -r requirements/base.txt # -r requirements/test.txt # django -astroid==2.11.3 +astroid==2.11.5 # via # -r requirements/test.txt # pylint @@ -28,7 +28,7 @@ babel==2.10.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -certifi==2021.10.8 +certifi==2022.5.18.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -38,7 +38,7 @@ charset-normalizer==2.0.12 # -r requirements/docs.txt # -r requirements/test.txt # requests -click==8.1.2 +click==8.1.3 # via # -r requirements/test.txt # click-log @@ -52,13 +52,13 @@ code-annotations==1.3.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==6.3.2 +coverage[toml]==6.4.1 # via # -r requirements/test.txt # pytest-cov -ddt==1.4.4 +ddt==1.5.0 # via -r requirements/test.txt -dill==0.3.4 +dill==0.3.5.1 # via # -r requirements/test.txt # pylint @@ -88,7 +88,7 @@ edx-lint==5.2.2 # via -r requirements/test.txt factory-boy==3.2.1 # via -r requirements/test.txt -faker==13.4.0 +faker==13.12.1 # via # -r requirements/test.txt # factory-boy @@ -104,7 +104,7 @@ imagesize==1.3.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -importlib-metadata==4.11.3 +importlib-metadata==4.11.4 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -117,7 +117,7 @@ isort==5.10.1 # via # -r requirements/test.txt # pylint -jinja2==3.1.1 +jinja2==3.1.2 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -148,7 +148,7 @@ packaging==21.3 # -r requirements/test.txt # pytest # sphinx -pbr==5.8.1 +pbr==5.9.0 # via # -r requirements/test.txt # stevedore @@ -176,7 +176,7 @@ pygments==2.12.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -pylint==2.13.7 +pylint==2.14.1 # via # -r requirements/test.txt # edx-lint @@ -196,7 +196,7 @@ pylint-plugin-utils==0.7 # -r requirements/test.txt # pylint-celery # pylint-django -pyparsing==3.0.8 +pyparsing==3.0.9 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -215,7 +215,7 @@ python-dateutil==2.8.2 # -r requirements/test.txt # faker # freezegun -python-slugify==6.1.1 +python-slugify==6.1.2 # via # -r requirements/test.txt # code-annotations @@ -248,7 +248,7 @@ snowballstemmer==2.2.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sphinx==4.5.0 +sphinx==5.0.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -310,6 +310,10 @@ tomli==2.0.1 # coverage # pylint # pytest +tomlkit==0.11.0 + # via + # -r requirements/test.txt + # pylint typing-extensions==4.2.0 # via # -r requirements/test.txt @@ -320,7 +324,7 @@ urllib3==1.26.9 # -r requirements/docs.txt # -r requirements/test.txt # requests -wrapt==1.14.0 +wrapt==1.14.1 # via # -r requirements/test.txt # astroid diff --git a/requirements/docs.txt b/requirements/docs.txt index 9d847242..e400a100 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -8,7 +8,7 @@ alabaster==0.7.12 # via sphinx babel==2.10.1 # via sphinx -certifi==2021.10.8 +certifi==2022.5.18.1 # via requests charset-normalizer==2.0.12 # via requests @@ -20,9 +20,9 @@ idna==3.3 # via requests imagesize==1.3.0 # via sphinx -importlib-metadata==4.11.3 +importlib-metadata==4.11.4 # via sphinx -jinja2==3.1.1 +jinja2==3.1.2 # via sphinx markupsafe==2.1.1 # via jinja2 @@ -32,7 +32,7 @@ pockets==0.9.1 # via sphinxcontrib-napoleon pygments==2.12.0 # via sphinx -pyparsing==3.0.8 +pyparsing==3.0.9 # via packaging pytz==2022.1 # via babel @@ -44,7 +44,7 @@ six==1.16.0 # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via sphinx -sphinx==4.5.0 +sphinx==5.0.1 # via # -r requirements/docs.in # sphinx-rtd-theme diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index a31aa926..ce56f4c7 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,11 +4,11 @@ # # make upgrade # -click==8.1.2 +click==8.1.3 # via pip-tools pep517==0.12.0 # via pip-tools -pip-tools==6.6.0 +pip-tools==6.6.2 # via -r requirements/pip-tools.in tomli==2.0.1 # via pep517 diff --git a/requirements/pip.txt b/requirements/pip.txt index 0580dc5c..8510da19 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -8,7 +8,7 @@ wheel==0.37.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==22.0.4 +pip==22.1.2 # via -r requirements/pip.in -setuptools==62.1.0 +setuptools==62.3.2 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 793df5a0..70202fe1 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -8,11 +8,11 @@ alabaster==0.7.12 # via # -r requirements/docs.txt # sphinx -asgiref==3.5.0 +asgiref==3.5.2 # via # -r requirements/base.txt # django -astroid==2.11.3 +astroid==2.11.5 # via # pylint # pylint-celery @@ -22,7 +22,7 @@ babel==2.10.1 # via # -r requirements/docs.txt # sphinx -certifi==2021.10.8 +certifi==2022.5.18.1 # via # -r requirements/docs.txt # requests @@ -30,7 +30,7 @@ charset-normalizer==2.0.12 # via # -r requirements/docs.txt # requests -click==8.1.2 +click==8.1.3 # via # click-log # code-annotations @@ -39,11 +39,11 @@ click-log==0.4.0 # via edx-lint code-annotations==1.3.0 # via edx-lint -coverage[toml]==6.3.2 +coverage[toml]==6.4.1 # via pytest-cov -ddt==1.4.4 +ddt==1.5.0 # via -r requirements/test.in -dill==0.3.4 +dill==0.3.5.1 # via pylint # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt @@ -63,7 +63,7 @@ edx-lint==5.2.2 # via -r requirements/test.in factory-boy==3.2.1 # via -r requirements/test.in -faker==13.4.0 +faker==13.12.1 # via factory-boy freezegun==1.2.1 # via -r requirements/test.in @@ -75,7 +75,7 @@ imagesize==1.3.0 # via # -r requirements/docs.txt # sphinx -importlib-metadata==4.11.3 +importlib-metadata==4.11.4 # via # -r requirements/docs.txt # sphinx @@ -85,7 +85,7 @@ isort==5.10.1 # via # -r requirements/test.in # pylint -jinja2==3.1.1 +jinja2==3.1.2 # via # -r requirements/docs.txt # code-annotations @@ -107,7 +107,7 @@ packaging==21.3 # -r requirements/docs.txt # pytest # sphinx -pbr==5.8.1 +pbr==5.9.0 # via stevedore platformdirs==2.5.2 # via pylint @@ -125,7 +125,7 @@ pygments==2.12.0 # via # -r requirements/docs.txt # sphinx -pylint==2.13.7 +pylint==2.14.1 # via # edx-lint # pylint-celery @@ -139,7 +139,7 @@ pylint-plugin-utils==0.7 # via # pylint-celery # pylint-django -pyparsing==3.0.8 +pyparsing==3.0.9 # via # -r requirements/docs.txt # packaging @@ -156,7 +156,7 @@ python-dateutil==2.8.2 # -r requirements/test.in # faker # freezegun -python-slugify==6.1.1 +python-slugify==6.1.2 # via code-annotations pytz==2022.1 # via @@ -181,7 +181,7 @@ snowballstemmer==2.2.0 # via # -r requirements/docs.txt # sphinx -sphinx==4.5.0 +sphinx==5.0.1 # via # -r requirements/docs.txt # sphinx-rtd-theme @@ -226,6 +226,8 @@ tomli==2.0.1 # coverage # pylint # pytest +tomlkit==0.11.0 + # via pylint typing-extensions==4.2.0 # via # astroid @@ -234,7 +236,7 @@ urllib3==1.26.9 # via # -r requirements/docs.txt # requests -wrapt==1.14.0 +wrapt==1.14.1 # via astroid zipp==3.8.0 # via diff --git a/requirements/tox.txt b/requirements/tox.txt index 12e5ebdc..b0e7f0a1 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -6,7 +6,7 @@ # distlib==0.3.4 # via virtualenv -filelock==3.6.0 +filelock==3.7.1 # via # tox # virtualenv @@ -18,7 +18,7 @@ pluggy==1.0.0 # via tox py==1.11.0 # via tox -pyparsing==3.0.8 +pyparsing==3.0.9 # via packaging six==1.16.0 # via From 1906c4c3f5ca7cb16d84eab64fa915b626bdd38c Mon Sep 17 00:00:00 2001 From: Jansen Kantor Date: Fri, 24 Jun 2022 12:36:57 -0400 Subject: [PATCH 12/55] fix: race condition for team ORA (#166) --- submissions/__init__.py | 2 +- submissions/api.py | 16 +++++++++++++++- submissions/tests/test_api.py | 36 ++++++++++++++++++++++++++++++++++- 3 files changed, 51 insertions(+), 3 deletions(-) diff --git a/submissions/__init__.py b/submissions/__init__.py index be129e3f..e23936b9 100644 --- a/submissions/__init__.py +++ b/submissions/__init__.py @@ -1,2 +1,2 @@ """ API for creating submissions and scores. """ -__version__ = '3.5.1' +__version__ = '3.5.2' diff --git a/submissions/api.py b/submissions/api.py index d2f39485..b836d866 100644 --- a/submissions/api.py +++ b/submissions/api.py @@ -988,7 +988,21 @@ def _get_or_create_student_item(student_item_dict): } ) raise SubmissionRequestError(field_errors=student_item_serializer.errors) from student_error - return student_item_serializer.save() + try: + # This is required because we currently have automatic request transactions turned on in the LMS. + # Database errors mess up the "atomic" block so we have to "insulate" against them with an + # inner atomic block (https://docs.djangoproject.com/en/4.0/topics/db/transactions/) + with transaction.atomic(): + return student_item_serializer.save() + except IntegrityError as integrity_error: + # In the case where a student item does not exist and multiple calls to this function happen, there + # can be a race condition where the first get has no results, but once the save happens there is already + # a version of this student item. In that case, try just loading again and see if the item exists now. + try: + return StudentItem.objects.get(**student_item_dict) + except StudentItem.DoesNotExist: + pass + raise integrity_error except DatabaseError as error: error_message = f"An error occurred creating student item: {student_item_dict}" logger.exception(error_message) diff --git a/submissions/tests/test_api.py b/submissions/tests/test_api.py index d0e24d30..b0da78f5 100644 --- a/submissions/tests/test_api.py +++ b/submissions/tests/test_api.py @@ -8,12 +8,13 @@ import ddt import pytz from django.core.cache import cache -from django.db import DatabaseError, connection, transaction +from django.db import DatabaseError, IntegrityError, connection, transaction from django.test import TestCase from django.utils.timezone import now from freezegun import freeze_time from submissions import api +from submissions.errors import SubmissionInternalError from submissions.models import ScoreAnnotation, ScoreSummary, StudentItem, Submission, score_set from submissions.serializers import StudentItemSerializer @@ -829,3 +830,36 @@ def submit(course_id, item_id, student_ids): ), item_3_expected_result ) + + def test_get_or_create_student_item_race_condition__item_created(self): + """ + Test for a race condition in _get_or_create_student_item where the item does not exist when + we check first, but has been created by the time we try to save, raising an IntegrityError. + + Test for the case where the second call to get succeeds. + """ + mock_item = mock.Mock() + with mock.patch.object(StudentItem.objects, "get") as mock_get_item: + with mock.patch.object(StudentItemSerializer, "save", side_effect=IntegrityError): + mock_get_item.side_effect = [ + StudentItem.DoesNotExist, + mock_item + ] + self.assertEqual( + api._get_or_create_student_item(STUDENT_ITEM), # pylint: disable=protected-access + mock_item + ) + + def test_get_or_create_student_item_race_condition__item_not_created(self): + """ + Test for a race condition in _get_or_create_student_item where the item does not exist when + we check first, but has been created by the time we try to save, raising an IntegrityError. + + Test for the case where the second call does not return an item, so the caught IntegrityError was something + else and should be re-raised. + """ + with mock.patch.object(StudentItem.objects, "get") as mock_get_item: + with mock.patch.object(StudentItemSerializer, "save", side_effect=IntegrityError): + mock_get_item.side_effect = StudentItem.DoesNotExist + with self.assertRaisesMessage(SubmissionInternalError, "An error occurred creating student item"): + api._get_or_create_student_item(STUDENT_ITEM) # pylint: disable=protected-access From d2583c250a1ed5bedde59fd9ab45a1177c3ad8ad Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Sun, 26 Jun 2022 12:26:00 -0400 Subject: [PATCH 13/55] chore: Updating Python Requirements --- requirements/ci.txt | 6 +++--- requirements/dev.txt | 18 +++++++++--------- requirements/docs.txt | 10 +++++----- requirements/pip.txt | 2 +- requirements/test.txt | 18 +++++++++--------- requirements/tox.txt | 2 +- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/requirements/ci.txt b/requirements/ci.txt index 9dc11f81..fa6f8f66 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,7 +4,7 @@ # # make upgrade # -certifi==2022.5.18.1 +certifi==2022.6.15 # via requests charset-normalizer==2.0.12 # via requests @@ -45,7 +45,7 @@ pyparsing==3.0.9 # via # -r requirements/tox.txt # packaging -requests==2.27.1 +requests==2.28.0 # via coveralls six==1.16.0 # via @@ -60,7 +60,7 @@ tox==3.25.0 # via -r requirements/tox.txt urllib3==1.26.9 # via requests -virtualenv==20.14.1 +virtualenv==20.15.0 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 8bd66550..5e2e33cb 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -14,7 +14,7 @@ asgiref==3.5.2 # -r requirements/base.txt # -r requirements/test.txt # django -astroid==2.11.5 +astroid==2.11.6 # via # -r requirements/test.txt # pylint @@ -23,12 +23,12 @@ attrs==21.4.0 # via # -r requirements/test.txt # pytest -babel==2.10.1 +babel==2.10.3 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx -certifi==2022.5.18.1 +certifi==2022.6.15 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -84,11 +84,11 @@ docutils==0.17.1 # -r requirements/test.txt # sphinx # sphinx-rtd-theme -edx-lint==5.2.2 +edx-lint==5.2.4 # via -r requirements/test.txt factory-boy==3.2.1 # via -r requirements/test.txt -faker==13.12.1 +faker==13.14.0 # via # -r requirements/test.txt # factory-boy @@ -104,7 +104,7 @@ imagesize==1.3.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -importlib-metadata==4.11.4 +importlib-metadata==4.12.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -176,7 +176,7 @@ pygments==2.12.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -pylint==2.14.1 +pylint==2.14.3 # via # -r requirements/test.txt # edx-lint @@ -230,7 +230,7 @@ pyyaml==6.0 # via # -r requirements/test.txt # code-annotations -requests==2.27.1 +requests==2.28.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -248,7 +248,7 @@ snowballstemmer==2.2.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sphinx==5.0.1 +sphinx==5.0.2 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index e400a100..0baaa7df 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -6,9 +6,9 @@ # alabaster==0.7.12 # via sphinx -babel==2.10.1 +babel==2.10.3 # via sphinx -certifi==2022.5.18.1 +certifi==2022.6.15 # via requests charset-normalizer==2.0.12 # via requests @@ -20,7 +20,7 @@ idna==3.3 # via requests imagesize==1.3.0 # via sphinx -importlib-metadata==4.11.4 +importlib-metadata==4.12.0 # via sphinx jinja2==3.1.2 # via sphinx @@ -36,7 +36,7 @@ pyparsing==3.0.9 # via packaging pytz==2022.1 # via babel -requests==2.27.1 +requests==2.28.0 # via sphinx six==1.16.0 # via @@ -44,7 +44,7 @@ six==1.16.0 # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via sphinx -sphinx==5.0.1 +sphinx==5.0.2 # via # -r requirements/docs.in # sphinx-rtd-theme diff --git a/requirements/pip.txt b/requirements/pip.txt index 8510da19..b3a6cb4c 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -10,5 +10,5 @@ wheel==0.37.1 # The following packages are considered to be unsafe in a requirements file: pip==22.1.2 # via -r requirements/pip.in -setuptools==62.3.2 +setuptools==62.6.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 70202fe1..2c66d225 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,17 +12,17 @@ asgiref==3.5.2 # via # -r requirements/base.txt # django -astroid==2.11.5 +astroid==2.11.6 # via # pylint # pylint-celery attrs==21.4.0 # via pytest -babel==2.10.1 +babel==2.10.3 # via # -r requirements/docs.txt # sphinx -certifi==2022.5.18.1 +certifi==2022.6.15 # via # -r requirements/docs.txt # requests @@ -59,11 +59,11 @@ docutils==0.17.1 # -r requirements/docs.txt # sphinx # sphinx-rtd-theme -edx-lint==5.2.2 +edx-lint==5.2.4 # via -r requirements/test.in factory-boy==3.2.1 # via -r requirements/test.in -faker==13.12.1 +faker==13.14.0 # via factory-boy freezegun==1.2.1 # via -r requirements/test.in @@ -75,7 +75,7 @@ imagesize==1.3.0 # via # -r requirements/docs.txt # sphinx -importlib-metadata==4.11.4 +importlib-metadata==4.12.0 # via # -r requirements/docs.txt # sphinx @@ -125,7 +125,7 @@ pygments==2.12.0 # via # -r requirements/docs.txt # sphinx -pylint==2.14.1 +pylint==2.14.3 # via # edx-lint # pylint-celery @@ -166,7 +166,7 @@ pytz==2022.1 # django pyyaml==6.0 # via code-annotations -requests==2.27.1 +requests==2.28.0 # via # -r requirements/docs.txt # sphinx @@ -181,7 +181,7 @@ snowballstemmer==2.2.0 # via # -r requirements/docs.txt # sphinx -sphinx==5.0.1 +sphinx==5.0.2 # via # -r requirements/docs.txt # sphinx-rtd-theme diff --git a/requirements/tox.txt b/requirements/tox.txt index b0e7f0a1..d8b8818a 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -28,5 +28,5 @@ toml==0.10.2 # via tox tox==3.25.0 # via -r requirements/tox.in -virtualenv==20.14.1 +virtualenv==20.15.0 # via tox From 311f4d72aaccfdf02985bf64e2aae2f650759056 Mon Sep 17 00:00:00 2001 From: Jansen Kantor Date: Mon, 27 Jun 2022 12:28:05 -0400 Subject: [PATCH 14/55] build: add long_description to setup (#168) --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index f76c0aee..8436a9ed 100644 --- a/setup.py +++ b/setup.py @@ -68,6 +68,7 @@ def get_version(*file_paths): version=VERSION, author='edX', description='An API for creating submissions and scores.', + long_description="An API for creating and scoring submissions for the Open edX platform", url='http://github.com/edx/edx-submissions.git', license='AGPL', classifiers=[ From 5af08bb1c30c3e39aad89d1816aa88dd7ea1fd1d Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Tue, 12 Jul 2022 12:26:28 -0400 Subject: [PATCH 15/55] chore: Updating Python Requirements --- requirements/base.txt | 2 +- requirements/ci.txt | 12 ++++++------ requirements/dev.txt | 26 +++++++++++++------------- requirements/docs.txt | 10 +++++----- requirements/pip-tools.txt | 14 +++++++++++--- requirements/pip.txt | 2 +- requirements/test.txt | 24 ++++++++++++------------ requirements/tox.txt | 4 ++-- 8 files changed, 51 insertions(+), 43 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index db355830..0e44b6f6 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,7 +6,7 @@ # asgiref==3.5.2 # via django -django==3.2.13 +django==3.2.14 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in diff --git a/requirements/ci.txt b/requirements/ci.txt index fa6f8f66..3a8d3db6 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -6,9 +6,9 @@ # certifi==2022.6.15 # via requests -charset-normalizer==2.0.12 +charset-normalizer==2.1.0 # via requests -coverage==6.4.1 +coverage==6.4.2 # via coveralls coveralls==3.3.1 # via -r requirements/ci.in @@ -45,7 +45,7 @@ pyparsing==3.0.9 # via # -r requirements/tox.txt # packaging -requests==2.28.0 +requests==2.28.1 # via coveralls six==1.16.0 # via @@ -56,11 +56,11 @@ toml==0.10.2 # via # -r requirements/tox.txt # tox -tox==3.25.0 +tox==3.25.1 # via -r requirements/tox.txt -urllib3==1.26.9 +urllib3==1.26.10 # via requests -virtualenv==20.15.0 +virtualenv==20.15.1 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 5e2e33cb..1db2100f 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -14,7 +14,7 @@ asgiref==3.5.2 # -r requirements/base.txt # -r requirements/test.txt # django -astroid==2.11.6 +astroid==2.11.7 # via # -r requirements/test.txt # pylint @@ -33,7 +33,7 @@ certifi==2022.6.15 # -r requirements/docs.txt # -r requirements/test.txt # requests -charset-normalizer==2.0.12 +charset-normalizer==2.1.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -52,7 +52,7 @@ code-annotations==1.3.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==6.4.1 +coverage[toml]==6.4.2 # via # -r requirements/test.txt # pytest-cov @@ -62,7 +62,7 @@ dill==0.3.5.1 # via # -r requirements/test.txt # pylint -django==3.2.13 +django==3.2.14 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -88,7 +88,7 @@ edx-lint==5.2.4 # via -r requirements/test.txt factory-boy==3.2.1 # via -r requirements/test.txt -faker==13.14.0 +faker==13.15.0 # via # -r requirements/test.txt # factory-boy @@ -99,7 +99,7 @@ idna==3.3 # -r requirements/docs.txt # -r requirements/test.txt # requests -imagesize==1.3.0 +imagesize==1.4.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -176,7 +176,7 @@ pygments==2.12.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -pylint==2.14.3 +pylint==2.14.4 # via # -r requirements/test.txt # edx-lint @@ -230,7 +230,7 @@ pyyaml==6.0 # via # -r requirements/test.txt # code-annotations -requests==2.28.0 +requests==2.28.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -296,7 +296,7 @@ sqlparse==0.4.2 # -r requirements/base.txt # -r requirements/test.txt # django -stevedore==3.5.0 +stevedore==4.0.0 # via # -r requirements/test.txt # code-annotations @@ -310,16 +310,16 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.0 +tomlkit==0.11.1 # via # -r requirements/test.txt # pylint -typing-extensions==4.2.0 +typing-extensions==4.3.0 # via # -r requirements/test.txt # astroid # pylint -urllib3==1.26.9 +urllib3==1.26.10 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -328,7 +328,7 @@ wrapt==1.14.1 # via # -r requirements/test.txt # astroid -zipp==3.8.0 +zipp==3.8.1 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 0baaa7df..f67f6c9d 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -10,7 +10,7 @@ babel==2.10.3 # via sphinx certifi==2022.6.15 # via requests -charset-normalizer==2.0.12 +charset-normalizer==2.1.0 # via requests docutils==0.17.1 # via @@ -18,7 +18,7 @@ docutils==0.17.1 # sphinx-rtd-theme idna==3.3 # via requests -imagesize==1.3.0 +imagesize==1.4.1 # via sphinx importlib-metadata==4.12.0 # via sphinx @@ -36,7 +36,7 @@ pyparsing==3.0.9 # via packaging pytz==2022.1 # via babel -requests==2.28.0 +requests==2.28.1 # via sphinx six==1.16.0 # via @@ -64,7 +64,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -urllib3==1.26.9 +urllib3==1.26.10 # via requests -zipp==3.8.0 +zipp==3.8.1 # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index ce56f4c7..f49a9d41 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,14 +4,22 @@ # # make upgrade # +build==0.8.0 + # via pip-tools click==8.1.3 # via pip-tools +packaging==21.3 + # via build pep517==0.12.0 - # via pip-tools -pip-tools==6.6.2 + # via build +pip-tools==6.8.0 # via -r requirements/pip-tools.in +pyparsing==3.0.9 + # via packaging tomli==2.0.1 - # via pep517 + # via + # build + # pep517 wheel==0.37.1 # via pip-tools diff --git a/requirements/pip.txt b/requirements/pip.txt index b3a6cb4c..16c2b5fe 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -10,5 +10,5 @@ wheel==0.37.1 # The following packages are considered to be unsafe in a requirements file: pip==22.1.2 # via -r requirements/pip.in -setuptools==62.6.0 +setuptools==63.1.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 2c66d225..4208d72e 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,7 +12,7 @@ asgiref==3.5.2 # via # -r requirements/base.txt # django -astroid==2.11.6 +astroid==2.11.7 # via # pylint # pylint-celery @@ -26,7 +26,7 @@ certifi==2022.6.15 # via # -r requirements/docs.txt # requests -charset-normalizer==2.0.12 +charset-normalizer==2.1.0 # via # -r requirements/docs.txt # requests @@ -39,7 +39,7 @@ click-log==0.4.0 # via edx-lint code-annotations==1.3.0 # via edx-lint -coverage[toml]==6.4.1 +coverage[toml]==6.4.2 # via pytest-cov ddt==1.5.0 # via -r requirements/test.in @@ -63,7 +63,7 @@ edx-lint==5.2.4 # via -r requirements/test.in factory-boy==3.2.1 # via -r requirements/test.in -faker==13.14.0 +faker==13.15.0 # via factory-boy freezegun==1.2.1 # via -r requirements/test.in @@ -71,7 +71,7 @@ idna==3.3 # via # -r requirements/docs.txt # requests -imagesize==1.3.0 +imagesize==1.4.1 # via # -r requirements/docs.txt # sphinx @@ -125,7 +125,7 @@ pygments==2.12.0 # via # -r requirements/docs.txt # sphinx -pylint==2.14.3 +pylint==2.14.4 # via # edx-lint # pylint-celery @@ -166,7 +166,7 @@ pytz==2022.1 # django pyyaml==6.0 # via code-annotations -requests==2.28.0 +requests==2.28.1 # via # -r requirements/docs.txt # sphinx @@ -217,7 +217,7 @@ sqlparse==0.4.2 # via # -r requirements/base.txt # django -stevedore==3.5.0 +stevedore==4.0.0 # via code-annotations text-unidecode==1.3 # via python-slugify @@ -226,19 +226,19 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.0 +tomlkit==0.11.1 # via pylint -typing-extensions==4.2.0 +typing-extensions==4.3.0 # via # astroid # pylint -urllib3==1.26.9 +urllib3==1.26.10 # via # -r requirements/docs.txt # requests wrapt==1.14.1 # via astroid -zipp==3.8.0 +zipp==3.8.1 # via # -r requirements/docs.txt # importlib-metadata diff --git a/requirements/tox.txt b/requirements/tox.txt index d8b8818a..f1bb9259 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -26,7 +26,7 @@ six==1.16.0 # virtualenv toml==0.10.2 # via tox -tox==3.25.0 +tox==3.25.1 # via -r requirements/tox.in -virtualenv==20.15.0 +virtualenv==20.15.1 # via tox From 804f471f61a2d13653a2c67b9e9c55b1ac78938f Mon Sep 17 00:00:00 2001 From: Jansen Kantor Date: Tue, 2 Aug 2022 10:51:29 -0400 Subject: [PATCH 16/55] build: change requirements upgrade email (#171) --- .github/workflows/upgrade-python-requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-python-requirements.yml b/.github/workflows/upgrade-python-requirements.yml index fad6ec10..834352d7 100644 --- a/.github/workflows/upgrade-python-requirements.yml +++ b/.github/workflows/upgrade-python-requirements.yml @@ -18,7 +18,7 @@ jobs: # optional parameters below; fill in if you'd like github or email notifications # user_reviewers: "" # team_reviewers: "" - email_address: "masters-requirements-update@2u-internal.opsgenie.net" + email_address: "aurora-requirements-update@2u-internal.opsgenie.net" send_success_notification: true secrets: requirements_bot_github_token: ${{ secrets.REQUIREMENTS_BOT_GITHUB_TOKEN }} From 49e089f4ed78cf85f4a27aa4e27f401d18257bda Mon Sep 17 00:00:00 2001 From: Jansen Kantor Date: Thu, 18 Aug 2022 11:22:52 -0400 Subject: [PATCH 17/55] Jkantor/ensure ascii (#173) * fix: set ensure_ascii on raw_answer This fixes a bug where we are unable to store 4-byte UTF-8 unicode characters due to the encoding on this table. Rather than rebuilding the entire table with a different encoding, we thought the more straightforward fix was to simply json-encode characters before saving in the DB * chore: bump version --- submissions/__init__.py | 2 +- submissions/models.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submissions/__init__.py b/submissions/__init__.py index e23936b9..621eb95f 100644 --- a/submissions/__init__.py +++ b/submissions/__init__.py @@ -1,2 +1,2 @@ """ API for creating submissions and scores. """ -__version__ = '3.5.2' +__version__ = '3.5.3' diff --git a/submissions/models.py b/submissions/models.py index 5d7309bd..3c7a163d 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -319,7 +319,7 @@ class Submission(models.Model): # replacement for TextField that performs JSON serialization/deserialization. # For backwards compatibility, we override the default database column # name so it continues to use `raw_answer`. - answer = JSONField(blank=True, db_column="raw_answer") + answer = JSONField(blank=True, dump_kwargs={'ensure_ascii': True}, db_column="raw_answer") status = models.CharField(max_length=1, choices=STATUS_CHOICES, default=ACTIVE) From be6a4b0aa3d54b7eb1e9df3307093b3506962cb0 Mon Sep 17 00:00:00 2001 From: Jansen Kantor Date: Thu, 18 Aug 2022 16:01:39 -0400 Subject: [PATCH 18/55] Jkantor/ensure ascii migraton (#174) * feat: migration for raw_answer ensure_ascii * build: skip migrations in isort --- Makefile | 2 +- submissions/migrations/0003_ensure_ascii.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 submissions/migrations/0003_ensure_ascii.py diff --git a/Makefile b/Makefile index 62786dbd..3cce4488 100644 --- a/Makefile +++ b/Makefile @@ -68,7 +68,7 @@ diff_cover: test ## Generate diff coverage report test_quality: ## Run Quality checks pylint submissions - isort --check-only submissions manage.py setup.py settings.py + isort --check-only submissions manage.py setup.py settings.py --skip migrations pycodestyle . --config=pycodestyle ################## diff --git a/submissions/migrations/0003_ensure_ascii.py b/submissions/migrations/0003_ensure_ascii.py new file mode 100644 index 00000000..26a516e4 --- /dev/null +++ b/submissions/migrations/0003_ensure_ascii.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.14 on 2022-08-18 19:01 + +from django.db import migrations +import jsonfield.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('submissions', '0002_team_submission_optional'), + ] + + operations = [ + migrations.AlterField( + model_name='submission', + name='answer', + field=jsonfield.fields.JSONField(blank=True, db_column='raw_answer', dump_kwargs={'ensure_ascii': True}), + ), + ] From 4367be51ce650482f167b974214d3dbca142f8f6 Mon Sep 17 00:00:00 2001 From: Jansen Kantor Date: Thu, 18 Aug 2022 17:12:31 -0400 Subject: [PATCH 19/55] chore: bump version (#175) --- submissions/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submissions/__init__.py b/submissions/__init__.py index 621eb95f..4a73e710 100644 --- a/submissions/__init__.py +++ b/submissions/__init__.py @@ -1,2 +1,2 @@ """ API for creating submissions and scores. """ -__version__ = '3.5.3' +__version__ = '3.5.4' From ff97fcc165274041deadf4dc28777e97890c73a6 Mon Sep 17 00:00:00 2001 From: Sarina Canelake Date: Sat, 10 Sep 2022 15:56:47 -0400 Subject: [PATCH 20/55] chore: run `edx_lint` update with the current version of the repo. --- pylintrc | 351 ++++++++++++++++++++++--------------------------------- 1 file changed, 140 insertions(+), 211 deletions(-) diff --git a/pylintrc b/pylintrc index e9761d92..cadb4901 100644 --- a/pylintrc +++ b/pylintrc @@ -2,12 +2,16 @@ # ** DO NOT EDIT THIS FILE ** # *************************** # -# This file was generated by edx-lint: http://github.com/edx/edx-lint +# 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 @@ -24,7 +28,7 @@ # CENTRAL CHANGE: # # 1. Edit the pylintrc file in the edx-lint repo at -# https://github.com/edx/edx-lint/blob/master/edx_lint/files/pylintrc +# https://github.com/openedx/edx-lint/blob/master/edx_lint/files/pylintrc # # 2. install the updated version of edx-lint (in edx-lint): # @@ -32,19 +36,16 @@ # # 3. Run (in edx-lint): # -# # uses pylintrc_tweaks from edx-lint for linting in edx-lint -# # NOTE: Use Python 3.x, which no longer includes comments in the output file # $ 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 by -# creating a new tag in the repo (uses pbr). +# 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: # -# # uses local pylintrc_tweaks # $ edx_lint write pylintrc # # 7. This will modify the local file. Submit a pull request to get it @@ -63,6 +64,8 @@ # SERIOUSLY. # # ------------------------------ +# Generated by edx-lint version: 5.2.5 +# ------------------------------ [MASTER] ignore = persistent = yes @@ -73,136 +76,120 @@ enable = blacklisted-name, line-too-long, - syntax-error, - init-is-generator, - return-in-init, - function-redefined, - not-in-loop, - return-outside-function, - yield-outside-function, - return-arg-in-generator, - nonexistent-operator, - duplicate-argument-name, abstract-class-instantiated, - bad-reversed-sequence, - continue-in-finally, - method-hidden, + abstract-method, access-member-before-definition, - no-method-argument, - no-self-argument, - invalid-slots-object, + anomalous-backslash-in-string, + anomalous-unicode-escape-in-string, + arguments-differ, + assert-on-tuple, assigning-non-slot, - invalid-slots, - inherit-non-class, - inconsistent-mro, + 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, - non-iterator-returned, - unexpected-special-method-signature, - invalid-length-returned, + duplicate-except, + duplicate-key, + expression-not-assigned, + format-combined-specification, + format-needs-mapping, + function-redefined, + global-variable-undefined, import-error, - used-before-assignment, - undefined-variable, - undefined-all-variable, + import-self, + inconsistent-mro, + inherit-non-class, + init-is-generator, invalid-all-object, - no-name-in-module, - unbalance-tuple-unpacking, - unpacking-non-sequence, - bad-except-order, - raising-bad-type, - misplaced-bare-raise, - raising-non-exception, - nonimplemented-raised, - catching-non-exception, - slots-on-old-class, - super-on-old-class, - bad-super-call, - missing-super-argument, - no-member, - not-callable, - assignment-from-no-return, - no-value-for-parameter, - too-many-function-args, - unexpected-keyword-arg, - redundant-keyword-arg, + invalid-format-index, + invalid-length-returned, invalid-sequence-index, invalid-slice-index, - assignment-from-none, - not-context-manager, + invalid-slots-object, + invalid-slots, invalid-unary-operand-type, - unsupported-binary-operation, - repeated-keyword, - not-an-iterable, - not-a-mapping, - unsupported-membership-test, - unsubscriptable-object, - logging-unsupported-format, - logging-too-many-args, logging-too-few-args, - bad-format-character, - truncated-format-string, - mixed-fomat-string, - format-needs-mapping, + 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, - too-many-format-args, - too-few-format-args, - bad-str-strip-call, - model-unicode-not-callable, - super-method-not-called, + no-member, + no-method-argument, + no-name-in-module, + no-self-argument, + no-value-for-parameter, + non-iterator-returned, non-parent-method-called, - test-inherits-tests, - translation-of-non-string, - redefined-variable-type, - cyclical-import, - unreachable, - dangerous-default-value, + nonexistent-operator, + not-a-mapping, + not-an-iterable, + not-callable, + not-context-manager, + not-in-loop, pointless-statement, pointless-string-statement, - expression-not-assigned, - duplicate-key, - confusing-with-statement, - using-constant-test, - lost-exception, - assert-on-tuple, - attribute-defined-outside-init, - bad-staticmethod-argument, - arguments-differ, + 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, - abstract-method, super-init-not-called, - relative-import, - import-self, - misplaced-future, - invalid-encoded-data, - global-variable-undefined, - redefined-outer-name, - redefined-builtin, - redefined-in-handler, + super-method-not-called, + syntax-error, + test-inherits-tests, + too-few-format-args, + too-many-format-args, + too-many-function-args, + translation-of-non-string, + truncated-format-string, + undefined-all-variable, undefined-loop-variable, - cell-var-from-loop, - duplicate-except, - nonstandard-exception, - binary-op-exception, - property-on-old-class, - bad-format-string-key, - unused-format-string-key, - bad-format-string, - missing-format-argument-key, + 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, - format-combined-specification, - missing-format-attribute, - invalid-format-index, - anomalous-backslash-in-string, - anomalous-unicode-escape-in-string, - bad-open-mode, - boolean-datetime, + unused-format-string-key, + used-before-assignment, + using-constant-test, + yield-outside-function, - fatal, astroid-error, - parse-error, + fatal, method-check-failed, - django-not-available, + parse-error, raw-checker-failed, - django-not-available-placeholder, empty-docstring, invalid-characters-in-docstring, @@ -210,133 +197,76 @@ enable = wrong-spelling-in-comment, wrong-spelling-in-docstring, + unused-argument, unused-import, unused-variable, - unused-argument, - exec-used, eval-used, + exec-used, bad-classmethod-argument, bad-mcs-classmethod-argument, bad-mcs-method-argument, - bad-whitespace, + bare-except, + broad-except, consider-iterating-dictionary, consider-using-enumerate, + global-at-module-level, + global-variable-not-assigned, literal-used-as-attribute, + logging-format-interpolation, + logging-not-lazy, multiple-imports, multiple-statements, - old-style-class, + no-classmethod-decorator, + no-staticmethod-decorator, + protected-access, + redundant-unittest-assert, + reimported, + simplifiable-if-statement, simplifiable-range, singleton-comparison, superfluous-parens, unidiomatic-typecheck, - unneeded-not, - wrong-assert-type, - simplifiable-if-statement, - no-classmethod-decorator, - no-staticmethod-decorator, - unnecessary-pass, unnecessary-lambda, - useless-else-on-loop, + unnecessary-pass, unnecessary-semicolon, - reimported, - global-variable-not-assigned, - global-at-module-level, - bare-except, - broad-except, - logging-not-lazy, - redundant-unittest-assert, - model-missing-unicode, - model-has-unicode, - model-no-explicit-unicode, - protected-access, + unneeded-not, + useless-else-on-loop, + wrong-assert-type, - deprecated-module, deprecated-method, + deprecated-module, + too-many-boolean-expressions, too-many-nested-blocks, too-many-statements, - too-many-boolean-expressions, + wildcard-import, wrong-import-order, wrong-import-position, - wildcard-import, missing-final-newline, mixed-line-endings, trailing-newlines, trailing-whitespace, unexpected-line-ending-format, - mixed-indentation, + bad-inline-option, bad-option-value, + deprecated-pragma, unrecognized-inline-option, useless-suppression, - bad-inline-option, - deprecated-pragma, disable = - bad-continuation, - invalid-name, - misplaced-comparison-constant, - file-ignored, bad-indentation, - lowercase-l-suffix, - unused-wildcard-import, - global-statement, - no-else-return, - - apply-builtin, - backtick, - basestring-builtin, - buffer-builtin, - cmp-builtin, - cmp-method, - coerce-builtin, - coerce-method, - delslice-method, - dict-iter-method, - dict-view-method, + consider-using-f-string, duplicate-code, - execfile-builtin, - feature-toggle-needs-doc, - file-builtin, - filter-builtin-not-iterating, + file-ignored, fixme, - getslice-method, - hex-method, - illegal-waffle-usage, - import-star-module-level, - indexing-exception, - input-builtin, - intern-builtin, + global-statement, + invalid-name, locally-disabled, - locally-enabled, - logging-format-interpolation, - long-builtin, - long-suffix, - map-builtin-not-iterating, - metaclass-assignment, - next-method-called, - no-absolute-import, - no-init, - no-self-use, - nonzero-method, - oct-method, - old-division, - old-ne-operator, - old-octal-literal, - old-raise-syntax, - parameter-unpacking, - print-statement, - raising-string, - range-builtin-not-iterating, - raw_input-builtin, - reduce-builtin, - reload-builtin, - round-builtin, - setslice-method, - standarderror-builtin, + no-else-return, suppressed-message, too-few-public-methods, too-many-ancestors, @@ -348,21 +278,21 @@ disable = too-many-public-methods, too-many-return-statements, ungrouped-imports, - unichr-builtin, - unicode-builtin, - unpacking-in-except, - using-cmp-argument, - xrange-builtin, - zip-builtin-not-iterating, + unspecified-encoding, + unused-wildcard-import, + use-maxsplit-arg, + + feature-toggle-needs-doc, + illegal-waffle-usage, + + logging-fstring-interpolation, [REPORTS] output-format = text -files-output = no reports = no -evaluation = 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) +score = no [BASIC] -bad-functions = map,filter,apply,input 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]+$ @@ -382,7 +312,6 @@ docstring-min-length = 5 max-line-length = 120 ignore-long-lines = ^\s*(# )?((?)|(\.\. \w+: .*))$ single-line-if-stmt = no -no-space-check = trailing-comma,dict-separator max-module-lines = 1000 indent-string = ' ' @@ -453,4 +382,4 @@ int-import-graph = [EXCEPTIONS] overgeneral-exceptions = Exception -# d784746e5ebe9eb66794d942ded84799d4f7f2fa +# 54daa2b24c4b5341a45cdb4727fe15d05ef04c5f From b6e7e2b0df2c5fc92bc9711bf2f608f9930be4ff Mon Sep 17 00:00:00 2001 From: Sarina Canelake Date: Sat, 10 Sep 2022 15:56:48 -0400 Subject: [PATCH 21/55] fix: fix github url strings (org edx -> openedx) --- CONTRIBUTING.rst | 2 +- README.rst | 6 +++--- setup.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 10b3156f..e06ffb5a 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -3,7 +3,7 @@ How To Contribute Contributions are very welcome. -Please read `How To Contribute `_ for details. +Please read `How To Contribute `_ for details. Even though it was written with ``edx-platform`` in mind, the guidelines should be followed for Open edX code in general. diff --git a/README.rst b/README.rst index 6df35cef..91acaaad 100644 --- a/README.rst +++ b/README.rst @@ -2,8 +2,8 @@ Part of `edX code`__. __ http://code.edx.org/ -.. image:: https://github.com/edx/edx-submissions/workflows/Python%20CI/badge.svg?branch=master - :target: https://github.com/edx/edx-submissions/actions?query=workflow%3A%22Python+CI%22 +.. image:: https://github.com/openedx/edx-submissions/workflows/Python%20CI/badge.svg?branch=master + :target: https://github.com/openedx/edx-submissions/actions?query=workflow%3A%22Python+CI%22 :alt: Build status .. image:: https://coveralls.io/repos/edx/edx-submissions/badge.png?branch=master @@ -65,7 +65,7 @@ How To Contribute Contributions are very welcome. -Please read `How To Contribute `_ for details. +Please read `How To Contribute `_ for details. Even though it was written with ``edx-platform`` in mind, the guidelines should be followed for Open edX code in general. diff --git a/setup.py b/setup.py index 8436a9ed..7c81bf57 100644 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ def get_version(*file_paths): author='edX', description='An API for creating submissions and scores.', long_description="An API for creating and scoring submissions for the Open edX platform", - url='http://github.com/edx/edx-submissions.git', + url='http://github.com/openedx/edx-submissions.git', license='AGPL', classifiers=[ 'Development Status :: 3 - Alpha', From 9b8d841baad596cc4d9677ca2836a62bafac61ae Mon Sep 17 00:00:00 2001 From: Sarina Canelake Date: Sat, 10 Sep 2022 17:44:14 -0400 Subject: [PATCH 22/55] fix: update path to .github workflows to read from openedx org --- .github/workflows/commitlint.yml | 2 +- .github/workflows/upgrade-python-requirements.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index e2b06615..fec11d6c 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -7,4 +7,4 @@ on: jobs: commitlint: - uses: edx/.github/.github/workflows/commitlint.yml@master + uses: openedx/.github/.github/workflows/commitlint.yml@master diff --git a/.github/workflows/upgrade-python-requirements.yml b/.github/workflows/upgrade-python-requirements.yml index 834352d7..2421f1e0 100644 --- a/.github/workflows/upgrade-python-requirements.yml +++ b/.github/workflows/upgrade-python-requirements.yml @@ -12,7 +12,7 @@ on: jobs: call-upgrade-python-requirements-workflow: - uses: edx/.github/.github/workflows/upgrade-python-requirements.yml@master + uses: openedx/.github/.github/workflows/upgrade-python-requirements.yml@master with: branch: ${{ github.event.inputs.branch || 'master' }} # optional parameters below; fill in if you'd like github or email notifications From 782143617106f4b73f803802230f9d5c13d5c841 Mon Sep 17 00:00:00 2001 From: Jansen Kantor Date: Tue, 21 Feb 2023 12:37:22 -0500 Subject: [PATCH 23/55] fix: add common-constraints to docs requirements (#186) * fix: add common-contraints to docs requirements * Python Requirements Update (#187) * chore: Updating Python Requirements * style: fix new lint errors * fixup! style: fix new lint errors --------- Co-authored-by: jansenk --------- Co-authored-by: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com> --- requirements/base.txt | 14 ++--- requirements/ci.txt | 39 ++++++------ requirements/dev.txt | 111 +++++++++++++++++---------------- requirements/docs.in | 7 ++- requirements/docs.txt | 48 +++++++------- requirements/pip-tools.txt | 18 +++--- requirements/pip.txt | 6 +- requirements/test.txt | 103 +++++++++++++++--------------- requirements/tox.txt | 28 ++++----- submissions/api.py | 17 +++-- submissions/models.py | 60 +++++++++--------- submissions/team_api.py | 16 +++-- submissions/tests/factories.py | 6 +- submissions/tests/test_api.py | 38 +++++------ submissions/views.py | 12 ++-- 15 files changed, 259 insertions(+), 264 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 0e44b6f6..b72138a5 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,27 +1,27 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -asgiref==3.5.2 +asgiref==3.6.0 # via django -django==3.2.14 +django==3.2.18 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.2.0 +django-model-utils==4.3.1 # via -r requirements/base.in djangorestframework==3.12.4 # via -r requirements/base.in jsonfield==3.1.0 # via -r requirements/base.in -pytz==2022.1 +pytz==2022.7.1 # via # -r requirements/base.in # django -sqlparse==0.4.2 +sqlparse==0.4.3 # via django diff --git a/requirements/ci.txt b/requirements/ci.txt index 3a8d3db6..a1245e3e 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,35 +1,35 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -certifi==2022.6.15 +certifi==2022.12.7 # via requests -charset-normalizer==2.1.0 +charset-normalizer==3.0.1 # via requests -coverage==6.4.2 +coverage==6.5.0 # via coveralls coveralls==3.3.1 # via -r requirements/ci.in -distlib==0.3.4 +distlib==0.3.6 # via # -r requirements/tox.txt # virtualenv docopt==0.6.2 # via coveralls -filelock==3.7.1 +filelock==3.9.0 # via # -r requirements/tox.txt # tox # virtualenv -idna==3.3 +idna==3.4 # via requests -packaging==21.3 +packaging==23.0 # via # -r requirements/tox.txt # tox -platformdirs==2.5.2 +platformdirs==3.0.0 # via # -r requirements/tox.txt # virtualenv @@ -41,26 +41,23 @@ py==1.11.0 # via # -r requirements/tox.txt # tox -pyparsing==3.0.9 - # via - # -r requirements/tox.txt - # packaging -requests==2.28.1 +requests==2.28.2 # via coveralls six==1.16.0 # via # -r requirements/tox.txt # tox - # virtualenv -toml==0.10.2 +tomli==2.0.1 # via # -r requirements/tox.txt # tox -tox==3.25.1 - # via -r requirements/tox.txt -urllib3==1.26.10 +tox==3.28.0 + # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -r requirements/tox.txt +urllib3==1.26.14 # via requests -virtualenv==20.15.1 +virtualenv==20.19.0 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 1db2100f..e2e0e67e 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,39 +1,39 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -alabaster==0.7.12 +alabaster==0.7.13 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx -asgiref==3.5.2 +asgiref==3.6.0 # via # -r requirements/base.txt # -r requirements/test.txt # django -astroid==2.11.7 +astroid==2.14.2 # via # -r requirements/test.txt # pylint # pylint-celery -attrs==21.4.0 +attrs==22.2.0 # via # -r requirements/test.txt # pytest -babel==2.10.3 +babel==2.11.0 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx -certifi==2022.6.15 +certifi==2022.12.7 # via # -r requirements/docs.txt # -r requirements/test.txt # requests -charset-normalizer==2.1.0 +charset-normalizer==3.0.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -52,17 +52,17 @@ code-annotations==1.3.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==6.4.2 +coverage[toml]==7.1.0 # via # -r requirements/test.txt # pytest-cov -ddt==1.5.0 +ddt==1.6.0 # via -r requirements/test.txt -dill==0.3.5.1 +dill==0.3.6 # via # -r requirements/test.txt # pylint -django==3.2.14 +django==3.2.18 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -70,7 +70,7 @@ django==3.2.14 # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.2.0 +django-model-utils==4.3.1 # via # -r requirements/base.txt # -r requirements/test.txt @@ -78,23 +78,27 @@ djangorestframework==3.12.4 # via # -r requirements/base.txt # -r requirements/test.txt -docutils==0.17.1 +docutils==0.18.1 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx # sphinx-rtd-theme -edx-lint==5.2.4 +edx-lint==5.3.2 # via -r requirements/test.txt +exceptiongroup==1.1.0 + # via + # -r requirements/test.txt + # pytest factory-boy==3.2.1 # via -r requirements/test.txt -faker==13.15.0 +faker==17.0.0 # via # -r requirements/test.txt # factory-boy -freezegun==1.2.1 +freezegun==1.2.2 # via -r requirements/test.txt -idna==3.3 +idna==3.4 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -104,16 +108,16 @@ imagesize==1.4.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -importlib-metadata==4.12.0 +importlib-metadata==6.0.0 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx -iniconfig==1.1.1 +iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -isort==5.10.1 +isort==5.12.0 # via # -r requirements/test.txt # pylint @@ -127,11 +131,11 @@ jsonfield==3.1.0 # via # -r requirements/base.txt # -r requirements/test.txt -lazy-object-proxy==1.7.1 +lazy-object-proxy==1.9.0 # via # -r requirements/test.txt # astroid -markupsafe==2.1.1 +markupsafe==2.1.2 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -140,19 +144,19 @@ mccabe==0.7.0 # via # -r requirements/test.txt # pylint -mock==4.0.3 +mock==5.0.1 # via -r requirements/test.txt -packaging==21.3 +packaging==23.0 # via # -r requirements/docs.txt # -r requirements/test.txt # pytest # sphinx -pbr==5.9.0 +pbr==5.11.1 # via # -r requirements/test.txt # stevedore -platformdirs==2.5.2 +platformdirs==3.0.0 # via # -r requirements/test.txt # pylint @@ -165,18 +169,14 @@ pockets==0.9.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinxcontrib-napoleon -py==1.11.0 - # via - # -r requirements/test.txt - # pytest -pycodestyle==2.8.0 +pycodestyle==2.10.0 # via -r requirements/test.txt -pygments==2.12.0 +pygments==2.14.0 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx -pylint==2.14.4 +pylint==2.16.2 # via # -r requirements/test.txt # edx-lint @@ -196,17 +196,12 @@ pylint-plugin-utils==0.7 # -r requirements/test.txt # pylint-celery # pylint-django -pyparsing==3.0.9 - # via - # -r requirements/docs.txt - # -r requirements/test.txt - # packaging -pytest==7.1.2 +pytest==7.2.1 # via # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==3.0.0 +pytest-cov==4.0.0 # via -r requirements/test.txt pytest-django==4.5.2 # via -r requirements/test.txt @@ -215,11 +210,11 @@ python-dateutil==2.8.2 # -r requirements/test.txt # faker # freezegun -python-slugify==6.1.2 +python-slugify==8.0.0 # via # -r requirements/test.txt # code-annotations -pytz==2022.1 +pytz==2022.7.1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -230,7 +225,7 @@ pyyaml==6.0 # via # -r requirements/test.txt # code-annotations -requests==2.28.1 +requests==2.28.2 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -248,16 +243,17 @@ snowballstemmer==2.2.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sphinx==5.0.2 +sphinx==5.3.0 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/docs.txt # -r requirements/test.txt # sphinx-rtd-theme -sphinx-rtd-theme==1.0.0 +sphinx-rtd-theme==1.2.0 # via # -r requirements/docs.txt # -r requirements/test.txt -sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-applehelp==1.0.4 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -267,11 +263,16 @@ sphinxcontrib-devhelp==1.0.2 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sphinxcontrib-htmlhelp==2.0.0 +sphinxcontrib-htmlhelp==2.0.1 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx +sphinxcontrib-jquery==2.0.0 + # via + # -r requirements/docs.txt + # -r requirements/test.txt + # sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 # via # -r requirements/docs.txt @@ -291,12 +292,12 @@ sphinxcontrib-serializinghtml==1.1.5 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sqlparse==0.4.2 +sqlparse==0.4.3 # via # -r requirements/base.txt # -r requirements/test.txt # django -stevedore==4.0.0 +stevedore==5.0.0 # via # -r requirements/test.txt # code-annotations @@ -310,16 +311,16 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.1 +tomlkit==0.11.6 # via # -r requirements/test.txt # pylint -typing-extensions==4.3.0 +typing-extensions==4.5.0 # via # -r requirements/test.txt # astroid # pylint -urllib3==1.26.10 +urllib3==1.26.14 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -328,7 +329,7 @@ wrapt==1.14.1 # via # -r requirements/test.txt # astroid -zipp==3.8.1 +zipp==3.14.0 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.in b/requirements/docs.in index 8d985a75..e099d508 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -1,5 +1,6 @@ # Requirements for docs +-c constraints.txt -Sphinx>=1.2 -sphinx-rtd-theme>=0.1.5 -sphinxcontrib-napoleon>=0.2.3 +Sphinx +sphinx-rtd-theme +sphinxcontrib-napoleon diff --git a/requirements/docs.txt b/requirements/docs.txt index f67f6c9d..071369da 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,42 +1,40 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -alabaster==0.7.12 +alabaster==0.7.13 # via sphinx -babel==2.10.3 +babel==2.11.0 # via sphinx -certifi==2022.6.15 +certifi==2022.12.7 # via requests -charset-normalizer==2.1.0 +charset-normalizer==3.0.1 # via requests -docutils==0.17.1 +docutils==0.18.1 # via # sphinx # sphinx-rtd-theme -idna==3.3 +idna==3.4 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==4.12.0 +importlib-metadata==6.0.0 # via sphinx jinja2==3.1.2 # via sphinx -markupsafe==2.1.1 +markupsafe==2.1.2 # via jinja2 -packaging==21.3 +packaging==23.0 # via sphinx pockets==0.9.1 # via sphinxcontrib-napoleon -pygments==2.12.0 +pygments==2.14.0 # via sphinx -pyparsing==3.0.9 - # via packaging -pytz==2022.1 +pytz==2022.7.1 # via babel -requests==2.28.1 +requests==2.28.2 # via sphinx six==1.16.0 # via @@ -44,18 +42,21 @@ six==1.16.0 # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via sphinx -sphinx==5.0.2 +sphinx==5.3.0 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/docs.in # sphinx-rtd-theme -sphinx-rtd-theme==1.0.0 +sphinx-rtd-theme==1.2.0 # via -r requirements/docs.in -sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx -sphinxcontrib-htmlhelp==2.0.0 +sphinxcontrib-htmlhelp==2.0.1 # via sphinx +sphinxcontrib-jquery==2.0.0 + # via sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-napoleon==0.7 @@ -64,7 +65,10 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -urllib3==1.26.10 +urllib3==1.26.14 # via requests -zipp==3.8.1 +zipp==3.14.0 # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index f49a9d41..f1cd5e95 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,23 +4,19 @@ # # make upgrade # -build==0.8.0 +build==0.10.0 # via pip-tools click==8.1.3 # via pip-tools -packaging==21.3 +packaging==23.0 # via build -pep517==0.12.0 - # via build -pip-tools==6.8.0 +pip-tools==6.12.2 # via -r requirements/pip-tools.in -pyparsing==3.0.9 - # via packaging +pyproject-hooks==1.0.0 + # via build tomli==2.0.1 - # via - # build - # pep517 -wheel==0.37.1 + # via build +wheel==0.38.4 # 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 16c2b5fe..475e9bae 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.37.1 +wheel==0.38.4 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==22.1.2 +pip==23.0.1 # via -r requirements/pip.in -setuptools==63.1.0 +setuptools==67.3.3 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 4208d72e..9a73a748 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,32 +1,32 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -alabaster==0.7.12 +alabaster==0.7.13 # via # -r requirements/docs.txt # sphinx -asgiref==3.5.2 +asgiref==3.6.0 # via # -r requirements/base.txt # django -astroid==2.11.7 +astroid==2.14.2 # via # pylint # pylint-celery -attrs==21.4.0 +attrs==22.2.0 # via pytest -babel==2.10.3 +babel==2.11.0 # via # -r requirements/docs.txt # sphinx -certifi==2022.6.15 +certifi==2022.12.7 # via # -r requirements/docs.txt # requests -charset-normalizer==2.1.0 +charset-normalizer==3.0.1 # via # -r requirements/docs.txt # requests @@ -39,11 +39,11 @@ click-log==0.4.0 # via edx-lint code-annotations==1.3.0 # via edx-lint -coverage[toml]==6.4.2 +coverage[toml]==7.1.0 # via pytest-cov -ddt==1.5.0 +ddt==1.6.0 # via -r requirements/test.in -dill==0.3.5.1 +dill==0.3.6 # via pylint # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt @@ -51,23 +51,25 @@ dill==0.3.5.1 # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.2.0 +django-model-utils==4.3.1 # via -r requirements/base.txt # via -r requirements/base.txt -docutils==0.17.1 +docutils==0.18.1 # via # -r requirements/docs.txt # sphinx # sphinx-rtd-theme -edx-lint==5.2.4 +edx-lint==5.3.2 # via -r requirements/test.in +exceptiongroup==1.1.0 + # via pytest factory-boy==3.2.1 # via -r requirements/test.in -faker==13.15.0 +faker==17.0.0 # via factory-boy -freezegun==1.2.1 +freezegun==1.2.2 # via -r requirements/test.in -idna==3.3 +idna==3.4 # via # -r requirements/docs.txt # requests @@ -75,13 +77,13 @@ imagesize==1.4.1 # via # -r requirements/docs.txt # sphinx -importlib-metadata==4.12.0 +importlib-metadata==6.0.0 # via # -r requirements/docs.txt # sphinx -iniconfig==1.1.1 +iniconfig==2.0.0 # via pytest -isort==5.10.1 +isort==5.12.0 # via # -r requirements/test.in # pylint @@ -92,24 +94,24 @@ jinja2==3.1.2 # sphinx jsonfield==3.1.0 # via -r requirements/base.txt -lazy-object-proxy==1.7.1 +lazy-object-proxy==1.9.0 # via astroid -markupsafe==2.1.1 +markupsafe==2.1.2 # via # -r requirements/docs.txt # jinja2 mccabe==0.7.0 # via pylint -mock==4.0.3 +mock==5.0.1 # via -r requirements/test.in -packaging==21.3 +packaging==23.0 # via # -r requirements/docs.txt # pytest # sphinx -pbr==5.9.0 +pbr==5.11.1 # via stevedore -platformdirs==2.5.2 +platformdirs==3.0.0 # via pylint pluggy==1.0.0 # via pytest @@ -117,15 +119,13 @@ pockets==0.9.1 # via # -r requirements/docs.txt # sphinxcontrib-napoleon -py==1.11.0 - # via pytest -pycodestyle==2.8.0 +pycodestyle==2.10.0 # via -r requirements/test.in -pygments==2.12.0 +pygments==2.14.0 # via # -r requirements/docs.txt # sphinx -pylint==2.14.4 +pylint==2.16.2 # via # edx-lint # pylint-celery @@ -139,15 +139,11 @@ pylint-plugin-utils==0.7 # via # pylint-celery # pylint-django -pyparsing==3.0.9 - # via - # -r requirements/docs.txt - # packaging -pytest==7.1.2 +pytest==7.2.1 # via # pytest-cov # pytest-django -pytest-cov==3.0.0 +pytest-cov==4.0.0 # via -r requirements/test.in pytest-django==4.5.2 # via -r requirements/test.in @@ -156,9 +152,9 @@ python-dateutil==2.8.2 # -r requirements/test.in # faker # freezegun -python-slugify==6.1.2 +python-slugify==8.0.0 # via code-annotations -pytz==2022.1 +pytz==2022.7.1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -166,7 +162,7 @@ pytz==2022.1 # django pyyaml==6.0 # via code-annotations -requests==2.28.1 +requests==2.28.2 # via # -r requirements/docs.txt # sphinx @@ -181,13 +177,14 @@ snowballstemmer==2.2.0 # via # -r requirements/docs.txt # sphinx -sphinx==5.0.2 +sphinx==5.3.0 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/docs.txt # sphinx-rtd-theme -sphinx-rtd-theme==1.0.0 +sphinx-rtd-theme==1.2.0 # via -r requirements/docs.txt -sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-applehelp==1.0.4 # via # -r requirements/docs.txt # sphinx @@ -195,10 +192,14 @@ sphinxcontrib-devhelp==1.0.2 # via # -r requirements/docs.txt # sphinx -sphinxcontrib-htmlhelp==2.0.0 +sphinxcontrib-htmlhelp==2.0.1 # via # -r requirements/docs.txt # sphinx +sphinxcontrib-jquery==2.0.0 + # via + # -r requirements/docs.txt + # sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 # via # -r requirements/docs.txt @@ -213,11 +214,11 @@ sphinxcontrib-serializinghtml==1.1.5 # via # -r requirements/docs.txt # sphinx -sqlparse==0.4.2 +sqlparse==0.4.3 # via # -r requirements/base.txt # django -stevedore==4.0.0 +stevedore==5.0.0 # via code-annotations text-unidecode==1.3 # via python-slugify @@ -226,19 +227,19 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.1 +tomlkit==0.11.6 # via pylint -typing-extensions==4.3.0 +typing-extensions==4.5.0 # via # astroid # pylint -urllib3==1.26.10 +urllib3==1.26.14 # via # -r requirements/docs.txt # requests wrapt==1.14.1 # via astroid -zipp==3.8.1 +zipp==3.14.0 # via # -r requirements/docs.txt # importlib-metadata diff --git a/requirements/tox.txt b/requirements/tox.txt index f1bb9259..a676d8fe 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -1,32 +1,30 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -distlib==0.3.4 +distlib==0.3.6 # via virtualenv -filelock==3.7.1 +filelock==3.9.0 # via # tox # virtualenv -packaging==21.3 +packaging==23.0 # via tox -platformdirs==2.5.2 +platformdirs==3.0.0 # via virtualenv pluggy==1.0.0 # via tox py==1.11.0 # via tox -pyparsing==3.0.9 - # via packaging six==1.16.0 - # via - # tox - # virtualenv -toml==0.10.2 # via tox -tox==3.25.1 - # via -r requirements/tox.in -virtualenv==20.15.1 +tomli==2.0.1 + # via tox +tox==3.28.0 + # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -r requirements/tox.in +virtualenv==20.19.0 # via tox diff --git a/submissions/api.py b/submissions/api.py index b836d866..0f89a34b 100644 --- a/submissions/api.py +++ b/submissions/api.py @@ -794,15 +794,14 @@ def reset_score(student_id, course_id, item_id, clear_state=False, emit_signal=T ) logger.exception(msg) raise SubmissionInternalError(msg) from error - else: - logger.info( - "Score reset for item %(item_id)s in course %(course_id)s for student %(student_id)s", - { - 'item_id': item_id, - 'course_id': course_id, - 'student_id': student_id, - } - ) + logger.info( + "Score reset for item %(item_id)s in course %(course_id)s for student %(student_id)s", + { + 'item_id': item_id, + 'course_id': course_id, + 'student_id': student_id, + } + ) def set_score(submission_uuid, points_earned, points_possible, diff --git a/submissions/models.py b/submissions/models.py index 3c7a163d..57d1d3b0 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -74,12 +74,12 @@ def __repr__(self): @property def student_item_dict(self): - return dict( - student_id=self.student_id, - course_id=self.course_id, - item_id=self.item_id, - item_type=self.item_type, - ) + return { + "student_id": self.student_id, + "course_id": self.course_id, + "item_id": self.item_id, + "item_type": self.item_type, + } def __str__(self): return ( @@ -179,7 +179,7 @@ def get_team_submission_by_course_item_team(course_id, item_id, team_id): - TeamSubmissionInternalError if there is some other error looking up the team submission. """ - model_query_params = dict(course_id=course_id, item_id=item_id, team_id=team_id) + model_query_params = {"course_id": course_id, "item_id": item_id, "team_id": team_id} query_params_string = "course_id={course_id} item_id={item_id} team_id={team_id}".format(**model_query_params) try: # In the equivalent non-teams api call, we're filtering on student item and then getting first(), @@ -254,14 +254,14 @@ def get_all_team_submissions_for_course_item(course_id, item_id): raise TeamSubmissionInternalError(err_msg) from exc def __repr__(self): - return repr(dict( - uuid=self.uuid, - submitted_by=self.submitted_by, - attempt_number=self.attempt_number, - submitted_at=self.submitted_at, - created=self.created, - modified=self.modified, - )) + return repr({ + "uuid": self.uuid, + "submitted_by": self.submitted_by, + "attempt_number": self.attempt_number, + "submitted_at": self.submitted_at, + "created": self.created, + "modified": self.modified, + }) def __str__(self): return f"Team Submission {self.uuid}" @@ -345,14 +345,14 @@ def get_cache_key(sub_uuid): return f"submissions.submission.{sub_uuid}" def __repr__(self): - return repr(dict( - uuid=self.uuid, - student_item=self.student_item, - attempt_number=self.attempt_number, - submitted_at=self.submitted_at, - created_at=self.created_at, - answer=self.answer, - )) + return repr({ + "uuid": self.uuid, + "student_item": self.student_item, + "attempt_number": self.attempt_number, + "submitted_at": self.submitted_at, + "created_at": self.created_at, + "answer": self.answer, + }) def __str__(self): return f"Submission {self.uuid}" @@ -414,13 +414,13 @@ def to_float(self): return float(self.points_earned) / self.points_possible def __repr__(self): - return repr(dict( - student_item=self.student_item, - submission=self.submission, - created_at=self.created_at, - points_earned=self.points_earned, - points_possible=self.points_possible, - )) + return repr({ + "student_item": self.student_item, + "submission": self.submission, + "created_at": self.created_at, + "points_earned": self.points_earned, + "points_possible": self.points_possible, + }) def is_hidden(self): """ diff --git a/submissions/team_api.py b/submissions/team_api.py index 9a4efa7c..cbd7a419 100644 --- a/submissions/team_api.py +++ b/submissions/team_api.py @@ -179,8 +179,7 @@ def create_submission_for_team( str(exc) ) raise exc - else: - logger.info("[%s] Created individual submission %s", log_string, individual_submission['uuid']) + logger.info("[%s] Created individual submission %s", log_string, individual_submission['uuid']) model_kwargs = { "answer": answer, @@ -451,10 +450,9 @@ def reset_scores(team_submission_uuid, clear_state=False): ) logger.exception(msg) raise TeamSubmissionInternalError(msg) from error - else: - logger.info( - "Score reset for team submission %(team_submission_uuid)s", - { - 'team_submission_uuid': team_submission_uuid, - } - ) + logger.info( + "Score reset for team submission %(team_submission_uuid)s", + { + 'team_submission_uuid': team_submission_uuid, + } + ) diff --git a/submissions/tests/factories.py b/submissions/tests/factories.py index 9bd6a9ff..43c63a6e 100644 --- a/submissions/tests/factories.py +++ b/submissions/tests/factories.py @@ -21,10 +21,10 @@ class Meta: _DEFAULT_PASSWORD = 'test' - username = factory.Sequence('robot{}'.format) # pylint: disable=consider-using-f-string - email = factory.Sequence('robot+test+{}@edx.org'.format) # pylint: disable=consider-using-f-string + username = factory.Sequence('robot{}'.format) + email = factory.Sequence('robot+test+{}@edx.org'.format) password = factory.PostGenerationMethodCall('set_password', _DEFAULT_PASSWORD) - first_name = factory.Sequence('Robot{}'.format) # pylint: disable=consider-using-f-string + first_name = factory.Sequence('Robot{}'.format) last_name = 'Test' is_staff = False is_active = True diff --git a/submissions/tests/test_api.py b/submissions/tests/test_api.py index b0da78f5..c5049d0f 100644 --- a/submissions/tests/test_api.py +++ b/submissions/tests/test_api.py @@ -18,19 +18,19 @@ from submissions.models import ScoreAnnotation, ScoreSummary, StudentItem, Submission, score_set from submissions.serializers import StudentItemSerializer -STUDENT_ITEM = dict( - student_id="Tim", - course_id="Demo_Course", - item_id="item_one", - item_type="Peer_Submission", -) - -SECOND_STUDENT_ITEM = dict( - student_id="Alice", - course_id="Demo_Course", - item_id="item_one", - item_type="Peer_Submission", -) +STUDENT_ITEM = { + "student_id": "Tim", + "course_id": "Demo_Course", + "item_id": "item_one", + "item_type": "Peer_Submission", +} + +SECOND_STUDENT_ITEM = { + "student_id": "Alice", + "course_id": "Demo_Course", + "item_id": "item_one", + "item_type": "Peer_Submission", +} ANSWER_ONE = "this is my answer!" ANSWER_TWO = "this is my other answer!" @@ -761,12 +761,12 @@ def test_get_student_ids_by_submission_uuid(self): def submit(course_id, item_id, student_ids): result_dict = {} for student_id in student_ids: - student_item = dict( - course_id=course_id, - item_id=item_id, - student_id=student_id, - item_type='test_get_student_ids_by_submission_uuid' - ) + student_item = { + "course_id": course_id, + "item_id": item_id, + "student_id": student_id, + "item_type": 'test_get_student_ids_by_submission_uuid' + } submission_uuid = api.create_submission(student_item, ANSWER_ONE)['uuid'] result_dict[submission_uuid] = student_id return result_dict diff --git a/submissions/views.py b/submissions/views.py index d9b1c16c..69e03a41 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -30,12 +30,12 @@ def get_submissions_for_student_item(request, course_id, student_id, item_id): student item. """ - student_item_dict = dict( - course_id=course_id, - student_id=student_id, - item_id=item_id, - ) - context = dict(**student_item_dict) + student_item_dict = { + "course_id": course_id, + "student_id": student_id, + "item_id": item_id, + } + context = {**student_item_dict} try: submissions = get_submissions(student_item_dict) context["submissions"] = submissions From 9b6fb404b759a68e6256e319b61253400c56500f Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Thu, 23 Feb 2023 15:30:50 -0500 Subject: [PATCH 24/55] build: Creating a missing workflow file `self-assign-issue.yml`. The .github/workflows/self-assign-issue.yml workflow is missing or needs an update to stay in sync with the current standard for this workflow as defined in the `.github` repo of the `openedx` GitHub org. --- .github/workflows/self-assign-issue.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/workflows/self-assign-issue.yml diff --git a/.github/workflows/self-assign-issue.yml b/.github/workflows/self-assign-issue.yml new file mode 100644 index 00000000..37522fd5 --- /dev/null +++ b/.github/workflows/self-assign-issue.yml @@ -0,0 +1,12 @@ +# This workflow runs when a comment is made on the ticket +# If the comment starts with "assign me" it assigns the author to the +# ticket (case insensitive) + +name: Assign comment author to ticket if they say "assign me" +on: + issue_comment: + types: [created] + +jobs: + self_assign_by_comment: + uses: openedx/.github/.github/workflows/self-assign-issue.yml@master From a05a8dd2541c23b8df4fd0096bd5e4e8f937f9bf Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Thu, 23 Feb 2023 15:30:50 -0500 Subject: [PATCH 25/55] build: Creating a missing workflow file `add-remove-label-on-comment.yml`. The .github/workflows/add-remove-label-on-comment.yml workflow is missing or needs an update to stay in sync with the current standard for this workflow as defined in the `.github` repo of the `openedx` GitHub org. --- .../workflows/add-remove-label-on-comment.yml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/add-remove-label-on-comment.yml diff --git a/.github/workflows/add-remove-label-on-comment.yml b/.github/workflows/add-remove-label-on-comment.yml new file mode 100644 index 00000000..0f369db7 --- /dev/null +++ b/.github/workflows/add-remove-label-on-comment.yml @@ -0,0 +1,20 @@ +# This workflow runs when a comment is made on the ticket +# If the comment starts with "label: " it tries to apply +# the label indicated in rest of comment. +# If the comment starts with "remove label: ", it tries +# to remove the indicated label. +# Note: Labels are allowed to have spaces and this script does +# not parse spaces (as often a space is legitimate), so the command +# "label: really long lots of words label" will apply the +# label "really long lots of words label" + +name: Allows for the adding and removing of labels via comment + +on: + issue_comment: + types: [created] + +jobs: + add_remove_labels: + uses: openedx/.github/.github/workflows/add-remove-label-on-comment.yml@master + From 09d20e1ed6d2642a724b501f031bcc14bfc490c1 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Thu, 23 Feb 2023 15:30:51 -0500 Subject: [PATCH 26/55] build: Updating a missing workflow file `add-depr-ticket-to-depr-board.yml`. The .github/workflows/add-depr-ticket-to-depr-board.yml workflow is missing or needs an update to stay in sync with the current standard for this workflow as defined in the `.github` repo of the `openedx` GitHub org. --- .github/workflows/add-depr-ticket-to-depr-board.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add-depr-ticket-to-depr-board.yml b/.github/workflows/add-depr-ticket-to-depr-board.yml index 73ca4c5c..250e394a 100644 --- a/.github/workflows/add-depr-ticket-to-depr-board.yml +++ b/.github/workflows/add-depr-ticket-to-depr-board.yml @@ -16,4 +16,4 @@ jobs: secrets: GITHUB_APP_ID: ${{ secrets.GRAPHQL_AUTH_APP_ID }} GITHUB_APP_PRIVATE_KEY: ${{ secrets.GRAPHQL_AUTH_APP_PEM }} - SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }} \ No newline at end of file + SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }} From 7a520e3ac911302e9c8765174960ba7d1d4a3f5e Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Mon, 6 Mar 2023 15:32:05 -0500 Subject: [PATCH 27/55] docs: Remove repo specific CONTRIBUTING.rst We now have a org wide CONTRIBUTING.md that points to our correct general contributing guidelines. We don't need repo specific ones that forward to other contributing docs. --- CONTRIBUTING.rst | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 CONTRIBUTING.rst diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst deleted file mode 100644 index e06ffb5a..00000000 --- a/CONTRIBUTING.rst +++ /dev/null @@ -1,9 +0,0 @@ -How To Contribute -================= - -Contributions are very welcome. - -Please read `How To Contribute `_ for details. - -Even though it was written with ``edx-platform`` in mind, the guidelines -should be followed for Open edX code in general. From a3ff0a0450e7a583a4c70cb6eb79934e80bdf6ff Mon Sep 17 00:00:00 2001 From: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com> Date: Mon, 13 Mar 2023 09:49:20 -0400 Subject: [PATCH 28/55] chore: Updating Python Requirements (#191) --- requirements/ci.txt | 8 ++++---- requirements/dev.txt | 24 ++++++++++++------------ requirements/docs.txt | 8 ++++---- requirements/pip-tools.txt | 6 +++--- requirements/pip.txt | 6 +++--- requirements/test.txt | 24 ++++++++++++------------ requirements/tox.txt | 4 ++-- 7 files changed, 40 insertions(+), 40 deletions(-) diff --git a/requirements/ci.txt b/requirements/ci.txt index a1245e3e..d3ba9d90 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -6,7 +6,7 @@ # certifi==2022.12.7 # via requests -charset-normalizer==3.0.1 +charset-normalizer==3.1.0 # via requests coverage==6.5.0 # via coveralls @@ -29,7 +29,7 @@ packaging==23.0 # via # -r requirements/tox.txt # tox -platformdirs==3.0.0 +platformdirs==3.1.1 # via # -r requirements/tox.txt # virtualenv @@ -55,9 +55,9 @@ tox==3.28.0 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/tox.txt -urllib3==1.26.14 +urllib3==1.26.15 # via requests -virtualenv==20.19.0 +virtualenv==20.20.0 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index e2e0e67e..9f9a5320 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -14,7 +14,7 @@ asgiref==3.6.0 # -r requirements/base.txt # -r requirements/test.txt # django -astroid==2.14.2 +astroid==2.15.0 # via # -r requirements/test.txt # pylint @@ -23,7 +23,7 @@ attrs==22.2.0 # via # -r requirements/test.txt # pytest -babel==2.11.0 +babel==2.12.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -33,7 +33,7 @@ certifi==2022.12.7 # -r requirements/docs.txt # -r requirements/test.txt # requests -charset-normalizer==3.0.1 +charset-normalizer==3.1.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -52,7 +52,7 @@ code-annotations==1.3.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.1.0 +coverage[toml]==7.2.1 # via # -r requirements/test.txt # pytest-cov @@ -92,7 +92,7 @@ exceptiongroup==1.1.0 # pytest factory-boy==3.2.1 # via -r requirements/test.txt -faker==17.0.0 +faker==17.6.0 # via # -r requirements/test.txt # factory-boy @@ -156,7 +156,7 @@ pbr==5.11.1 # via # -r requirements/test.txt # stevedore -platformdirs==3.0.0 +platformdirs==3.1.1 # via # -r requirements/test.txt # pylint @@ -176,7 +176,7 @@ pygments==2.14.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -pylint==2.16.2 +pylint==2.17.0 # via # -r requirements/test.txt # edx-lint @@ -196,7 +196,7 @@ pylint-plugin-utils==0.7 # -r requirements/test.txt # pylint-celery # pylint-django -pytest==7.2.1 +pytest==7.2.2 # via # -r requirements/test.txt # pytest-cov @@ -210,7 +210,7 @@ python-dateutil==2.8.2 # -r requirements/test.txt # faker # freezegun -python-slugify==8.0.0 +python-slugify==8.0.1 # via # -r requirements/test.txt # code-annotations @@ -320,16 +320,16 @@ typing-extensions==4.5.0 # -r requirements/test.txt # astroid # pylint -urllib3==1.26.14 +urllib3==1.26.15 # via # -r requirements/docs.txt # -r requirements/test.txt # requests -wrapt==1.14.1 +wrapt==1.15.0 # via # -r requirements/test.txt # astroid -zipp==3.14.0 +zipp==3.15.0 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 071369da..33ceef62 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -6,11 +6,11 @@ # alabaster==0.7.13 # via sphinx -babel==2.11.0 +babel==2.12.1 # via sphinx certifi==2022.12.7 # via requests -charset-normalizer==3.0.1 +charset-normalizer==3.1.0 # via requests docutils==0.18.1 # via @@ -65,9 +65,9 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -urllib3==1.26.14 +urllib3==1.26.15 # via requests -zipp==3.14.0 +zipp==3.15.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index f1cd5e95..e66f21f2 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # @@ -10,7 +10,7 @@ click==8.1.3 # via pip-tools packaging==23.0 # via build -pip-tools==6.12.2 +pip-tools==6.12.3 # via -r requirements/pip-tools.in pyproject-hooks==1.0.0 # via build diff --git a/requirements/pip.txt b/requirements/pip.txt index 475e9bae..2cbb0e6b 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # @@ -10,5 +10,5 @@ wheel==0.38.4 # The following packages are considered to be unsafe in a requirements file: pip==23.0.1 # via -r requirements/pip.in -setuptools==67.3.3 +setuptools==67.6.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 9a73a748..fc912c6f 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,13 +12,13 @@ asgiref==3.6.0 # via # -r requirements/base.txt # django -astroid==2.14.2 +astroid==2.15.0 # via # pylint # pylint-celery attrs==22.2.0 # via pytest -babel==2.11.0 +babel==2.12.1 # via # -r requirements/docs.txt # sphinx @@ -26,7 +26,7 @@ certifi==2022.12.7 # via # -r requirements/docs.txt # requests -charset-normalizer==3.0.1 +charset-normalizer==3.1.0 # via # -r requirements/docs.txt # requests @@ -39,7 +39,7 @@ click-log==0.4.0 # via edx-lint code-annotations==1.3.0 # via edx-lint -coverage[toml]==7.1.0 +coverage[toml]==7.2.1 # via pytest-cov ddt==1.6.0 # via -r requirements/test.in @@ -65,7 +65,7 @@ exceptiongroup==1.1.0 # via pytest factory-boy==3.2.1 # via -r requirements/test.in -faker==17.0.0 +faker==17.6.0 # via factory-boy freezegun==1.2.2 # via -r requirements/test.in @@ -111,7 +111,7 @@ packaging==23.0 # sphinx pbr==5.11.1 # via stevedore -platformdirs==3.0.0 +platformdirs==3.1.1 # via pylint pluggy==1.0.0 # via pytest @@ -125,7 +125,7 @@ pygments==2.14.0 # via # -r requirements/docs.txt # sphinx -pylint==2.16.2 +pylint==2.17.0 # via # edx-lint # pylint-celery @@ -139,7 +139,7 @@ pylint-plugin-utils==0.7 # via # pylint-celery # pylint-django -pytest==7.2.1 +pytest==7.2.2 # via # pytest-cov # pytest-django @@ -152,7 +152,7 @@ python-dateutil==2.8.2 # -r requirements/test.in # faker # freezegun -python-slugify==8.0.0 +python-slugify==8.0.1 # via code-annotations pytz==2022.7.1 # via @@ -233,13 +233,13 @@ typing-extensions==4.5.0 # via # astroid # pylint -urllib3==1.26.14 +urllib3==1.26.15 # via # -r requirements/docs.txt # requests -wrapt==1.14.1 +wrapt==1.15.0 # via astroid -zipp==3.14.0 +zipp==3.15.0 # via # -r requirements/docs.txt # importlib-metadata diff --git a/requirements/tox.txt b/requirements/tox.txt index a676d8fe..c7c46fd4 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -12,7 +12,7 @@ filelock==3.9.0 # virtualenv packaging==23.0 # via tox -platformdirs==3.0.0 +platformdirs==3.1.1 # via virtualenv pluggy==1.0.0 # via tox @@ -26,5 +26,5 @@ tox==3.28.0 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/tox.in -virtualenv==20.19.0 +virtualenv==20.20.0 # via tox From 5df8116b3b0183891e34a0572101a13db4b505af Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Fri, 21 Apr 2023 14:45:39 -0400 Subject: [PATCH 29/55] docs: Update the contributing guidelines link. We're moving towards a single set of guidelines org-wide. --- README.rst | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.rst b/README.rst index 91acaaad..c489d0fe 100644 --- a/README.rst +++ b/README.rst @@ -1,7 +1,3 @@ -Part of `edX code`__. - -__ http://code.edx.org/ - .. image:: https://github.com/openedx/edx-submissions/workflows/Python%20CI/badge.svg?branch=master :target: https://github.com/openedx/edx-submissions/actions?query=workflow%3A%22Python+CI%22 :alt: Build status @@ -65,10 +61,7 @@ How To Contribute Contributions are very welcome. -Please read `How To Contribute `_ for details. - -Even though it was written with ``edx-platform`` in mind, the guidelines -should be followed for Open edX code in general. +Please read `How To Contribute `_ for details. Reporting Security Issues From 3ea48072c405ab8a513e93dbd2ce40c488be0d6f Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Wed, 12 Apr 2023 12:25:07 -0400 Subject: [PATCH 30/55] chore: Updating Python Requirements --- requirements/base.txt | 2 +- requirements/ci.txt | 8 ++++---- requirements/dev.txt | 36 +++++++++++++++--------------------- requirements/docs.txt | 14 ++++++-------- requirements/pip-tools.txt | 6 +++--- requirements/pip.txt | 4 ++-- requirements/test.txt | 34 +++++++++++++++------------------- requirements/tox.txt | 8 ++++---- 8 files changed, 50 insertions(+), 62 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index b72138a5..c55295a0 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -19,7 +19,7 @@ djangorestframework==3.12.4 # via -r requirements/base.in jsonfield==3.1.0 # via -r requirements/base.in -pytz==2022.7.1 +pytz==2023.3 # via # -r requirements/base.in # django diff --git a/requirements/ci.txt b/requirements/ci.txt index d3ba9d90..5b21f703 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -18,18 +18,18 @@ distlib==0.3.6 # virtualenv docopt==0.6.2 # via coveralls -filelock==3.9.0 +filelock==3.11.0 # via # -r requirements/tox.txt # tox # virtualenv idna==3.4 # via requests -packaging==23.0 +packaging==23.1 # via # -r requirements/tox.txt # tox -platformdirs==3.1.1 +platformdirs==3.2.0 # via # -r requirements/tox.txt # virtualenv @@ -57,7 +57,7 @@ tox==3.28.0 # -r requirements/tox.txt urllib3==1.26.15 # via requests -virtualenv==20.20.0 +virtualenv==20.21.0 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 9f9a5320..49dd6119 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -14,15 +14,11 @@ asgiref==3.6.0 # -r requirements/base.txt # -r requirements/test.txt # django -astroid==2.15.0 +astroid==2.15.2 # via # -r requirements/test.txt # pylint # pylint-celery -attrs==22.2.0 - # via - # -r requirements/test.txt - # pytest babel==2.12.1 # via # -r requirements/docs.txt @@ -52,7 +48,7 @@ code-annotations==1.3.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.2.1 +coverage[toml]==7.2.3 # via # -r requirements/test.txt # pytest-cov @@ -84,15 +80,15 @@ docutils==0.18.1 # -r requirements/test.txt # sphinx # sphinx-rtd-theme -edx-lint==5.3.2 +edx-lint==5.3.4 # via -r requirements/test.txt -exceptiongroup==1.1.0 +exceptiongroup==1.1.1 # via # -r requirements/test.txt # pytest factory-boy==3.2.1 # via -r requirements/test.txt -faker==17.6.0 +faker==18.4.0 # via # -r requirements/test.txt # factory-boy @@ -108,7 +104,7 @@ imagesize==1.4.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -importlib-metadata==6.0.0 +importlib-metadata==6.3.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -146,7 +142,7 @@ mccabe==0.7.0 # pylint mock==5.0.1 # via -r requirements/test.txt -packaging==23.0 +packaging==23.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -156,7 +152,7 @@ pbr==5.11.1 # via # -r requirements/test.txt # stevedore -platformdirs==3.1.1 +platformdirs==3.2.0 # via # -r requirements/test.txt # pylint @@ -171,12 +167,12 @@ pockets==0.9.1 # sphinxcontrib-napoleon pycodestyle==2.10.0 # via -r requirements/test.txt -pygments==2.14.0 +pygments==2.15.0 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx -pylint==2.17.0 +pylint==2.17.2 # via # -r requirements/test.txt # edx-lint @@ -196,7 +192,7 @@ pylint-plugin-utils==0.7 # -r requirements/test.txt # pylint-celery # pylint-django -pytest==7.2.2 +pytest==7.3.0 # via # -r requirements/test.txt # pytest-cov @@ -214,7 +210,7 @@ python-slugify==8.0.1 # via # -r requirements/test.txt # code-annotations -pytz==2022.7.1 +pytz==2023.3 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -249,6 +245,7 @@ sphinx==5.3.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx-rtd-theme + # sphinxcontrib-jquery sphinx-rtd-theme==1.2.0 # via # -r requirements/docs.txt @@ -268,7 +265,7 @@ sphinxcontrib-htmlhelp==2.0.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sphinxcontrib-jquery==2.0.0 +sphinxcontrib-jquery==4.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -311,7 +308,7 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.6 +tomlkit==0.11.7 # via # -r requirements/test.txt # pylint @@ -334,6 +331,3 @@ zipp==3.15.0 # -r requirements/docs.txt # -r requirements/test.txt # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/docs.txt b/requirements/docs.txt index 33ceef62..60d4fb88 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -20,19 +20,19 @@ idna==3.4 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==6.0.0 +importlib-metadata==6.3.0 # via sphinx jinja2==3.1.2 # via sphinx markupsafe==2.1.2 # via jinja2 -packaging==23.0 +packaging==23.1 # via sphinx pockets==0.9.1 # via sphinxcontrib-napoleon -pygments==2.14.0 +pygments==2.15.0 # via sphinx -pytz==2022.7.1 +pytz==2023.3 # via babel requests==2.28.2 # via sphinx @@ -47,6 +47,7 @@ sphinx==5.3.0 # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/docs.in # sphinx-rtd-theme + # sphinxcontrib-jquery sphinx-rtd-theme==1.2.0 # via -r requirements/docs.in sphinxcontrib-applehelp==1.0.4 @@ -55,7 +56,7 @@ sphinxcontrib-devhelp==1.0.2 # via sphinx sphinxcontrib-htmlhelp==2.0.1 # via sphinx -sphinxcontrib-jquery==2.0.0 +sphinxcontrib-jquery==4.1 # via sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 # via sphinx @@ -69,6 +70,3 @@ urllib3==1.26.15 # via requests zipp==3.15.0 # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index e66f21f2..fd0cc1c7 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -8,15 +8,15 @@ build==0.10.0 # via pip-tools click==8.1.3 # via pip-tools -packaging==23.0 +packaging==23.1 # via build -pip-tools==6.12.3 +pip-tools==6.13.0 # via -r requirements/pip-tools.in pyproject-hooks==1.0.0 # via build tomli==2.0.1 # via build -wheel==0.38.4 +wheel==0.40.0 # 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 2cbb0e6b..896a85ce 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.38.4 +wheel==0.40.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: pip==23.0.1 # via -r requirements/pip.in -setuptools==67.6.0 +setuptools==67.6.1 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index fc912c6f..0dad3716 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,12 +12,10 @@ asgiref==3.6.0 # via # -r requirements/base.txt # django -astroid==2.15.0 +astroid==2.15.2 # via # pylint # pylint-celery -attrs==22.2.0 - # via pytest babel==2.12.1 # via # -r requirements/docs.txt @@ -39,7 +37,7 @@ click-log==0.4.0 # via edx-lint code-annotations==1.3.0 # via edx-lint -coverage[toml]==7.2.1 +coverage[toml]==7.2.3 # via pytest-cov ddt==1.6.0 # via -r requirements/test.in @@ -59,13 +57,13 @@ docutils==0.18.1 # -r requirements/docs.txt # sphinx # sphinx-rtd-theme -edx-lint==5.3.2 +edx-lint==5.3.4 # via -r requirements/test.in -exceptiongroup==1.1.0 +exceptiongroup==1.1.1 # via pytest factory-boy==3.2.1 # via -r requirements/test.in -faker==17.6.0 +faker==18.4.0 # via factory-boy freezegun==1.2.2 # via -r requirements/test.in @@ -77,7 +75,7 @@ imagesize==1.4.1 # via # -r requirements/docs.txt # sphinx -importlib-metadata==6.0.0 +importlib-metadata==6.3.0 # via # -r requirements/docs.txt # sphinx @@ -104,14 +102,14 @@ mccabe==0.7.0 # via pylint mock==5.0.1 # via -r requirements/test.in -packaging==23.0 +packaging==23.1 # via # -r requirements/docs.txt # pytest # sphinx pbr==5.11.1 # via stevedore -platformdirs==3.1.1 +platformdirs==3.2.0 # via pylint pluggy==1.0.0 # via pytest @@ -121,11 +119,11 @@ pockets==0.9.1 # sphinxcontrib-napoleon pycodestyle==2.10.0 # via -r requirements/test.in -pygments==2.14.0 +pygments==2.15.0 # via # -r requirements/docs.txt # sphinx -pylint==2.17.0 +pylint==2.17.2 # via # edx-lint # pylint-celery @@ -139,7 +137,7 @@ pylint-plugin-utils==0.7 # via # pylint-celery # pylint-django -pytest==7.2.2 +pytest==7.3.0 # via # pytest-cov # pytest-django @@ -154,7 +152,7 @@ python-dateutil==2.8.2 # freezegun python-slugify==8.0.1 # via code-annotations -pytz==2022.7.1 +pytz==2023.3 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -182,6 +180,7 @@ sphinx==5.3.0 # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/docs.txt # sphinx-rtd-theme + # sphinxcontrib-jquery sphinx-rtd-theme==1.2.0 # via -r requirements/docs.txt sphinxcontrib-applehelp==1.0.4 @@ -196,7 +195,7 @@ sphinxcontrib-htmlhelp==2.0.1 # via # -r requirements/docs.txt # sphinx -sphinxcontrib-jquery==2.0.0 +sphinxcontrib-jquery==4.1 # via # -r requirements/docs.txt # sphinx-rtd-theme @@ -227,7 +226,7 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.6 +tomlkit==0.11.7 # via pylint typing-extensions==4.5.0 # via @@ -243,6 +242,3 @@ zipp==3.15.0 # via # -r requirements/docs.txt # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/tox.txt b/requirements/tox.txt index c7c46fd4..b823c3bc 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -6,13 +6,13 @@ # distlib==0.3.6 # via virtualenv -filelock==3.9.0 +filelock==3.11.0 # via # tox # virtualenv -packaging==23.0 +packaging==23.1 # via tox -platformdirs==3.1.1 +platformdirs==3.2.0 # via virtualenv pluggy==1.0.0 # via tox @@ -26,5 +26,5 @@ tox==3.28.0 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/tox.in -virtualenv==20.20.0 +virtualenv==20.21.0 # via tox From 14789dc12e4820939204af8478708d4290bdd024 Mon Sep 17 00:00:00 2001 From: Nathan Sprenkle Date: Thu, 25 May 2023 15:16:33 -0400 Subject: [PATCH 31/55] feat: add migrations check (#196) * feat: add migrations check * chore: bump version to 3.5.5 --- .github/workflows/migrations-check.yml | 88 ++++++++++++++++++++++++++ submissions/__init__.py | 2 +- 2 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/migrations-check.yml diff --git a/.github/workflows/migrations-check.yml b/.github/workflows/migrations-check.yml new file mode 100644 index 00000000..a834e2d2 --- /dev/null +++ b/.github/workflows/migrations-check.yml @@ -0,0 +1,88 @@ +name: Migrations check on mysql8 + +on: + workflow_dispatch: + pull_request: + push: + branches: + - master + +jobs: + check_migrations: + name: check migrations + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ ubuntu-20.04 ] + python-version: [ 3.8 ] + + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Setup Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install system Packages + run: | + sudo apt-get update + sudo apt-get install -y libxmlsec1-dev + + - name: Get pip cache dir + id: pip-cache-dir + run: | + echo "::set-output name=dir::$(pip cache dir)" + + - name: Cache pip dependencies + id: cache-dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.pip-cache-dir.outputs.dir }} + key: ${{ runner.os }}-pip-${{ hashFiles('requirements/pip_tools.txt') }} + restore-keys: ${{ runner.os }}-pip- + + - name: Ubuntu and MySQL Versions + run: | + lsb_release -a + mysql -V + + - name: Install Python dependencies + run: | + pip install -r requirements/pip-tools.txt + pip install -r requirements/test.txt + pip install -r requirements/base.txt + pip uninstall -y mysqlclient + pip install --no-binary mysqlclient mysqlclient + pip uninstall -y xmlsec + pip install --no-binary xmlsec xmlsec + + - name: Initiate Services + run: | + sudo /etc/init.d/mysql start + + - name: Reset mysql password + run: | + cat < Date: Fri, 16 Jun 2023 12:36:33 +0500 Subject: [PATCH 32/55] Upgrading drf to latest version (#200) * chore: upgrading djangorestframework version to latest 3.14. * chore: Updating Python Requirements --- .github/workflows/ci.yml | 5 +++- requirements/base.in | 2 +- requirements/base.txt | 11 +++++---- requirements/ci.txt | 12 +++++----- requirements/dev.txt | 49 +++++++++++++++++++++------------------- requirements/docs.txt | 14 ++++++------ requirements/pip.txt | 4 ++-- requirements/test.txt | 45 +++++++++++++++++++----------------- requirements/tox.txt | 6 ++--- submissions/__init__.py | 2 +- tox.ini | 6 ++--- 11 files changed, 84 insertions(+), 72 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2fbd9ac4..c37acb1d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,10 @@ jobs: matrix: os: [ubuntu-20.04] python-version: ['3.8'] - toxenv: [quality, docs, django32-drf312, django32-drflatest, django40-drf312, django40-drflatest] + toxenv: [ + quality, docs, django32-drf312, django32-drf314, + django40-drf312, django40-drf314 + ] steps: - uses: actions/checkout@v2 diff --git a/requirements/base.in b/requirements/base.in index 0dfc5596..2da04d9f 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -10,5 +10,5 @@ pytz # Don't let edx-platform upgrade DRF past versions that have already been tested here -djangorestframework<3.13.0 +djangorestframework<3.15.0 diff --git a/requirements/base.txt b/requirements/base.txt index c55295a0..5caa26c6 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,9 +4,9 @@ # # make upgrade # -asgiref==3.6.0 +asgiref==3.7.2 # via django -django==3.2.18 +django==3.2.19 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in @@ -15,7 +15,7 @@ django==3.2.18 # jsonfield django-model-utils==4.3.1 # via -r requirements/base.in -djangorestframework==3.12.4 +djangorestframework==3.14.0 # via -r requirements/base.in jsonfield==3.1.0 # via -r requirements/base.in @@ -23,5 +23,8 @@ pytz==2023.3 # via # -r requirements/base.in # django -sqlparse==0.4.3 + # djangorestframework +sqlparse==0.4.4 # via django +typing-extensions==4.6.3 + # via asgiref diff --git a/requirements/ci.txt b/requirements/ci.txt index 5b21f703..bf0a113a 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,7 +4,7 @@ # # make upgrade # -certifi==2022.12.7 +certifi==2023.5.7 # via requests charset-normalizer==3.1.0 # via requests @@ -18,7 +18,7 @@ distlib==0.3.6 # virtualenv docopt==0.6.2 # via coveralls -filelock==3.11.0 +filelock==3.12.2 # via # -r requirements/tox.txt # tox @@ -29,7 +29,7 @@ packaging==23.1 # via # -r requirements/tox.txt # tox -platformdirs==3.2.0 +platformdirs==3.5.3 # via # -r requirements/tox.txt # virtualenv @@ -41,7 +41,7 @@ py==1.11.0 # via # -r requirements/tox.txt # tox -requests==2.28.2 +requests==2.31.0 # via coveralls six==1.16.0 # via @@ -55,9 +55,9 @@ tox==3.28.0 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/tox.txt -urllib3==1.26.15 +urllib3==2.0.3 # via requests -virtualenv==20.21.0 +virtualenv==20.23.0 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 49dd6119..46864278 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -9,12 +9,12 @@ alabaster==0.7.13 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -asgiref==3.6.0 +asgiref==3.7.2 # via # -r requirements/base.txt # -r requirements/test.txt # django -astroid==2.15.2 +astroid==2.15.5 # via # -r requirements/test.txt # pylint @@ -24,7 +24,7 @@ babel==2.12.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -certifi==2022.12.7 +certifi==2023.5.7 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -48,7 +48,7 @@ code-annotations==1.3.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.2.3 +coverage[toml]==7.2.7 # via # -r requirements/test.txt # pytest-cov @@ -58,7 +58,7 @@ dill==0.3.6 # via # -r requirements/test.txt # pylint -django==3.2.18 +django==3.2.19 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -70,7 +70,7 @@ django-model-utils==4.3.1 # via # -r requirements/base.txt # -r requirements/test.txt -djangorestframework==3.12.4 +djangorestframework==3.14.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -88,7 +88,7 @@ exceptiongroup==1.1.1 # pytest factory-boy==3.2.1 # via -r requirements/test.txt -faker==18.4.0 +faker==18.10.1 # via # -r requirements/test.txt # factory-boy @@ -104,7 +104,7 @@ imagesize==1.4.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -importlib-metadata==6.3.0 +importlib-metadata==6.6.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -131,7 +131,7 @@ lazy-object-proxy==1.9.0 # via # -r requirements/test.txt # astroid -markupsafe==2.1.2 +markupsafe==2.1.3 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -140,7 +140,7 @@ mccabe==0.7.0 # via # -r requirements/test.txt # pylint -mock==5.0.1 +mock==5.0.2 # via -r requirements/test.txt packaging==23.1 # via @@ -152,7 +152,7 @@ pbr==5.11.1 # via # -r requirements/test.txt # stevedore -platformdirs==3.2.0 +platformdirs==3.5.3 # via # -r requirements/test.txt # pylint @@ -167,12 +167,12 @@ pockets==0.9.1 # sphinxcontrib-napoleon pycodestyle==2.10.0 # via -r requirements/test.txt -pygments==2.15.0 +pygments==2.15.1 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx -pylint==2.17.2 +pylint==2.17.4 # via # -r requirements/test.txt # edx-lint @@ -187,17 +187,17 @@ pylint-django==2.5.3 # via # -r requirements/test.txt # edx-lint -pylint-plugin-utils==0.7 +pylint-plugin-utils==0.8.2 # via # -r requirements/test.txt # pylint-celery # pylint-django -pytest==7.3.0 +pytest==7.3.2 # via # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==4.0.0 +pytest-cov==4.1.0 # via -r requirements/test.txt pytest-django==4.5.2 # via -r requirements/test.txt @@ -217,11 +217,12 @@ pytz==2023.3 # -r requirements/test.txt # babel # django + # djangorestframework pyyaml==6.0 # via # -r requirements/test.txt # code-annotations -requests==2.28.2 +requests==2.31.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -246,7 +247,7 @@ sphinx==5.3.0 # -r requirements/test.txt # sphinx-rtd-theme # sphinxcontrib-jquery -sphinx-rtd-theme==1.2.0 +sphinx-rtd-theme==1.2.2 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -289,12 +290,12 @@ sphinxcontrib-serializinghtml==1.1.5 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sqlparse==0.4.3 +sqlparse==0.4.4 # via # -r requirements/base.txt # -r requirements/test.txt # django -stevedore==5.0.0 +stevedore==5.1.0 # via # -r requirements/test.txt # code-annotations @@ -308,16 +309,18 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.7 +tomlkit==0.11.8 # via # -r requirements/test.txt # pylint -typing-extensions==4.5.0 +typing-extensions==4.6.3 # via + # -r requirements/base.txt # -r requirements/test.txt + # asgiref # astroid # pylint -urllib3==1.26.15 +urllib3==2.0.3 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 60d4fb88..3d13f290 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -8,7 +8,7 @@ alabaster==0.7.13 # via sphinx babel==2.12.1 # via sphinx -certifi==2022.12.7 +certifi==2023.5.7 # via requests charset-normalizer==3.1.0 # via requests @@ -20,21 +20,21 @@ idna==3.4 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==6.3.0 +importlib-metadata==6.6.0 # via sphinx jinja2==3.1.2 # via sphinx -markupsafe==2.1.2 +markupsafe==2.1.3 # via jinja2 packaging==23.1 # via sphinx pockets==0.9.1 # via sphinxcontrib-napoleon -pygments==2.15.0 +pygments==2.15.1 # via sphinx pytz==2023.3 # via babel -requests==2.28.2 +requests==2.31.0 # via sphinx six==1.16.0 # via @@ -48,7 +48,7 @@ sphinx==5.3.0 # -r requirements/docs.in # sphinx-rtd-theme # sphinxcontrib-jquery -sphinx-rtd-theme==1.2.0 +sphinx-rtd-theme==1.2.2 # via -r requirements/docs.in sphinxcontrib-applehelp==1.0.4 # via sphinx @@ -66,7 +66,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -urllib3==1.26.15 +urllib3==2.0.3 # via requests zipp==3.15.0 # via importlib-metadata diff --git a/requirements/pip.txt b/requirements/pip.txt index 896a85ce..5a5ce227 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -8,7 +8,7 @@ wheel==0.40.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.0.1 +pip==23.1.2 # via -r requirements/pip.in -setuptools==67.6.1 +setuptools==67.8.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 0dad3716..cea36a49 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -8,11 +8,11 @@ alabaster==0.7.13 # via # -r requirements/docs.txt # sphinx -asgiref==3.6.0 +asgiref==3.7.2 # via # -r requirements/base.txt # django -astroid==2.15.2 +astroid==2.15.5 # via # pylint # pylint-celery @@ -20,7 +20,7 @@ babel==2.12.1 # via # -r requirements/docs.txt # sphinx -certifi==2022.12.7 +certifi==2023.5.7 # via # -r requirements/docs.txt # requests @@ -37,7 +37,7 @@ click-log==0.4.0 # via edx-lint code-annotations==1.3.0 # via edx-lint -coverage[toml]==7.2.3 +coverage[toml]==7.2.7 # via pytest-cov ddt==1.6.0 # via -r requirements/test.in @@ -63,7 +63,7 @@ exceptiongroup==1.1.1 # via pytest factory-boy==3.2.1 # via -r requirements/test.in -faker==18.4.0 +faker==18.10.1 # via factory-boy freezegun==1.2.2 # via -r requirements/test.in @@ -75,7 +75,7 @@ imagesize==1.4.1 # via # -r requirements/docs.txt # sphinx -importlib-metadata==6.3.0 +importlib-metadata==6.6.0 # via # -r requirements/docs.txt # sphinx @@ -94,13 +94,13 @@ jsonfield==3.1.0 # via -r requirements/base.txt lazy-object-proxy==1.9.0 # via astroid -markupsafe==2.1.2 +markupsafe==2.1.3 # via # -r requirements/docs.txt # jinja2 mccabe==0.7.0 # via pylint -mock==5.0.1 +mock==5.0.2 # via -r requirements/test.in packaging==23.1 # via @@ -109,7 +109,7 @@ packaging==23.1 # sphinx pbr==5.11.1 # via stevedore -platformdirs==3.2.0 +platformdirs==3.5.3 # via pylint pluggy==1.0.0 # via pytest @@ -119,11 +119,11 @@ pockets==0.9.1 # sphinxcontrib-napoleon pycodestyle==2.10.0 # via -r requirements/test.in -pygments==2.15.0 +pygments==2.15.1 # via # -r requirements/docs.txt # sphinx -pylint==2.17.2 +pylint==2.17.4 # via # edx-lint # pylint-celery @@ -133,15 +133,15 @@ pylint-celery==0.3 # via edx-lint pylint-django==2.5.3 # via edx-lint -pylint-plugin-utils==0.7 +pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==7.3.0 +pytest==7.3.2 # via # pytest-cov # pytest-django -pytest-cov==4.0.0 +pytest-cov==4.1.0 # via -r requirements/test.in pytest-django==4.5.2 # via -r requirements/test.in @@ -158,9 +158,10 @@ pytz==2023.3 # -r requirements/docs.txt # babel # django + # djangorestframework pyyaml==6.0 # via code-annotations -requests==2.28.2 +requests==2.31.0 # via # -r requirements/docs.txt # sphinx @@ -181,7 +182,7 @@ sphinx==5.3.0 # -r requirements/docs.txt # sphinx-rtd-theme # sphinxcontrib-jquery -sphinx-rtd-theme==1.2.0 +sphinx-rtd-theme==1.2.2 # via -r requirements/docs.txt sphinxcontrib-applehelp==1.0.4 # via @@ -213,11 +214,11 @@ sphinxcontrib-serializinghtml==1.1.5 # via # -r requirements/docs.txt # sphinx -sqlparse==0.4.3 +sqlparse==0.4.4 # via # -r requirements/base.txt # django -stevedore==5.0.0 +stevedore==5.1.0 # via code-annotations text-unidecode==1.3 # via python-slugify @@ -226,13 +227,15 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.7 +tomlkit==0.11.8 # via pylint -typing-extensions==4.5.0 +typing-extensions==4.6.3 # via + # -r requirements/base.txt + # asgiref # astroid # pylint -urllib3==1.26.15 +urllib3==2.0.3 # via # -r requirements/docs.txt # requests diff --git a/requirements/tox.txt b/requirements/tox.txt index b823c3bc..fab4837b 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -6,13 +6,13 @@ # distlib==0.3.6 # via virtualenv -filelock==3.11.0 +filelock==3.12.2 # via # tox # virtualenv packaging==23.1 # via tox -platformdirs==3.2.0 +platformdirs==3.5.3 # via virtualenv pluggy==1.0.0 # via tox @@ -26,5 +26,5 @@ tox==3.28.0 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/tox.in -virtualenv==20.21.0 +virtualenv==20.23.0 # via tox diff --git a/submissions/__init__.py b/submissions/__init__.py index f2ddf9b1..f354922f 100644 --- a/submissions/__init__.py +++ b/submissions/__init__.py @@ -1,2 +1,2 @@ """ API for creating submissions and scores. """ -__version__ = '3.5.5' +__version__ = '3.5.6' diff --git a/tox.ini b/tox.ini index d24adedb..8c69f0fc 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{32,40}-drf{312, latest}, quality, docs +envlist = py38-django{32,40}-drf{312, drf314}, quality, docs [testenv] setenv = @@ -9,8 +9,8 @@ deps = django32: Django>=3.2,<4.0 django40: Django>=4.0,<4.1 drf312: djangorestframework<3.13.0 - drflatest: djangorestframework -commands = + drf314: djangorestframework<3.15.0 +commands = python -Wd -m pytest {posargs} [testenv:quality] From 8046771b54fae9f75f5cdcb70ab1391c4f6ea66e Mon Sep 17 00:00:00 2001 From: zubairshakoorarbisoft Date: Tue, 1 Aug 2023 14:51:58 +0500 Subject: [PATCH 33/55] fix: Added support for django42 --- .github/workflows/ci.yml | 5 ++--- submissions/__init__.py | 2 +- submissions/admin.py | 39 ++++++++++++++++++++++++--------------- tox.ini | 3 +-- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c37acb1d..3007fb4c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,8 +16,7 @@ jobs: os: [ubuntu-20.04] python-version: ['3.8'] toxenv: [ - quality, docs, django32-drf312, django32-drf314, - django40-drf312, django40-drf314 + quality, docs, django32-drf314, django42-drf314 ] steps: @@ -39,7 +38,7 @@ jobs: run: tox - name: Run Coverage - if: matrix.python-version == '3.8' && matrix.toxenv=='django32-drf312' + if: matrix.python-version == '3.8' && matrix.toxenv=='django42-drf314' uses: codecov/codecov-action@v1 with: flags: unittests diff --git a/submissions/__init__.py b/submissions/__init__.py index f354922f..a0ae12d7 100644 --- a/submissions/__init__.py +++ b/submissions/__init__.py @@ -1,2 +1,2 @@ """ API for creating submissions and scores. """ -__version__ = '3.5.6' +__version__ = '3.6.0' diff --git a/submissions/admin.py b/submissions/admin.py index c08a6dfb..271b21ba 100644 --- a/submissions/admin.py +++ b/submissions/admin.py @@ -16,18 +16,28 @@ class StudentItemAdminMixin: 'student_item__id' ) + @admin.display( + ordering='student_item__course_id' + ) def course_id(self, obj): return obj.student_item.course_id - course_id.admin_order_field = 'student_item__course_id' + @admin.display( + ordering='student_item__item_id' + ) def item_id(self, obj): return obj.student_item.item_id - item_id.admin_order_field = 'student_item__item_id' + @admin.display( + ordering='student_item__student_id' + ) def student_id(self, obj): return obj.student_item.student_id - student_id.admin_order_field = 'student_item__student_id' + @admin.display( + description='S.I. ID', + ordering='student_item__id', + ) def student_item_id(self, obj): """ Formated student item id. """ url = reverse( @@ -36,10 +46,9 @@ def student_item_id(self, obj): ) return format_html(f'{obj.student_item.id}') - student_item_id.admin_order_field = 'student_item__id' - student_item_id.short_description = 'S.I. ID' +@admin.register(StudentItem) class StudentItemAdmin(admin.ModelAdmin): list_display = ('id', 'course_id', 'item_type', 'item_id', 'student_id') list_filter = ('item_type',) @@ -47,6 +56,7 @@ class StudentItemAdmin(admin.ModelAdmin): readonly_fields = ('course_id', 'item_type', 'item_id', 'student_id') +@admin.register(Submission) class SubmissionAdmin(admin.ModelAdmin, StudentItemAdminMixin): """ Student Submission Admin View. """ list_display = ( @@ -83,6 +93,7 @@ class SubmissionInlineAdmin(admin.TabularInline, StudentItemAdminMixin): extra = 0 +@admin.register(TeamSubmission) class TeamSubmissionAdmin(admin.ModelAdmin): """ Student Submission Admin View. """ @@ -92,6 +103,7 @@ class TeamSubmissionAdmin(admin.ModelAdmin): inlines = (SubmissionInlineAdmin,) +@admin.register(Score) class ScoreAdmin(admin.ModelAdmin, StudentItemAdminMixin): """ Student Score Admin View. """ list_display = ( @@ -114,6 +126,7 @@ def points(self, score): return f"{score.points_earned}/{score.points_possible}" +@admin.register(ScoreSummary) class ScoreSummaryAdmin(admin.ModelAdmin, StudentItemAdminMixin): """ Student Score Summary Admin View. """ list_display = ( @@ -127,25 +140,21 @@ class ScoreSummaryAdmin(admin.ModelAdmin, StudentItemAdminMixin): ) exclude = ('highest', 'latest') + @admin.display( + description='Highest' + ) def highest_link(self, score_summary): url = reverse( 'admin:submissions_score_change', args=[score_summary.highest.id] ) return format_html(f'{score_summary.highest}') - highest_link.short_description = 'Highest' + @admin.display( + description='Latest' + ) def latest_link(self, score_summary): url = reverse( 'admin:submissions_score_change', args=[score_summary.latest.id] ) return format_html(f'{score_summary.latest}') - - latest_link.short_description = 'Latest' - - -admin.site.register(Score, ScoreAdmin) -admin.site.register(StudentItem, StudentItemAdmin) -admin.site.register(Submission, SubmissionAdmin) -admin.site.register(TeamSubmission, TeamSubmissionAdmin) -admin.site.register(ScoreSummary, ScoreSummaryAdmin) diff --git a/tox.ini b/tox.ini index 8c69f0fc..281fcedc 100644 --- a/tox.ini +++ b/tox.ini @@ -7,8 +7,7 @@ setenv = deps = -r{toxinidir}/requirements/test.txt django32: Django>=3.2,<4.0 - django40: Django>=4.0,<4.1 - drf312: djangorestframework<3.13.0 + django42: Django>=4.2,<4.3 drf314: djangorestframework<3.15.0 commands = python -Wd -m pytest {posargs} From a681a6b66dee2fab75b1b17f11320d89b2369f9c Mon Sep 17 00:00:00 2001 From: zubairshakoorarbisoft Date: Tue, 1 Aug 2023 15:57:21 +0500 Subject: [PATCH 34/55] fix: missing doc strings added --- submissions/admin.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/submissions/admin.py b/submissions/admin.py index 271b21ba..860536bb 100644 --- a/submissions/admin.py +++ b/submissions/admin.py @@ -144,6 +144,7 @@ class ScoreSummaryAdmin(admin.ModelAdmin, StudentItemAdminMixin): description='Highest' ) def highest_link(self, score_summary): + """Returns highest link""" url = reverse( 'admin:submissions_score_change', args=[score_summary.highest.id] ) @@ -154,6 +155,7 @@ def highest_link(self, score_summary): description='Latest' ) def latest_link(self, score_summary): + """Returns latest link""" url = reverse( 'admin:submissions_score_change', args=[score_summary.latest.id] ) From 95635a2016905df04026a136647ed0d9d8a0b6ba Mon Sep 17 00:00:00 2001 From: zubairshakoorarbisoft Date: Tue, 1 Aug 2023 19:13:13 +0500 Subject: [PATCH 35/55] fix: extra lines removed --- submissions/admin.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/submissions/admin.py b/submissions/admin.py index 860536bb..3e354e9d 100644 --- a/submissions/admin.py +++ b/submissions/admin.py @@ -47,7 +47,6 @@ def student_item_id(self, obj): return format_html(f'{obj.student_item.id}') - @admin.register(StudentItem) class StudentItemAdmin(admin.ModelAdmin): list_display = ('id', 'course_id', 'item_type', 'item_id', 'student_id') @@ -150,7 +149,6 @@ def highest_link(self, score_summary): ) return format_html(f'{score_summary.highest}') - @admin.display( description='Latest' ) From 27b2815ad3092f8d89bb77c0007251f6aa48f588 Mon Sep 17 00:00:00 2001 From: zubairshakoorarbisoft Date: Thu, 3 Aug 2023 17:56:54 +0500 Subject: [PATCH 36/55] fix: env 42 added --- submissions/__init__.py | 2 +- tox.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submissions/__init__.py b/submissions/__init__.py index a0ae12d7..75d36096 100644 --- a/submissions/__init__.py +++ b/submissions/__init__.py @@ -1,2 +1,2 @@ """ API for creating submissions and scores. """ -__version__ = '3.6.0' +__version__ = '3.6.1' diff --git a/tox.ini b/tox.ini index 281fcedc..bc844c87 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{32,40}-drf{312, drf314}, quality, docs +envlist = py38-django{32,42}-drf{312, drf314}, quality, docs [testenv] setenv = From 67efd87054a6ac90c6593d038f1315f874e3ce07 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Mon, 7 Aug 2023 14:43:48 -0400 Subject: [PATCH 37/55] docs: Add a ReadTheDocs config. This format of config in the repo will be required starting in september so add it now in preparation for that. --- .readthedocs.yaml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .readthedocs.yaml diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..2f0189d9 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,22 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required: the version of this file's schema. +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/source/conf.py + fail_on_warning: true + +# Set the version of python needed to build these docs. +build: + os: "ubuntu-22.04" + tools: + python: "3.8" + +# Optionally install extra requirements required to build your docs +python: + install: + - requirements: requirements/docs.txt From 061f518bc3c987382fa1d1fedf46ff6210070759 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Mon, 7 Aug 2023 14:47:43 -0400 Subject: [PATCH 38/55] docs: Move to the new sphinx book theme. --- docs/source/conf.py | 40 +++++++++++++++++++++++++++++++++++++++- requirements/docs.in | 2 +- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 6de4a576..c05d0a5b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -102,7 +102,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'default' +html_theme = 'sphinx_book_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -260,3 +260,41 @@ # If true, do not generate a @detailmenu in the "Top" node's menu. #texinfo_no_detailmenu = False + +html_theme_options = { + + "repository_url": 'https://github.com/openedx/edx-submissions', + "repository_branch": 'master', + "path_to_docs": "docs/", + "use_repository_button": True, + "use_issues_button": True, + "use_edit_page_button": True, + "extra_footer": """ + + Creative Commons License + +
+ These works by + Axim Collaborative + are licensed under a + Creative Commons Attribution-ShareAlike 4.0 International License. + """ +} + +# Note the logo won't show up properly yet because there is an upstream +# bug in the theme that needs to be fixed first. +# If you'd like you can temporarily copy the logo file to your `_static` +# directory. +html_logo = "https://logos.openedx.org/open-edx-logo-color.png" +html_favicon = "https://logos.openedx.org/open-edx-favicon.ico" diff --git a/requirements/docs.in b/requirements/docs.in index e099d508..fc02b837 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -2,5 +2,5 @@ -c constraints.txt Sphinx -sphinx-rtd-theme +sphinx-book-theme sphinxcontrib-napoleon From 9ad307e4948423af056d6e87f5e74b161f0481fe Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Mon, 7 Aug 2023 14:48:09 -0400 Subject: [PATCH 39/55] docs: Update to be able to pull in docstrings. We need to actually setup django and its requirements to be able to render autodocs. --- docs/source/conf.py | 2 ++ requirements/docs.in | 1 + 2 files changed, 3 insertions(+) diff --git a/docs/source/conf.py b/docs/source/conf.py index c05d0a5b..a4b4b2a5 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -14,12 +14,14 @@ import os import sys +import django # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('../..')) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") +django.setup() # -- General configuration ------------------------------------------------ diff --git a/requirements/docs.in b/requirements/docs.in index fc02b837..3b11a0c0 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -1,6 +1,7 @@ # Requirements for docs -c constraints.txt +-r base.txt Sphinx sphinx-book-theme sphinxcontrib-napoleon From d200ba3ba52914a9ef200819e7186db191c10a91 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Mon, 7 Aug 2023 14:49:04 -0400 Subject: [PATCH 40/55] docs: Update docstrings to not throw warnings. Some of the docstrings were throwing warnings when we were trying to render them in the docs site. Update the docstrings so they don't throw warnings. --- submissions/api.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/submissions/api.py b/submissions/api.py index 0f89a34b..1be2a84f 100644 --- a/submissions/api.py +++ b/submissions/api.py @@ -426,7 +426,8 @@ def get_all_submissions(course_id, item_id, item_type, read_replica=True): def get_all_course_submission_information(course_id, item_type, read_replica=True): - """ For the given course, get all student items of the given item type, all the submissions for those itemes, + """ + For the given course, get all student items of the given item type, all the submissions for those itemes, and the latest scores for each item. If a submission was given a score that is not the latest score for the relevant student item, it will still be included but without score. @@ -437,6 +438,7 @@ def get_all_course_submission_information(course_id, item_type, read_replica=Tru Yields: A tuple of three dictionaries representing: + (1) a student item with the following fields: student_id course_id @@ -485,7 +487,8 @@ def get_all_course_submission_information(course_id, item_type, read_replica=Tru def get_top_submissions(course_id, item_id, item_type, number_of_top_scores, use_cache=True, read_replica=True): - """Get a number of top scores for an assessment based on a particular student item + """ + Get a number of top scores for an assessment based on a particular student item This function will return top scores for the piece of assessment. It will consider only the latest and greater than 0 score for a piece of assessment. @@ -506,7 +509,7 @@ def get_top_submissions(course_id, item_id, item_type, number_of_top_scores, use Kwargs: use_cache (bool): If true, check the cache before retrieving querying the database. read_replica (bool): If true, attempt to use the read replica database. - If no read replica is available, use the default database. + If no read replica is available, use the default database. Returns: topscores (dict): The top scores for the assessment for the student item. @@ -806,7 +809,8 @@ def reset_score(student_id, course_id, item_id, clear_state=False, emit_signal=T def set_score(submission_uuid, points_earned, points_possible, annotation_creator=None, annotation_type=None, annotation_reason=None): - """Set a score for a particular submission. + """ + Set a score for a particular submission. Sets the score for a particular submission. This score is calculated externally to the API. @@ -817,8 +821,8 @@ def set_score(submission_uuid, points_earned, points_possible, points_possible (int): The total points possible for this particular student item. annotation_creator (str): An optional field for recording who gave this particular score - annotation_type (str): An optional field for recording what type of annotation should be created, - e.g. "staff_override". + annotation_type (str): An optional field for recording what type of + annotation should be created, e.g. "staff_override". annotation_reason (str): An optional field for recording why this score was set to its value. Returns: From 98440390b7159836d0f0606735c468afab4eaeee Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Mon, 7 Aug 2023 14:49:46 -0400 Subject: [PATCH 41/55] chore: Run `make upgrade` --- requirements/base.txt | 4 +- requirements/ci.txt | 14 +++--- requirements/dev.txt | 97 +++++++++++++++++++++++-------------- requirements/docs.txt | 80 ++++++++++++++++++++++-------- requirements/pip-tools.txt | 11 +++-- requirements/pip.txt | 6 +-- requirements/test.txt | 99 ++++++++++++++++++++++++-------------- requirements/tox.txt | 8 +-- 8 files changed, 209 insertions(+), 110 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 5caa26c6..967b442c 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,7 +6,7 @@ # asgiref==3.7.2 # via django -django==3.2.19 +django==3.2.20 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in @@ -26,5 +26,5 @@ pytz==2023.3 # djangorestframework sqlparse==0.4.4 # via django -typing-extensions==4.6.3 +typing-extensions==4.7.1 # via asgiref diff --git a/requirements/ci.txt b/requirements/ci.txt index bf0a113a..85ec9fcc 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,15 +4,15 @@ # # make upgrade # -certifi==2023.5.7 +certifi==2023.7.22 # via requests -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 # via requests coverage==6.5.0 # via coveralls coveralls==3.3.1 # via -r requirements/ci.in -distlib==0.3.6 +distlib==0.3.7 # via # -r requirements/tox.txt # virtualenv @@ -29,11 +29,11 @@ packaging==23.1 # via # -r requirements/tox.txt # tox -platformdirs==3.5.3 +platformdirs==3.10.0 # via # -r requirements/tox.txt # virtualenv -pluggy==1.0.0 +pluggy==1.2.0 # via # -r requirements/tox.txt # tox @@ -55,9 +55,9 @@ tox==3.28.0 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/tox.txt -urllib3==2.0.3 +urllib3==2.0.4 # via requests -virtualenv==20.23.0 +virtualenv==20.24.2 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 46864278..688dc118 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,6 +4,11 @@ # # make upgrade # +accessible-pygments==0.0.4 + # via + # -r requirements/docs.txt + # -r requirements/test.txt + # pydata-sphinx-theme alabaster==0.7.13 # via # -r requirements/docs.txt @@ -12,9 +17,10 @@ alabaster==0.7.13 asgiref==3.7.2 # via # -r requirements/base.txt + # -r requirements/docs.txt # -r requirements/test.txt # django -astroid==2.15.5 +astroid==2.15.6 # via # -r requirements/test.txt # pylint @@ -23,18 +29,24 @@ babel==2.12.1 # via # -r requirements/docs.txt # -r requirements/test.txt + # pydata-sphinx-theme # sphinx -certifi==2023.5.7 +beautifulsoup4==4.12.2 + # via + # -r requirements/docs.txt + # -r requirements/test.txt + # pydata-sphinx-theme +certifi==2023.7.22 # via # -r requirements/docs.txt # -r requirements/test.txt # requests -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 # via # -r requirements/docs.txt # -r requirements/test.txt # requests -click==8.1.3 +click==8.1.6 # via # -r requirements/test.txt # click-log @@ -44,7 +56,7 @@ click-log==0.4.0 # via # -r requirements/test.txt # edx-lint -code-annotations==1.3.0 +code-annotations==1.5.0 # via # -r requirements/test.txt # edx-lint @@ -54,14 +66,15 @@ coverage[toml]==7.2.7 # pytest-cov ddt==1.6.0 # via -r requirements/test.txt -dill==0.3.6 +dill==0.3.7 # via # -r requirements/test.txt # pylint -django==3.2.19 +django==3.2.20 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt + # -r requirements/docs.txt # -r requirements/test.txt # django-model-utils # djangorestframework @@ -69,26 +82,28 @@ django==3.2.19 django-model-utils==4.3.1 # via # -r requirements/base.txt + # -r requirements/docs.txt # -r requirements/test.txt djangorestframework==3.14.0 # via # -r requirements/base.txt + # -r requirements/docs.txt # -r requirements/test.txt -docutils==0.18.1 +docutils==0.19 # via # -r requirements/docs.txt # -r requirements/test.txt + # pydata-sphinx-theme # sphinx - # sphinx-rtd-theme edx-lint==5.3.4 # via -r requirements/test.txt -exceptiongroup==1.1.1 +exceptiongroup==1.1.2 # via # -r requirements/test.txt # pytest -factory-boy==3.2.1 +factory-boy==3.3.0 # via -r requirements/test.txt -faker==18.10.1 +faker==19.3.0 # via # -r requirements/test.txt # factory-boy @@ -104,7 +119,7 @@ imagesize==1.4.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -importlib-metadata==6.6.0 +importlib-metadata==6.8.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -126,6 +141,7 @@ jinja2==3.1.2 jsonfield==3.1.0 # via # -r requirements/base.txt + # -r requirements/docs.txt # -r requirements/test.txt lazy-object-proxy==1.9.0 # via @@ -140,23 +156,24 @@ mccabe==0.7.0 # via # -r requirements/test.txt # pylint -mock==5.0.2 +mock==5.1.0 # via -r requirements/test.txt packaging==23.1 # via # -r requirements/docs.txt # -r requirements/test.txt + # pydata-sphinx-theme # pytest # sphinx pbr==5.11.1 # via # -r requirements/test.txt # stevedore -platformdirs==3.5.3 +platformdirs==3.10.0 # via # -r requirements/test.txt # pylint -pluggy==1.0.0 +pluggy==1.2.0 # via # -r requirements/test.txt # pytest @@ -165,14 +182,21 @@ pockets==0.9.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinxcontrib-napoleon -pycodestyle==2.10.0 +pycodestyle==2.11.0 # via -r requirements/test.txt -pygments==2.15.1 +pydata-sphinx-theme==0.13.3 + # via + # -r requirements/docs.txt + # -r requirements/test.txt + # sphinx-book-theme +pygments==2.16.1 # via # -r requirements/docs.txt # -r requirements/test.txt + # accessible-pygments + # pydata-sphinx-theme # sphinx -pylint==2.17.4 +pylint==2.17.5 # via # -r requirements/test.txt # edx-lint @@ -192,7 +216,7 @@ pylint-plugin-utils==0.8.2 # -r requirements/test.txt # pylint-celery # pylint-django -pytest==7.3.2 +pytest==7.4.0 # via # -r requirements/test.txt # pytest-cov @@ -218,7 +242,7 @@ pytz==2023.3 # babel # django # djangorestframework -pyyaml==6.0 +pyyaml==6.0.1 # via # -r requirements/test.txt # code-annotations @@ -240,14 +264,18 @@ snowballstemmer==2.2.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sphinx==5.3.0 +soupsieve==2.4.1 + # via + # -r requirements/docs.txt + # -r requirements/test.txt + # beautifulsoup4 +sphinx==6.2.1 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/docs.txt # -r requirements/test.txt - # sphinx-rtd-theme - # sphinxcontrib-jquery -sphinx-rtd-theme==1.2.2 + # pydata-sphinx-theme + # sphinx-book-theme +sphinx-book-theme==1.0.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -266,11 +294,6 @@ sphinxcontrib-htmlhelp==2.0.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -sphinxcontrib-jquery==4.1 - # via - # -r requirements/docs.txt - # -r requirements/test.txt - # sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 # via # -r requirements/docs.txt @@ -293,6 +316,7 @@ sphinxcontrib-serializinghtml==1.1.5 sqlparse==0.4.4 # via # -r requirements/base.txt + # -r requirements/docs.txt # -r requirements/test.txt # django stevedore==5.1.0 @@ -309,18 +333,21 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.8 +tomlkit==0.12.1 # via # -r requirements/test.txt # pylint -typing-extensions==4.6.3 +typing-extensions==4.7.1 # via # -r requirements/base.txt + # -r requirements/docs.txt # -r requirements/test.txt # asgiref # astroid + # faker + # pydata-sphinx-theme # pylint -urllib3==2.0.3 +urllib3==2.0.4 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -329,7 +356,7 @@ wrapt==1.15.0 # via # -r requirements/test.txt # astroid -zipp==3.15.0 +zipp==3.16.2 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 3d13f290..36694ac7 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -4,36 +4,70 @@ # # make upgrade # +accessible-pygments==0.0.4 + # via pydata-sphinx-theme alabaster==0.7.13 # via sphinx +asgiref==3.7.2 + # via + # -r requirements/base.txt + # django babel==2.12.1 - # via sphinx -certifi==2023.5.7 + # via + # pydata-sphinx-theme + # sphinx +beautifulsoup4==4.12.2 + # via pydata-sphinx-theme +certifi==2023.7.22 # via requests -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 # via requests -docutils==0.18.1 +django==3.2.20 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -r requirements/base.txt + # django-model-utils + # djangorestframework + # jsonfield +django-model-utils==4.3.1 + # via -r requirements/base.txt +djangorestframework==3.14.0 + # via -r requirements/base.txt +docutils==0.19 + # via + # pydata-sphinx-theme # sphinx - # sphinx-rtd-theme idna==3.4 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==6.6.0 +importlib-metadata==6.8.0 # via sphinx jinja2==3.1.2 # via sphinx +jsonfield==3.1.0 + # via -r requirements/base.txt markupsafe==2.1.3 # via jinja2 packaging==23.1 - # via sphinx + # via + # pydata-sphinx-theme + # sphinx pockets==0.9.1 # via sphinxcontrib-napoleon -pygments==2.15.1 - # via sphinx +pydata-sphinx-theme==0.13.3 + # via sphinx-book-theme +pygments==2.16.1 + # via + # accessible-pygments + # pydata-sphinx-theme + # sphinx pytz==2023.3 - # via babel + # via + # -r requirements/base.txt + # babel + # django + # djangorestframework requests==2.31.0 # via sphinx six==1.16.0 @@ -42,13 +76,14 @@ six==1.16.0 # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via sphinx -sphinx==5.3.0 +soupsieve==2.4.1 + # via beautifulsoup4 +sphinx==6.2.1 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/docs.in - # sphinx-rtd-theme - # sphinxcontrib-jquery -sphinx-rtd-theme==1.2.2 + # pydata-sphinx-theme + # sphinx-book-theme +sphinx-book-theme==1.0.1 # via -r requirements/docs.in sphinxcontrib-applehelp==1.0.4 # via sphinx @@ -56,8 +91,6 @@ sphinxcontrib-devhelp==1.0.2 # via sphinx sphinxcontrib-htmlhelp==2.0.1 # via sphinx -sphinxcontrib-jquery==4.1 - # via sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-napoleon==0.7 @@ -66,7 +99,16 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -urllib3==2.0.3 +sqlparse==0.4.4 + # via + # -r requirements/base.txt + # django +typing-extensions==4.7.1 + # via + # -r requirements/base.txt + # asgiref + # pydata-sphinx-theme +urllib3==2.0.4 # via requests -zipp==3.15.0 +zipp==3.16.2 # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index fd0cc1c7..ed274ee9 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -6,17 +6,20 @@ # build==0.10.0 # via pip-tools -click==8.1.3 +click==8.1.6 # via pip-tools packaging==23.1 # via build -pip-tools==6.13.0 +pip-tools==7.2.0 # via -r requirements/pip-tools.in pyproject-hooks==1.0.0 # via build tomli==2.0.1 - # via build -wheel==0.40.0 + # via + # build + # pip-tools + # pyproject-hooks +wheel==0.41.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 5a5ce227..5e2f7602 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.40.0 +wheel==0.41.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.1.2 +pip==23.2.1 # via -r requirements/pip.in -setuptools==67.8.0 +setuptools==68.0.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index cea36a49..3ea76e18 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -4,6 +4,10 @@ # # make upgrade # +accessible-pygments==0.0.4 + # via + # -r requirements/docs.txt + # pydata-sphinx-theme alabaster==0.7.13 # via # -r requirements/docs.txt @@ -11,59 +15,70 @@ alabaster==0.7.13 asgiref==3.7.2 # via # -r requirements/base.txt + # -r requirements/docs.txt # django -astroid==2.15.5 +astroid==2.15.6 # via # pylint # pylint-celery babel==2.12.1 # via # -r requirements/docs.txt + # pydata-sphinx-theme # sphinx -certifi==2023.5.7 +beautifulsoup4==4.12.2 + # via + # -r requirements/docs.txt + # pydata-sphinx-theme +certifi==2023.7.22 # via # -r requirements/docs.txt # requests -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 # via # -r requirements/docs.txt # requests -click==8.1.3 +click==8.1.6 # via # click-log # code-annotations # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.3.0 +code-annotations==1.5.0 # via edx-lint coverage[toml]==7.2.7 # via pytest-cov ddt==1.6.0 # via -r requirements/test.in -dill==0.3.6 +dill==0.3.7 # via pylint # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt + # -r requirements/docs.txt # django-model-utils # djangorestframework # jsonfield django-model-utils==4.3.1 - # via -r requirements/base.txt - # via -r requirements/base.txt -docutils==0.18.1 # via + # -r requirements/base.txt # -r requirements/docs.txt + # via + # -r requirements/base.txt + # -r requirements/docs.txt +docutils==0.19 + # via + # -r requirements/docs.txt + # pydata-sphinx-theme # sphinx - # sphinx-rtd-theme edx-lint==5.3.4 # via -r requirements/test.in -exceptiongroup==1.1.1 +exceptiongroup==1.1.2 # via pytest -factory-boy==3.2.1 +factory-boy==3.3.0 # via -r requirements/test.in -faker==18.10.1 +faker==19.3.0 # via factory-boy freezegun==1.2.2 # via -r requirements/test.in @@ -75,7 +90,7 @@ imagesize==1.4.1 # via # -r requirements/docs.txt # sphinx -importlib-metadata==6.6.0 +importlib-metadata==6.8.0 # via # -r requirements/docs.txt # sphinx @@ -91,7 +106,9 @@ jinja2==3.1.2 # code-annotations # sphinx jsonfield==3.1.0 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # -r requirements/docs.txt lazy-object-proxy==1.9.0 # via astroid markupsafe==2.1.3 @@ -100,30 +117,37 @@ markupsafe==2.1.3 # jinja2 mccabe==0.7.0 # via pylint -mock==5.0.2 +mock==5.1.0 # via -r requirements/test.in packaging==23.1 # via # -r requirements/docs.txt + # pydata-sphinx-theme # pytest # sphinx pbr==5.11.1 # via stevedore -platformdirs==3.5.3 +platformdirs==3.10.0 # via pylint -pluggy==1.0.0 +pluggy==1.2.0 # via pytest pockets==0.9.1 # via # -r requirements/docs.txt # sphinxcontrib-napoleon -pycodestyle==2.10.0 +pycodestyle==2.11.0 # via -r requirements/test.in -pygments==2.15.1 +pydata-sphinx-theme==0.13.3 + # via + # -r requirements/docs.txt + # sphinx-book-theme +pygments==2.16.1 # via # -r requirements/docs.txt + # accessible-pygments + # pydata-sphinx-theme # sphinx -pylint==2.17.4 +pylint==2.17.5 # via # edx-lint # pylint-celery @@ -137,7 +161,7 @@ pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==7.3.2 +pytest==7.4.0 # via # pytest-cov # pytest-django @@ -159,7 +183,7 @@ pytz==2023.3 # babel # django # djangorestframework -pyyaml==6.0 +pyyaml==6.0.1 # via code-annotations requests==2.31.0 # via @@ -176,13 +200,16 @@ snowballstemmer==2.2.0 # via # -r requirements/docs.txt # sphinx -sphinx==5.3.0 +soupsieve==2.4.1 + # via + # -r requirements/docs.txt + # beautifulsoup4 +sphinx==6.2.1 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/docs.txt - # sphinx-rtd-theme - # sphinxcontrib-jquery -sphinx-rtd-theme==1.2.2 + # pydata-sphinx-theme + # sphinx-book-theme +sphinx-book-theme==1.0.1 # via -r requirements/docs.txt sphinxcontrib-applehelp==1.0.4 # via @@ -196,10 +223,6 @@ sphinxcontrib-htmlhelp==2.0.1 # via # -r requirements/docs.txt # sphinx -sphinxcontrib-jquery==4.1 - # via - # -r requirements/docs.txt - # sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 # via # -r requirements/docs.txt @@ -217,6 +240,7 @@ sphinxcontrib-serializinghtml==1.1.5 sqlparse==0.4.4 # via # -r requirements/base.txt + # -r requirements/docs.txt # django stevedore==5.1.0 # via code-annotations @@ -227,21 +251,24 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.8 +tomlkit==0.12.1 # via pylint -typing-extensions==4.6.3 +typing-extensions==4.7.1 # via # -r requirements/base.txt + # -r requirements/docs.txt # asgiref # astroid + # faker + # pydata-sphinx-theme # pylint -urllib3==2.0.3 +urllib3==2.0.4 # via # -r requirements/docs.txt # requests wrapt==1.15.0 # via astroid -zipp==3.15.0 +zipp==3.16.2 # via # -r requirements/docs.txt # importlib-metadata diff --git a/requirements/tox.txt b/requirements/tox.txt index fab4837b..b6b398f1 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -4,7 +4,7 @@ # # make upgrade # -distlib==0.3.6 +distlib==0.3.7 # via virtualenv filelock==3.12.2 # via @@ -12,9 +12,9 @@ filelock==3.12.2 # virtualenv packaging==23.1 # via tox -platformdirs==3.5.3 +platformdirs==3.10.0 # via virtualenv -pluggy==1.0.0 +pluggy==1.2.0 # via tox py==1.11.0 # via tox @@ -26,5 +26,5 @@ tox==3.28.0 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/tox.in -virtualenv==20.23.0 +virtualenv==20.24.2 # via tox From 02f39352aa7d1c23aa12ff6e16d1f298ae45c8ca Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Mon, 23 Oct 2023 09:09:38 -0400 Subject: [PATCH 42/55] fix: Replaced whitelist_externals with allowlist_externals in tox and removed tox-battery --- requirements/base.txt | 6 ++--- requirements/ci.txt | 14 +++++------ requirements/dev.txt | 51 ++++++++++++++++---------------------- requirements/docs.txt | 20 +++++++-------- requirements/pip-tools.txt | 14 +++++++---- requirements/pip.txt | 6 ++--- requirements/test.txt | 48 +++++++++++++++++------------------ requirements/tox.txt | 10 ++++---- tox.ini | 2 +- 9 files changed, 83 insertions(+), 88 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 967b442c..fd521757 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,7 +6,7 @@ # asgiref==3.7.2 # via django -django==3.2.20 +django==3.2.22 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in @@ -19,12 +19,12 @@ djangorestframework==3.14.0 # via -r requirements/base.in jsonfield==3.1.0 # via -r requirements/base.in -pytz==2023.3 +pytz==2023.3.post1 # via # -r requirements/base.in # django # djangorestframework sqlparse==0.4.4 # via django -typing-extensions==4.7.1 +typing-extensions==4.8.0 # via asgiref diff --git a/requirements/ci.txt b/requirements/ci.txt index 85ec9fcc..b5561d11 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -6,7 +6,7 @@ # certifi==2023.7.22 # via requests -charset-normalizer==3.2.0 +charset-normalizer==3.3.1 # via requests coverage==6.5.0 # via coveralls @@ -18,22 +18,22 @@ distlib==0.3.7 # virtualenv docopt==0.6.2 # via coveralls -filelock==3.12.2 +filelock==3.12.4 # via # -r requirements/tox.txt # tox # virtualenv idna==3.4 # via requests -packaging==23.1 +packaging==23.2 # via # -r requirements/tox.txt # tox -platformdirs==3.10.0 +platformdirs==3.11.0 # via # -r requirements/tox.txt # virtualenv -pluggy==1.2.0 +pluggy==1.3.0 # via # -r requirements/tox.txt # tox @@ -55,9 +55,9 @@ tox==3.28.0 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/tox.txt -urllib3==2.0.4 +urllib3==2.0.7 # via requests -virtualenv==20.24.2 +virtualenv==20.24.5 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 688dc118..c8b022f3 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -20,12 +20,12 @@ asgiref==3.7.2 # -r requirements/docs.txt # -r requirements/test.txt # django -astroid==2.15.6 +astroid==3.0.1 # via # -r requirements/test.txt # pylint # pylint-celery -babel==2.12.1 +babel==2.13.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -41,12 +41,12 @@ certifi==2023.7.22 # -r requirements/docs.txt # -r requirements/test.txt # requests -charset-normalizer==3.2.0 +charset-normalizer==3.3.1 # via # -r requirements/docs.txt # -r requirements/test.txt # requests -click==8.1.6 +click==8.1.7 # via # -r requirements/test.txt # click-log @@ -60,9 +60,10 @@ code-annotations==1.5.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.2.7 +coverage[toml]==7.3.2 # via # -r requirements/test.txt + # coverage # pytest-cov ddt==1.6.0 # via -r requirements/test.txt @@ -70,7 +71,7 @@ dill==0.3.7 # via # -r requirements/test.txt # pylint -django==3.2.20 +django==3.2.22 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -97,13 +98,13 @@ docutils==0.19 # sphinx edx-lint==5.3.4 # via -r requirements/test.txt -exceptiongroup==1.1.2 +exceptiongroup==1.1.3 # via # -r requirements/test.txt # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==19.3.0 +faker==19.11.0 # via # -r requirements/test.txt # factory-boy @@ -143,10 +144,6 @@ jsonfield==3.1.0 # -r requirements/base.txt # -r requirements/docs.txt # -r requirements/test.txt -lazy-object-proxy==1.9.0 - # via - # -r requirements/test.txt - # astroid markupsafe==2.1.3 # via # -r requirements/docs.txt @@ -158,7 +155,7 @@ mccabe==0.7.0 # pylint mock==5.1.0 # via -r requirements/test.txt -packaging==23.1 +packaging==23.2 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -169,11 +166,11 @@ pbr==5.11.1 # via # -r requirements/test.txt # stevedore -platformdirs==3.10.0 +platformdirs==3.11.0 # via # -r requirements/test.txt # pylint -pluggy==1.2.0 +pluggy==1.3.0 # via # -r requirements/test.txt # pytest @@ -182,9 +179,9 @@ pockets==0.9.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinxcontrib-napoleon -pycodestyle==2.11.0 +pycodestyle==2.11.1 # via -r requirements/test.txt -pydata-sphinx-theme==0.13.3 +pydata-sphinx-theme==0.14.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -196,7 +193,7 @@ pygments==2.16.1 # accessible-pygments # pydata-sphinx-theme # sphinx -pylint==2.17.5 +pylint==3.0.2 # via # -r requirements/test.txt # edx-lint @@ -207,7 +204,7 @@ pylint-celery==0.3 # via # -r requirements/test.txt # edx-lint -pylint-django==2.5.3 +pylint-django==2.5.4 # via # -r requirements/test.txt # edx-lint @@ -216,7 +213,7 @@ pylint-plugin-utils==0.8.2 # -r requirements/test.txt # pylint-celery # pylint-django -pytest==7.4.0 +pytest==7.4.2 # via # -r requirements/test.txt # pytest-cov @@ -234,7 +231,7 @@ python-slugify==8.0.1 # via # -r requirements/test.txt # code-annotations -pytz==2023.3 +pytz==2023.3.post1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -264,7 +261,7 @@ snowballstemmer==2.2.0 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -soupsieve==2.4.1 +soupsieve==2.5 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -337,7 +334,7 @@ tomlkit==0.12.1 # via # -r requirements/test.txt # pylint -typing-extensions==4.7.1 +typing-extensions==4.8.0 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -347,16 +344,12 @@ typing-extensions==4.7.1 # faker # pydata-sphinx-theme # pylint -urllib3==2.0.4 +urllib3==2.0.7 # via # -r requirements/docs.txt # -r requirements/test.txt # requests -wrapt==1.15.0 - # via - # -r requirements/test.txt - # astroid -zipp==3.16.2 +zipp==3.17.0 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 36694ac7..538879d2 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -12,7 +12,7 @@ asgiref==3.7.2 # via # -r requirements/base.txt # django -babel==2.12.1 +babel==2.13.0 # via # pydata-sphinx-theme # sphinx @@ -20,9 +20,9 @@ beautifulsoup4==4.12.2 # via pydata-sphinx-theme certifi==2023.7.22 # via requests -charset-normalizer==3.2.0 +charset-normalizer==3.3.1 # via requests -django==3.2.20 +django==3.2.22 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -49,20 +49,20 @@ jsonfield==3.1.0 # via -r requirements/base.txt markupsafe==2.1.3 # via jinja2 -packaging==23.1 +packaging==23.2 # via # pydata-sphinx-theme # sphinx pockets==0.9.1 # via sphinxcontrib-napoleon -pydata-sphinx-theme==0.13.3 +pydata-sphinx-theme==0.14.1 # via sphinx-book-theme pygments==2.16.1 # via # accessible-pygments # pydata-sphinx-theme # sphinx -pytz==2023.3 +pytz==2023.3.post1 # via # -r requirements/base.txt # babel @@ -76,7 +76,7 @@ six==1.16.0 # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via sphinx -soupsieve==2.4.1 +soupsieve==2.5 # via beautifulsoup4 sphinx==6.2.1 # via @@ -103,12 +103,12 @@ sqlparse==0.4.4 # via # -r requirements/base.txt # django -typing-extensions==4.7.1 +typing-extensions==4.8.0 # via # -r requirements/base.txt # asgiref # pydata-sphinx-theme -urllib3==2.0.4 +urllib3==2.0.7 # via requests -zipp==3.16.2 +zipp==3.17.0 # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index ed274ee9..50d35f22 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,13 +4,15 @@ # # make upgrade # -build==0.10.0 +build==1.0.3 # via pip-tools -click==8.1.6 +click==8.1.7 # via pip-tools -packaging==23.1 +importlib-metadata==6.8.0 # via build -pip-tools==7.2.0 +packaging==23.2 + # via build +pip-tools==7.3.0 # via -r requirements/pip-tools.in pyproject-hooks==1.0.0 # via build @@ -19,8 +21,10 @@ tomli==2.0.1 # build # pip-tools # pyproject-hooks -wheel==0.41.1 +wheel==0.41.2 # via pip-tools +zipp==3.17.0 + # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/pip.txt b/requirements/pip.txt index 5e2f7602..0c788d61 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.41.1 +wheel==0.41.2 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.2.1 +pip==23.3.1 # via -r requirements/pip.in -setuptools==68.0.0 +setuptools==68.2.2 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 3ea76e18..3dfe632d 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -17,11 +17,11 @@ asgiref==3.7.2 # -r requirements/base.txt # -r requirements/docs.txt # django -astroid==2.15.6 +astroid==3.0.1 # via # pylint # pylint-celery -babel==2.12.1 +babel==2.13.0 # via # -r requirements/docs.txt # pydata-sphinx-theme @@ -34,11 +34,11 @@ certifi==2023.7.22 # via # -r requirements/docs.txt # requests -charset-normalizer==3.2.0 +charset-normalizer==3.3.1 # via # -r requirements/docs.txt # requests -click==8.1.6 +click==8.1.7 # via # click-log # code-annotations @@ -47,8 +47,10 @@ click-log==0.4.0 # via edx-lint code-annotations==1.5.0 # via edx-lint -coverage[toml]==7.2.7 - # via pytest-cov +coverage[toml]==7.3.2 + # via + # coverage + # pytest-cov ddt==1.6.0 # via -r requirements/test.in dill==0.3.7 @@ -74,11 +76,11 @@ docutils==0.19 # sphinx edx-lint==5.3.4 # via -r requirements/test.in -exceptiongroup==1.1.2 +exceptiongroup==1.1.3 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==19.3.0 +faker==19.11.0 # via factory-boy freezegun==1.2.2 # via -r requirements/test.in @@ -109,8 +111,6 @@ jsonfield==3.1.0 # via # -r requirements/base.txt # -r requirements/docs.txt -lazy-object-proxy==1.9.0 - # via astroid markupsafe==2.1.3 # via # -r requirements/docs.txt @@ -119,7 +119,7 @@ mccabe==0.7.0 # via pylint mock==5.1.0 # via -r requirements/test.in -packaging==23.1 +packaging==23.2 # via # -r requirements/docs.txt # pydata-sphinx-theme @@ -127,17 +127,17 @@ packaging==23.1 # sphinx pbr==5.11.1 # via stevedore -platformdirs==3.10.0 +platformdirs==3.11.0 # via pylint -pluggy==1.2.0 +pluggy==1.3.0 # via pytest pockets==0.9.1 # via # -r requirements/docs.txt # sphinxcontrib-napoleon -pycodestyle==2.11.0 +pycodestyle==2.11.1 # via -r requirements/test.in -pydata-sphinx-theme==0.13.3 +pydata-sphinx-theme==0.14.1 # via # -r requirements/docs.txt # sphinx-book-theme @@ -147,7 +147,7 @@ pygments==2.16.1 # accessible-pygments # pydata-sphinx-theme # sphinx -pylint==2.17.5 +pylint==3.0.2 # via # edx-lint # pylint-celery @@ -155,13 +155,13 @@ pylint==2.17.5 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.3 +pylint-django==2.5.4 # via edx-lint pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==7.4.0 +pytest==7.4.2 # via # pytest-cov # pytest-django @@ -176,7 +176,7 @@ python-dateutil==2.8.2 # freezegun python-slugify==8.0.1 # via code-annotations -pytz==2023.3 +pytz==2023.3.post1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -200,7 +200,7 @@ snowballstemmer==2.2.0 # via # -r requirements/docs.txt # sphinx -soupsieve==2.4.1 +soupsieve==2.5 # via # -r requirements/docs.txt # beautifulsoup4 @@ -253,7 +253,7 @@ tomli==2.0.1 # pytest tomlkit==0.12.1 # via pylint -typing-extensions==4.7.1 +typing-extensions==4.8.0 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -262,13 +262,11 @@ typing-extensions==4.7.1 # faker # pydata-sphinx-theme # pylint -urllib3==2.0.4 +urllib3==2.0.7 # via # -r requirements/docs.txt # requests -wrapt==1.15.0 - # via astroid -zipp==3.16.2 +zipp==3.17.0 # via # -r requirements/docs.txt # importlib-metadata diff --git a/requirements/tox.txt b/requirements/tox.txt index b6b398f1..6899369f 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -6,15 +6,15 @@ # distlib==0.3.7 # via virtualenv -filelock==3.12.2 +filelock==3.12.4 # via # tox # virtualenv -packaging==23.1 +packaging==23.2 # via tox -platformdirs==3.10.0 +platformdirs==3.11.0 # via virtualenv -pluggy==1.2.0 +pluggy==1.3.0 # via tox py==1.11.0 # via tox @@ -26,5 +26,5 @@ tox==3.28.0 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/tox.in -virtualenv==20.24.2 +virtualenv==20.24.5 # via tox diff --git a/tox.ini b/tox.ini index bc844c87..cde9012f 100644 --- a/tox.ini +++ b/tox.ini @@ -15,7 +15,7 @@ commands = [testenv:quality] setenv = DJANGO_SETTINGS_MODULE=settings -whitelist_externals = +allowlist_externals = make deps = -r{toxinidir}/requirements/dev.txt From 0fd25340ace5e7866d20738cc8d20515fbb0a66a Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Mon, 23 Oct 2023 09:48:07 -0400 Subject: [PATCH 43/55] docs: Update the security e-mail address. This repository is now managed by the Axim Collaborative and security issues with it should be reported to security@openedx.org instead of security@edx.org This work is being done as a part of https://github.com/openedx/wg-security/issues/16 --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index c489d0fe..e517d18c 100644 --- a/README.rst +++ b/README.rst @@ -67,7 +67,7 @@ Please read `How To Contribute Date: Mon, 12 Feb 2024 11:24:28 -0500 Subject: [PATCH 44/55] chore: Updating Python Requirements --- requirements/base.txt | 8 ++--- requirements/ci.txt | 45 +++++++++++++++---------- requirements/dev.txt | 68 +++++++++++++++++++------------------- requirements/docs.txt | 30 ++++++++--------- requirements/pip-tools.txt | 4 +-- requirements/pip.txt | 6 ++-- requirements/test.txt | 66 ++++++++++++++++++------------------ requirements/tox.txt | 36 ++++++++++++-------- 8 files changed, 140 insertions(+), 123 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index fd521757..95a508a4 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,25 +6,25 @@ # asgiref==3.7.2 # via django -django==3.2.22 +django==3.2.24 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.3.1 +django-model-utils==4.4.0 # via -r requirements/base.in djangorestframework==3.14.0 # via -r requirements/base.in jsonfield==3.1.0 # via -r requirements/base.in -pytz==2023.3.post1 +pytz==2024.1 # via # -r requirements/base.in # django # djangorestframework sqlparse==0.4.4 # via django -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via asgiref diff --git a/requirements/ci.txt b/requirements/ci.txt index b5561d11..aa4f73c1 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,60 +4,69 @@ # # make upgrade # -certifi==2023.7.22 +cachetools==5.3.2 + # via + # -r requirements/tox.txt + # tox +certifi==2024.2.2 # via requests -charset-normalizer==3.3.1 +chardet==5.2.0 + # via + # -r requirements/tox.txt + # tox +charset-normalizer==3.3.2 # via requests +colorama==0.4.6 + # via + # -r requirements/tox.txt + # tox coverage==6.5.0 # via coveralls coveralls==3.3.1 # via -r requirements/ci.in -distlib==0.3.7 +distlib==0.3.8 # via # -r requirements/tox.txt # virtualenv docopt==0.6.2 # via coveralls -filelock==3.12.4 +filelock==3.13.1 # via # -r requirements/tox.txt # tox # virtualenv -idna==3.4 +idna==3.6 # via requests packaging==23.2 # via # -r requirements/tox.txt + # pyproject-api # tox -platformdirs==3.11.0 +platformdirs==4.2.0 # via # -r requirements/tox.txt + # tox # virtualenv -pluggy==1.3.0 +pluggy==1.4.0 # via # -r requirements/tox.txt # tox -py==1.11.0 +pyproject-api==1.6.1 # via # -r requirements/tox.txt # tox requests==2.31.0 # via coveralls -six==1.16.0 - # via - # -r requirements/tox.txt - # tox tomli==2.0.1 # via # -r requirements/tox.txt + # pyproject-api # tox -tox==3.28.0 - # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/tox.txt -urllib3==2.0.7 +tox==4.12.1 + # via -r requirements/tox.txt +urllib3==2.2.0 # via requests -virtualenv==20.24.5 +virtualenv==20.25.0 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index c8b022f3..a0408421 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -20,28 +20,28 @@ asgiref==3.7.2 # -r requirements/docs.txt # -r requirements/test.txt # django -astroid==3.0.1 +astroid==3.0.3 # via # -r requirements/test.txt # pylint # pylint-celery -babel==2.13.0 +babel==2.14.0 # via # -r requirements/docs.txt # -r requirements/test.txt # pydata-sphinx-theme # sphinx -beautifulsoup4==4.12.2 +beautifulsoup4==4.12.3 # via # -r requirements/docs.txt # -r requirements/test.txt # pydata-sphinx-theme -certifi==2023.7.22 +certifi==2024.2.2 # via # -r requirements/docs.txt # -r requirements/test.txt # requests -charset-normalizer==3.3.1 +charset-normalizer==3.3.2 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -56,22 +56,22 @@ click-log==0.4.0 # via # -r requirements/test.txt # edx-lint -code-annotations==1.5.0 +code-annotations==1.6.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.3.2 +coverage[toml]==7.4.1 # via # -r requirements/test.txt # coverage # pytest-cov -ddt==1.6.0 +ddt==1.7.1 # via -r requirements/test.txt -dill==0.3.7 +dill==0.3.8 # via # -r requirements/test.txt # pylint -django==3.2.22 +django==3.2.24 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt @@ -80,7 +80,7 @@ django==3.2.22 # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.3.1 +django-model-utils==4.4.0 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -96,21 +96,21 @@ docutils==0.19 # -r requirements/test.txt # pydata-sphinx-theme # sphinx -edx-lint==5.3.4 +edx-lint==5.3.6 # via -r requirements/test.txt -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via # -r requirements/test.txt # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==19.11.0 +faker==23.1.0 # via # -r requirements/test.txt # factory-boy -freezegun==1.2.2 +freezegun==1.4.0 # via -r requirements/test.txt -idna==3.4 +idna==3.6 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -120,7 +120,7 @@ imagesize==1.4.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -129,11 +129,11 @@ iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/test.txt # pylint -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -144,7 +144,7 @@ jsonfield==3.1.0 # -r requirements/base.txt # -r requirements/docs.txt # -r requirements/test.txt -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -162,15 +162,15 @@ packaging==23.2 # pydata-sphinx-theme # pytest # sphinx -pbr==5.11.1 +pbr==6.0.0 # via # -r requirements/test.txt # stevedore -platformdirs==3.11.0 +platformdirs==4.2.0 # via # -r requirements/test.txt # pylint -pluggy==1.3.0 +pluggy==1.4.0 # via # -r requirements/test.txt # pytest @@ -181,19 +181,19 @@ pockets==0.9.1 # sphinxcontrib-napoleon pycodestyle==2.11.1 # via -r requirements/test.txt -pydata-sphinx-theme==0.14.1 +pydata-sphinx-theme==0.14.4 # via # -r requirements/docs.txt # -r requirements/test.txt # sphinx-book-theme -pygments==2.16.1 +pygments==2.17.2 # via # -r requirements/docs.txt # -r requirements/test.txt # accessible-pygments # pydata-sphinx-theme # sphinx -pylint==3.0.2 +pylint==3.0.3 # via # -r requirements/test.txt # edx-lint @@ -204,7 +204,7 @@ pylint-celery==0.3 # via # -r requirements/test.txt # edx-lint -pylint-django==2.5.4 +pylint-django==2.5.5 # via # -r requirements/test.txt # edx-lint @@ -213,25 +213,25 @@ pylint-plugin-utils==0.8.2 # -r requirements/test.txt # pylint-celery # pylint-django -pytest==7.4.2 +pytest==8.0.0 # via # -r requirements/test.txt # pytest-cov # pytest-django pytest-cov==4.1.0 # via -r requirements/test.txt -pytest-django==4.5.2 +pytest-django==4.8.0 # via -r requirements/test.txt python-dateutil==2.8.2 # via # -r requirements/test.txt # faker # freezegun -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pytz==2023.3.post1 +pytz==2024.1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -330,11 +330,11 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.12.1 +tomlkit==0.12.3 # via # -r requirements/test.txt # pylint -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -344,7 +344,7 @@ typing-extensions==4.8.0 # faker # pydata-sphinx-theme # pylint -urllib3==2.0.7 +urllib3==2.2.0 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 538879d2..4f5ef712 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -12,24 +12,24 @@ asgiref==3.7.2 # via # -r requirements/base.txt # django -babel==2.13.0 +babel==2.14.0 # via # pydata-sphinx-theme # sphinx -beautifulsoup4==4.12.2 +beautifulsoup4==4.12.3 # via pydata-sphinx-theme -certifi==2023.7.22 +certifi==2024.2.2 # via requests -charset-normalizer==3.3.1 +charset-normalizer==3.3.2 # via requests -django==3.2.22 +django==3.2.24 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.3.1 +django-model-utils==4.4.0 # via -r requirements/base.txt djangorestframework==3.14.0 # via -r requirements/base.txt @@ -37,17 +37,17 @@ docutils==0.19 # via # pydata-sphinx-theme # sphinx -idna==3.4 +idna==3.6 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via sphinx -jinja2==3.1.2 +jinja2==3.1.3 # via sphinx jsonfield==3.1.0 # via -r requirements/base.txt -markupsafe==2.1.3 +markupsafe==2.1.5 # via jinja2 packaging==23.2 # via @@ -55,14 +55,14 @@ packaging==23.2 # sphinx pockets==0.9.1 # via sphinxcontrib-napoleon -pydata-sphinx-theme==0.14.1 +pydata-sphinx-theme==0.14.4 # via sphinx-book-theme -pygments==2.16.1 +pygments==2.17.2 # via # accessible-pygments # pydata-sphinx-theme # sphinx -pytz==2023.3.post1 +pytz==2024.1 # via # -r requirements/base.txt # babel @@ -103,12 +103,12 @@ sqlparse==0.4.4 # via # -r requirements/base.txt # django -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # -r requirements/base.txt # asgiref # pydata-sphinx-theme -urllib3==2.0.7 +urllib3==2.2.0 # via requests zipp==3.17.0 # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 50d35f22..0e882265 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -8,7 +8,7 @@ build==1.0.3 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via build packaging==23.2 # via build @@ -21,7 +21,7 @@ tomli==2.0.1 # build # pip-tools # pyproject-hooks -wheel==0.41.2 +wheel==0.42.0 # via pip-tools zipp==3.17.0 # via importlib-metadata diff --git a/requirements/pip.txt b/requirements/pip.txt index 0c788d61..71954cc6 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.41.2 +wheel==0.42.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.3.1 +pip==24.0 # via -r requirements/pip.in -setuptools==68.2.2 +setuptools==69.1.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 3dfe632d..a251e330 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -17,24 +17,24 @@ asgiref==3.7.2 # -r requirements/base.txt # -r requirements/docs.txt # django -astroid==3.0.1 +astroid==3.0.3 # via # pylint # pylint-celery -babel==2.13.0 +babel==2.14.0 # via # -r requirements/docs.txt # pydata-sphinx-theme # sphinx -beautifulsoup4==4.12.2 +beautifulsoup4==4.12.3 # via # -r requirements/docs.txt # pydata-sphinx-theme -certifi==2023.7.22 +certifi==2024.2.2 # via # -r requirements/docs.txt # requests -charset-normalizer==3.3.1 +charset-normalizer==3.3.2 # via # -r requirements/docs.txt # requests @@ -45,15 +45,15 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.5.0 +code-annotations==1.6.0 # via edx-lint -coverage[toml]==7.3.2 +coverage[toml]==7.4.1 # via # coverage # pytest-cov -ddt==1.6.0 +ddt==1.7.1 # via -r requirements/test.in -dill==0.3.7 +dill==0.3.8 # via pylint # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt @@ -62,7 +62,7 @@ dill==0.3.7 # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.3.1 +django-model-utils==4.4.0 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -74,17 +74,17 @@ docutils==0.19 # -r requirements/docs.txt # pydata-sphinx-theme # sphinx -edx-lint==5.3.4 +edx-lint==5.3.6 # via -r requirements/test.in -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==19.11.0 +faker==23.1.0 # via factory-boy -freezegun==1.2.2 +freezegun==1.4.0 # via -r requirements/test.in -idna==3.4 +idna==3.6 # via # -r requirements/docs.txt # requests @@ -92,17 +92,17 @@ imagesize==1.4.1 # via # -r requirements/docs.txt # sphinx -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via # -r requirements/docs.txt # sphinx iniconfig==2.0.0 # via pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/test.in # pylint -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/docs.txt # code-annotations @@ -111,7 +111,7 @@ jsonfield==3.1.0 # via # -r requirements/base.txt # -r requirements/docs.txt -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/docs.txt # jinja2 @@ -125,11 +125,11 @@ packaging==23.2 # pydata-sphinx-theme # pytest # sphinx -pbr==5.11.1 +pbr==6.0.0 # via stevedore -platformdirs==3.11.0 +platformdirs==4.2.0 # via pylint -pluggy==1.3.0 +pluggy==1.4.0 # via pytest pockets==0.9.1 # via @@ -137,17 +137,17 @@ pockets==0.9.1 # sphinxcontrib-napoleon pycodestyle==2.11.1 # via -r requirements/test.in -pydata-sphinx-theme==0.14.1 +pydata-sphinx-theme==0.14.4 # via # -r requirements/docs.txt # sphinx-book-theme -pygments==2.16.1 +pygments==2.17.2 # via # -r requirements/docs.txt # accessible-pygments # pydata-sphinx-theme # sphinx -pylint==3.0.2 +pylint==3.0.3 # via # edx-lint # pylint-celery @@ -155,28 +155,28 @@ pylint==3.0.2 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.4 +pylint-django==2.5.5 # via edx-lint pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==7.4.2 +pytest==8.0.0 # via # pytest-cov # pytest-django pytest-cov==4.1.0 # via -r requirements/test.in -pytest-django==4.5.2 +pytest-django==4.8.0 # via -r requirements/test.in python-dateutil==2.8.2 # via # -r requirements/test.in # faker # freezegun -python-slugify==8.0.1 +python-slugify==8.0.4 # via code-annotations -pytz==2023.3.post1 +pytz==2024.1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -251,9 +251,9 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.12.1 +tomlkit==0.12.3 # via pylint -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -262,7 +262,7 @@ typing-extensions==4.8.0 # faker # pydata-sphinx-theme # pylint -urllib3==2.0.7 +urllib3==2.2.0 # via # -r requirements/docs.txt # requests diff --git a/requirements/tox.txt b/requirements/tox.txt index 6899369f..28261f31 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -4,27 +4,35 @@ # # make upgrade # -distlib==0.3.7 +cachetools==5.3.2 + # via tox +chardet==5.2.0 + # via tox +colorama==0.4.6 + # via tox +distlib==0.3.8 # via virtualenv -filelock==3.12.4 +filelock==3.13.1 # via # tox # virtualenv packaging==23.2 + # via + # pyproject-api + # tox +platformdirs==4.2.0 + # via + # tox + # virtualenv +pluggy==1.4.0 # via tox -platformdirs==3.11.0 - # via virtualenv -pluggy==1.3.0 - # via tox -py==1.11.0 - # via tox -six==1.16.0 +pyproject-api==1.6.1 # via tox tomli==2.0.1 - # via tox -tox==3.28.0 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/tox.in -virtualenv==20.24.5 + # pyproject-api + # tox +tox==4.12.1 + # via -r requirements/tox.in +virtualenv==20.25.0 # via tox From 0106916a70f4f3dfbf4dbdb00d4b840cd709bebd Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Mon, 26 Feb 2024 11:24:06 -0500 Subject: [PATCH 45/55] chore: Updating Python Requirements --- requirements/base.txt | 2 +- requirements/ci.txt | 6 +++--- requirements/dev.txt | 19 +++++++++---------- requirements/docs.txt | 4 ++-- requirements/pip-tools.txt | 6 ++++-- requirements/pip.txt | 2 +- requirements/test.txt | 22 ++++++++++------------ requirements/tox.txt | 4 ++-- 8 files changed, 32 insertions(+), 33 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 95a508a4..c2065487 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -26,5 +26,5 @@ pytz==2024.1 # djangorestframework sqlparse==0.4.4 # via django -typing-extensions==4.9.0 +typing-extensions==4.10.0 # via asgiref diff --git a/requirements/ci.txt b/requirements/ci.txt index aa4f73c1..4987c487 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -62,11 +62,11 @@ tomli==2.0.1 # -r requirements/tox.txt # pyproject-api # tox -tox==4.12.1 +tox==4.13.0 # via -r requirements/tox.txt -urllib3==2.2.0 +urllib3==2.2.1 # via requests -virtualenv==20.25.0 +virtualenv==20.25.1 # via # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index a0408421..4e3d7a37 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -20,7 +20,7 @@ asgiref==3.7.2 # -r requirements/docs.txt # -r requirements/test.txt # django -astroid==3.0.3 +astroid==3.1.0 # via # -r requirements/test.txt # pylint @@ -60,12 +60,11 @@ code-annotations==1.6.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.4.1 +coverage[toml]==7.4.3 # via # -r requirements/test.txt - # coverage # pytest-cov -ddt==1.7.1 +ddt==1.7.2 # via -r requirements/test.txt dill==0.3.8 # via @@ -104,7 +103,7 @@ exceptiongroup==1.2.0 # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==23.1.0 +faker==23.2.1 # via # -r requirements/test.txt # factory-boy @@ -193,7 +192,7 @@ pygments==2.17.2 # accessible-pygments # pydata-sphinx-theme # sphinx -pylint==3.0.3 +pylint==3.1.0 # via # -r requirements/test.txt # edx-lint @@ -213,7 +212,7 @@ pylint-plugin-utils==0.8.2 # -r requirements/test.txt # pylint-celery # pylint-django -pytest==8.0.0 +pytest==8.0.2 # via # -r requirements/test.txt # pytest-cov @@ -316,7 +315,7 @@ sqlparse==0.4.4 # -r requirements/docs.txt # -r requirements/test.txt # django -stevedore==5.1.0 +stevedore==5.2.0 # via # -r requirements/test.txt # code-annotations @@ -334,7 +333,7 @@ tomlkit==0.12.3 # via # -r requirements/test.txt # pylint -typing-extensions==4.9.0 +typing-extensions==4.10.0 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -344,7 +343,7 @@ typing-extensions==4.9.0 # faker # pydata-sphinx-theme # pylint -urllib3==2.2.0 +urllib3==2.2.1 # via # -r requirements/docs.txt # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 4f5ef712..3ea9fad8 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -103,12 +103,12 @@ sqlparse==0.4.4 # via # -r requirements/base.txt # django -typing-extensions==4.9.0 +typing-extensions==4.10.0 # via # -r requirements/base.txt # asgiref # pydata-sphinx-theme -urllib3==2.2.0 +urllib3==2.2.1 # via requests zipp==3.17.0 # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 0e882265..44c48d99 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -12,10 +12,12 @@ importlib-metadata==7.0.1 # via build packaging==23.2 # via build -pip-tools==7.3.0 +pip-tools==7.4.0 # via -r requirements/pip-tools.in pyproject-hooks==1.0.0 - # via build + # via + # build + # pip-tools tomli==2.0.1 # via # build diff --git a/requirements/pip.txt b/requirements/pip.txt index 71954cc6..66656035 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -10,5 +10,5 @@ wheel==0.42.0 # The following packages are considered to be unsafe in a requirements file: pip==24.0 # via -r requirements/pip.in -setuptools==69.1.0 +setuptools==69.1.1 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index a251e330..8a8e286e 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -17,7 +17,7 @@ asgiref==3.7.2 # -r requirements/base.txt # -r requirements/docs.txt # django -astroid==3.0.3 +astroid==3.1.0 # via # pylint # pylint-celery @@ -47,11 +47,9 @@ click-log==0.4.0 # via edx-lint code-annotations==1.6.0 # via edx-lint -coverage[toml]==7.4.1 - # via - # coverage - # pytest-cov -ddt==1.7.1 +coverage[toml]==7.4.3 + # via pytest-cov +ddt==1.7.2 # via -r requirements/test.in dill==0.3.8 # via pylint @@ -80,7 +78,7 @@ exceptiongroup==1.2.0 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==23.1.0 +faker==23.2.1 # via factory-boy freezegun==1.4.0 # via -r requirements/test.in @@ -147,7 +145,7 @@ pygments==2.17.2 # accessible-pygments # pydata-sphinx-theme # sphinx -pylint==3.0.3 +pylint==3.1.0 # via # edx-lint # pylint-celery @@ -161,7 +159,7 @@ pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==8.0.0 +pytest==8.0.2 # via # pytest-cov # pytest-django @@ -242,7 +240,7 @@ sqlparse==0.4.4 # -r requirements/base.txt # -r requirements/docs.txt # django -stevedore==5.1.0 +stevedore==5.2.0 # via code-annotations text-unidecode==1.3 # via python-slugify @@ -253,7 +251,7 @@ tomli==2.0.1 # pytest tomlkit==0.12.3 # via pylint -typing-extensions==4.9.0 +typing-extensions==4.10.0 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -262,7 +260,7 @@ typing-extensions==4.9.0 # faker # pydata-sphinx-theme # pylint -urllib3==2.2.0 +urllib3==2.2.1 # via # -r requirements/docs.txt # requests diff --git a/requirements/tox.txt b/requirements/tox.txt index 28261f31..9a12d689 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -32,7 +32,7 @@ tomli==2.0.1 # via # pyproject-api # tox -tox==4.12.1 +tox==4.13.0 # via -r requirements/tox.in -virtualenv==20.25.0 +virtualenv==20.25.1 # via tox From a354b774ac09e1cc7f4578a0f218705d24695013 Mon Sep 17 00:00:00 2001 From: Jillian Date: Fri, 29 Mar 2024 12:23:28 +1030 Subject: [PATCH 46/55] Adds catalog-info.yaml and updates README as per OEP-55 (#233) * chore: adds catalog-info.yaml with new maintainer information. * chore: updates README using template See OEP-55 / 0003 README specification * chore: move LICENSE to LICENSE.txt to match cookiecutter defaults --- LICENSE => LICENSE.txt | 0 README.rst | 142 +++++++++++++++++++++++++++++++---------- catalog-info.yaml | 17 +++++ 3 files changed, 124 insertions(+), 35 deletions(-) rename LICENSE => LICENSE.txt (100%) create mode 100644 catalog-info.yaml diff --git a/LICENSE b/LICENSE.txt similarity index 100% rename from LICENSE rename to LICENSE.txt diff --git a/README.rst b/README.rst index e517d18c..ee441770 100644 --- a/README.rst +++ b/README.rst @@ -1,40 +1,30 @@ -.. image:: https://github.com/openedx/edx-submissions/workflows/Python%20CI/badge.svg?branch=master - :target: https://github.com/openedx/edx-submissions/actions?query=workflow%3A%22Python+CI%22 - :alt: Build status - -.. image:: https://coveralls.io/repos/edx/edx-submissions/badge.png?branch=master - :target: https://coveralls.io/r/edx/edx-submissions?branch=master - :alt: Coverage badge - - edx-submissions -=============== +############### -API for creating submissions and scores. +|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge| |license-badge| |status-badge| -Overview --------- +Purpose +******* ``submissions`` is a Django app that defines a common interface for creating submissions and scores. +Getting Started with Development +******************************** -Getting Started ---------------- - -To install the ``submissions`` app: +To install the ``submissions`` app, run these commands from the `edx-submissions` root directory: .. code:: bash - python setup.py install + pip install -e To run the test suite: .. code:: bash - make test_requirements - tox # to run only a single environment, do e.g. tox -e py35-django22-drf39 + pip install tox + tox # to run only a single environment, do e.g. tox -e py38-django42-drf314 To use a Django shell to test commands: @@ -42,38 +32,120 @@ To use a Django shell to test commands: .. code:: bash make dev_requirements - ./manage.py migrate - ./manage.py shell --settings=settings + python manage.py migrate + python manage.py shell --settings=settings >>> from submissions.serializers import StudentItemSerializer >>> +Deploying +********* + +Tagged versions of the edx-submissions library are released to pypi.org. + +To use the latest release in your project, add the following to your pip requirements file: + +.. code:: bash + + edx-submissions + +Getting Help +************ + +Documentation +============= + +Start by going through `the documentation`_ (generated from `/docs `_). If you need more help see below. + +.. _the documentation: https://docs.openedx.org/projects/edx-submissions + +More Help +========= + +If you're having trouble, we have discussion forums at +https://discuss.openedx.org where you can connect with others in the +community. + +Our real-time conversations are on Slack. You can request a `Slack +invitation`_, then join our `community Slack workspace`_. + +For anything non-trivial, the best path is to open an issue in this +repository with as many details about the issue you are facing as you +can provide. + +https://github.com/openedx/edx-submissions/issues + +For more information about these options, see the `Getting Help `__ page. + +.. _Slack invitation: https://openedx.org/slack +.. _community Slack workspace: https://openedx.slack.com/ + License -------- +******* The code in this repository is licensed under version 3 of the AGPL unless otherwise noted. -Please see ``LICENSE.txt`` for details. +Please see `LICENSE.txt `_ for details. - -How To Contribute ------------------ +Contributing +************ Contributions are very welcome. +Please read `How To Contribute `_ for details. + +This project is currently accepting all types of contributions, bug fixes, +security fixes, maintenance work, or new features. However, please make sure +to have a discussion about your new feature idea with the maintainers prior to +beginning development to maximize the chances of your change being accepted. +You can start a conversation by creating a new issue on this repo summarizing +your idea. -Please read `How To Contribute `_ for details. +The Open edX Code of Conduct +**************************** +All community members are expected to follow the `Open edX Code of Conduct`_. + +.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/ + +People +****** + +The assigned maintainers for this component and other project details may be +found in `Backstage`_. Backstage pulls this data from the ``catalog-info.yaml`` +file in this repo. + +.. _Backstage: https://backstage.openedx.org/catalog/default/component/edx-submissions Reporting Security Issues -------------------------- +************************* + +Please do not report security issues in public. Please email security@openedx.org. + +.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-submissions.svg + :target: https://pypi.python.org/pypi/edx-submissions/ + :alt: PyPI + +.. |ci-badge| image:: https://github.com/openedx/edx-submissions/actions/workflows/ci.yml/badge.svg?branch=master + :target: https://github.com/openedx/edx-submissions/actions/workflows/ci.yml?branch=master + :alt: CI -Please do not report security issues in public. Please email security@openedx.org +.. |codecov-badge| image:: https://codecov.io/github/openedx/edx-submissions/coverage.svg?branch=master + :target: https://codecov.io/github/openedx/edx-submissions?branch=master + :alt: Codecov +.. |doc-badge| image:: https://readthedocs.org/projects/edx-submissions/badge/?version=latest + :target: https://docs.openedx.org/projects/edx-submissions + :alt: Documentation -Mailing List and IRC Channel ----------------------------- +.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-submissions.svg + :target: https://pypi.python.org/pypi/edx-submissions/ + :alt: Supported Python versions -You can discuss this code on the `edx-code Google Group`__ or in the -``edx-code`` IRC channel on Freenode. +.. |license-badge| image:: https://img.shields.io/github/license/openedx/edx-submissions.svg + :target: https://github.com/openedx/edx-submissions/blob/master/LICENSE.txt + :alt: License -__ https://groups.google.com/forum/#!forum/edx-code +.. .. |status-badge| image:: https://img.shields.io/badge/Status-Experimental-yellow +.. |status-badge| image:: https://img.shields.io/badge/Status-Maintained-brightgreen +.. .. |status-badge| image:: https://img.shields.io/badge/Status-Deprecated-orange +.. .. |status-badge| image:: https://img.shields.io/badge/Status-Unsupported-red diff --git a/catalog-info.yaml b/catalog-info.yaml new file mode 100644 index 00000000..02e0ca76 --- /dev/null +++ b/catalog-info.yaml @@ -0,0 +1,17 @@ +# This file records information about this repo. Its use is described in OEP-55: +# https://open-edx-proposals.readthedocs.io/en/latest/processes/oep-0055-proc-project-maintainers.html + +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: 'edx-submissions' + description: "API for creating submissions and scores" + links: + - url: "https://github.com/openedx/edx-submissions" + title: "Submissions API", + icon: "Web" +spec: + owner: group:committers-edx-submissions + type: 'library' + lifecycle: 'production' + subcomponentOf: 'edx-ora2' From 1c9120619559175d597a83119841d4568c67aca8 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Fri, 29 Mar 2024 13:24:15 -0400 Subject: [PATCH 47/55] fix: Remove trailing comma that caused this to be invalid yaml. --- catalog-info.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/catalog-info.yaml b/catalog-info.yaml index 02e0ca76..dd779ac6 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -8,7 +8,7 @@ metadata: description: "API for creating submissions and scores" links: - url: "https://github.com/openedx/edx-submissions" - title: "Submissions API", + title: "Submissions API" icon: "Web" spec: owner: group:committers-edx-submissions From 5273df15accd05257767e83b0a9e23483ef8ca59 Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Mon, 1 Apr 2024 19:53:05 +0500 Subject: [PATCH 48/55] feat: adding python 3.11 and 3.12 support (#227) * feat: adding python 3.11 and 3.12 support. --------- Co-authored-by: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com> --- .github/workflows/ci.yml | 7 ++--- Makefile | 18 +++++++++-- pylintrc | 17 +++-------- requirements/base.in | 9 ++---- requirements/base.txt | 22 +++++++++----- requirements/ci.txt | 8 ++--- requirements/common_constraints.txt | 37 +++++++++++++++++++++++ requirements/constraints.txt | 5 +++- requirements/dev.txt | 46 +++++++++++++++++++---------- requirements/docs.txt | 30 ++++++++++++------- requirements/pip-tools.txt | 22 ++++++++------ requirements/pip.txt | 4 +-- requirements/test.txt | 40 ++++++++++++++++--------- requirements/tox.txt | 8 ++--- setup.py | 5 ++-- submissions/__init__.py | 2 +- submissions/errors.py | 4 +-- tox.ini | 6 ++-- 18 files changed, 187 insertions(+), 103 deletions(-) create mode 100644 requirements/common_constraints.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3007fb4c..e06ddf3e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,10 +14,9 @@ jobs: strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8'] - toxenv: [ - quality, docs, django32-drf314, django42-drf314 - ] + python-version: ['3.8', '3.11', '3.12'] + toxenv: [quality, docs, django42-drf314] + steps: - uses: actions/checkout@v2 diff --git a/Makefile b/Makefile index 3cce4488..524e0a57 100644 --- a/Makefile +++ b/Makefile @@ -37,9 +37,21 @@ dev_requirements: ## Install Dev Requirements test_requirements: ## Install Test Requirements pip install -r requirements/test.txt -upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade -upgrade: ## Update the requirements/*.txt files with the latest packages satisfying requirements/*.in - pip install -qr requirements/pip-tools.txt +piptools: + pip install -q -r requirements/pip-tools.txt + +define COMMON_CONSTRAINTS_TEMP_COMMENT +# This is a temporary solution to override the real common_constraints.txt\n# In edx-lint, until the pyjwt constraint in edx-lint has been removed.\n# See BOM-2721 for more details.\n# Below is the copied and edited version of common_constraints\n +endef + +COMMON_CONSTRAINTS_TXT=requirements/common_constraints.txt +.PHONY: $(COMMON_CONSTRAINTS_TXT) +$(COMMON_CONSTRAINTS_TXT): + wget -O "$(@)" https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt || touch "$(@)" + echo "$(COMMON_CONSTRAINTS_TEMP_COMMENT)" | cat - $(@) > temp && mv temp $(@) + +export CUSTOM_COMPILE_COMMAND = make upgrade +upgrade: piptools $(COMMON_CONSTRAINTS_TXT) ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in # Make sure to compile files after any other files they include! pip-compile --upgrade --allow-unsafe --rebuild -o requirements/pip.txt requirements/pip.in pip-compile --upgrade --verbose --rebuild -o requirements/pip-tools.txt requirements/pip-tools.in diff --git a/pylintrc b/pylintrc index cadb4901..2853a4d7 100644 --- a/pylintrc +++ b/pylintrc @@ -64,7 +64,7 @@ # SERIOUSLY. # # ------------------------------ -# Generated by edx-lint version: 5.2.5 +# Generated by edx-lint version: 5.3.6 # ------------------------------ [MASTER] ignore = @@ -141,7 +141,6 @@ enable = no-self-argument, no-value-for-parameter, non-iterator-returned, - non-parent-method-called, nonexistent-operator, not-a-mapping, not-an-iterable, @@ -161,13 +160,10 @@ enable = return-outside-function, signature-differs, super-init-not-called, - super-method-not-called, syntax-error, - test-inherits-tests, too-few-format-args, too-many-format-args, too-many-function-args, - translation-of-non-string, truncated-format-string, undefined-all-variable, undefined-loop-variable, @@ -213,7 +209,6 @@ enable = consider-using-enumerate, global-at-module-level, global-variable-not-assigned, - literal-used-as-attribute, logging-format-interpolation, logging-not-lazy, multiple-imports, @@ -224,7 +219,6 @@ enable = redundant-unittest-assert, reimported, simplifiable-if-statement, - simplifiable-range, singleton-comparison, superfluous-parens, unidiomatic-typecheck, @@ -233,7 +227,6 @@ enable = unnecessary-semicolon, unneeded-not, useless-else-on-loop, - wrong-assert-type, deprecated-method, deprecated-module, @@ -259,6 +252,7 @@ enable = useless-suppression, disable = bad-indentation, + broad-exception-raised, consider-using-f-string, duplicate-code, file-ignored, @@ -282,9 +276,6 @@ disable = unused-wildcard-import, use-maxsplit-arg, - feature-toggle-needs-doc, - illegal-waffle-usage, - logging-fstring-interpolation, [REPORTS] @@ -380,6 +371,6 @@ ext-import-graph = int-import-graph = [EXCEPTIONS] -overgeneral-exceptions = Exception +overgeneral-exceptions = builtins.Exception -# 54daa2b24c4b5341a45cdb4727fe15d05ef04c5f +# 5f343c05ade94b1f05eeb1763ca543bf867246f6 diff --git a/requirements/base.in b/requirements/base.in index 2da04d9f..18a523f5 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -3,12 +3,7 @@ -c constraints.txt Django -django-model-utils>=2.3.1 - +django-model-utils jsonfield pytz - - -# Don't let edx-platform upgrade DRF past versions that have already been tested here -djangorestframework<3.15.0 - +djangorestframework diff --git a/requirements/base.txt b/requirements/base.txt index c2065487..97262bef 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,27 +4,33 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via django -django==3.2.24 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -c requirements/constraints.txt + # django + # djangorestframework +django==4.2.11 + # via + # -c requirements/common_constraints.txt # -r requirements/base.in # django-model-utils # djangorestframework # jsonfield django-model-utils==4.4.0 # via -r requirements/base.in -djangorestframework==3.14.0 +djangorestframework==3.15.1 # via -r requirements/base.in jsonfield==3.1.0 # via -r requirements/base.in pytz==2024.1 - # via - # -r requirements/base.in - # django - # djangorestframework + # via -r requirements/base.in sqlparse==0.4.4 # via django typing-extensions==4.10.0 # via asgiref + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.2.0 + # via -r requirements/base.in diff --git a/requirements/ci.txt b/requirements/ci.txt index 4987c487..53fbcda7 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,7 +4,7 @@ # # make upgrade # -cachetools==5.3.2 +cachetools==5.3.3 # via # -r requirements/tox.txt # tox @@ -30,14 +30,14 @@ distlib==0.3.8 # virtualenv docopt==0.6.2 # via coveralls -filelock==3.13.1 +filelock==3.13.3 # via # -r requirements/tox.txt # tox # virtualenv idna==3.6 # via requests -packaging==23.2 +packaging==24.0 # via # -r requirements/tox.txt # pyproject-api @@ -62,7 +62,7 @@ tomli==2.0.1 # -r requirements/tox.txt # pyproject-api # tox -tox==4.13.0 +tox==4.14.2 # via -r requirements/tox.txt urllib3==2.2.1 # via requests diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt new file mode 100644 index 00000000..c9d8d9cc --- /dev/null +++ b/requirements/common_constraints.txt @@ -0,0 +1,37 @@ +# This is a temporary solution to override the real common_constraints.txt +# In edx-lint, until the pyjwt constraint in edx-lint has been removed. +# See BOM-2721 for more details. +# Below is the copied and edited version of common_constraints + +# A central location for most common version constraints +# (across edx repos) for pip-installation. +# +# Similar to other constraint files this file doesn't install any packages. +# It specifies version constraints that will be applied if a package is needed. +# When pinning something here, please provide an explanation of why it is a good +# idea to pin this package across all edx repos, Ideally, link to other information +# that will help people in the future to remove the pin when possible. +# Writing an issue against the offending project and linking to it here is good. +# +# Note: Changes to this file will automatically be used by other repos, referencing +# this file from Github directly. It does not require packaging in edx-lint. + + +# using LTS django version +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 +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 + +# opentelemetry requires version 6.x at the moment: +# https://github.com/open-telemetry/opentelemetry-python/issues/3570 +# Normally this could be added as a constraint in edx-django-utils, where we're +# adding the opentelemetry dependency. However, when we compile pip-tools.txt, +# that uses version 7.x, and then there's no undoing that when compiling base.txt. +# So we need to pin it globally, for now. +# Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407 +importlib-metadata<7 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 99724184..e8243137 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -9,4 +9,7 @@ # linking to it here is good. # This file contains all common constraints for edx-repos --c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt +# Common constraints for edx repos +-c common_constraints.txt + +backports.zoneinfo;python_version<"3.9" \ No newline at end of file diff --git a/requirements/dev.txt b/requirements/dev.txt index 4e3d7a37..0dffed8e 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -14,7 +14,7 @@ alabaster==0.7.13 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -31,6 +31,14 @@ babel==2.14.0 # -r requirements/test.txt # pydata-sphinx-theme # sphinx +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt + # django + # djangorestframework beautifulsoup4==4.12.3 # via # -r requirements/docs.txt @@ -56,11 +64,11 @@ click-log==0.4.0 # via # -r requirements/test.txt # edx-lint -code-annotations==1.6.0 +code-annotations==1.7.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.4.3 +coverage[toml]==7.4.4 # via # -r requirements/test.txt # pytest-cov @@ -70,9 +78,9 @@ dill==0.3.8 # via # -r requirements/test.txt # pylint -django==3.2.24 +django==4.2.11 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.txt # -r requirements/docs.txt # -r requirements/test.txt @@ -84,7 +92,7 @@ django-model-utils==4.4.0 # -r requirements/base.txt # -r requirements/docs.txt # -r requirements/test.txt -djangorestframework==3.14.0 +djangorestframework==3.15.1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -103,7 +111,7 @@ exceptiongroup==1.2.0 # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==23.2.1 +faker==24.4.0 # via # -r requirements/test.txt # factory-boy @@ -119,8 +127,9 @@ imagesize==1.4.1 # -r requirements/docs.txt # -r requirements/test.txt # sphinx -importlib-metadata==7.0.1 +importlib-metadata==6.11.0 # via + # -c requirements/common_constraints.txt # -r requirements/docs.txt # -r requirements/test.txt # sphinx @@ -154,7 +163,7 @@ mccabe==0.7.0 # pylint mock==5.1.0 # via -r requirements/test.txt -packaging==23.2 +packaging==24.0 # via # -r requirements/docs.txt # -r requirements/test.txt @@ -212,16 +221,16 @@ pylint-plugin-utils==0.8.2 # -r requirements/test.txt # pylint-celery # pylint-django -pytest==8.0.2 +pytest==8.1.1 # via # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==5.0.0 # via -r requirements/test.txt pytest-django==4.8.0 # via -r requirements/test.txt -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/test.txt # faker @@ -236,8 +245,6 @@ pytz==2024.1 # -r requirements/docs.txt # -r requirements/test.txt # babel - # django - # djangorestframework pyyaml==6.0.1 # via # -r requirements/test.txt @@ -329,7 +336,7 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.12.3 +tomlkit==0.12.4 # via # -r requirements/test.txt # pylint @@ -348,8 +355,15 @@ urllib3==2.2.1 # -r requirements/docs.txt # -r requirements/test.txt # requests -zipp==3.17.0 +zipp==3.18.1 # via # -r requirements/docs.txt # -r requirements/test.txt # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.2.0 + # via + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 3ea9fad8..79cb8a03 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -8,7 +8,7 @@ accessible-pygments==0.0.4 # via pydata-sphinx-theme alabaster==0.7.13 # via sphinx -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # django @@ -16,22 +16,28 @@ babel==2.14.0 # via # pydata-sphinx-theme # sphinx +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # django + # djangorestframework beautifulsoup4==4.12.3 # via pydata-sphinx-theme certifi==2024.2.2 # via requests charset-normalizer==3.3.2 # via requests -django==3.2.24 +django==4.2.11 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.txt # django-model-utils # djangorestframework # jsonfield django-model-utils==4.4.0 # via -r requirements/base.txt -djangorestframework==3.14.0 +djangorestframework==3.15.1 # via -r requirements/base.txt docutils==0.19 # via @@ -41,15 +47,17 @@ idna==3.6 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==7.0.1 - # via sphinx +importlib-metadata==6.11.0 + # via + # -c requirements/common_constraints.txt + # sphinx jinja2==3.1.3 # via sphinx jsonfield==3.1.0 # via -r requirements/base.txt markupsafe==2.1.5 # via jinja2 -packaging==23.2 +packaging==24.0 # via # pydata-sphinx-theme # sphinx @@ -66,8 +74,6 @@ pytz==2024.1 # via # -r requirements/base.txt # babel - # django - # djangorestframework requests==2.31.0 # via sphinx six==1.16.0 @@ -110,5 +116,9 @@ typing-extensions==4.10.0 # pydata-sphinx-theme urllib3==2.2.1 # via requests -zipp==3.17.0 +zipp==3.18.1 # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.2.0 + # via -r requirements/base.txt diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 44c48d99..53b0fb20 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,15 +4,17 @@ # # make upgrade # -build==1.0.3 +build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==7.0.1 - # via build -packaging==23.2 +importlib-metadata==6.11.0 + # via + # -c requirements/common_constraints.txt + # build +packaging==24.0 # via build -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.in pyproject-hooks==1.0.0 # via @@ -23,11 +25,13 @@ tomli==2.0.1 # build # pip-tools # pyproject-hooks -wheel==0.42.0 +wheel==0.43.0 # via pip-tools -zipp==3.17.0 +zipp==3.18.1 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools +pip==24.0 + # via pip-tools +setuptools==69.2.0 + # via pip-tools diff --git a/requirements/pip.txt b/requirements/pip.txt index 66656035..cf449024 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.42.0 +wheel==0.43.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: pip==24.0 # via -r requirements/pip.in -setuptools==69.1.1 +setuptools==69.2.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 8a8e286e..4262ba19 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,7 +12,7 @@ alabaster==0.7.13 # via # -r requirements/docs.txt # sphinx -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # -r requirements/docs.txt @@ -26,6 +26,13 @@ babel==2.14.0 # -r requirements/docs.txt # pydata-sphinx-theme # sphinx +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # django + # djangorestframework beautifulsoup4==4.12.3 # via # -r requirements/docs.txt @@ -45,16 +52,16 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.6.0 +code-annotations==1.7.0 # via edx-lint -coverage[toml]==7.4.3 +coverage[toml]==7.4.4 # via pytest-cov ddt==1.7.2 # via -r requirements/test.in dill==0.3.8 # via pylint # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.txt # -r requirements/docs.txt # django-model-utils @@ -78,7 +85,7 @@ exceptiongroup==1.2.0 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==23.2.1 +faker==24.4.0 # via factory-boy freezegun==1.4.0 # via -r requirements/test.in @@ -90,8 +97,9 @@ imagesize==1.4.1 # via # -r requirements/docs.txt # sphinx -importlib-metadata==7.0.1 +importlib-metadata==6.11.0 # via + # -c requirements/common_constraints.txt # -r requirements/docs.txt # sphinx iniconfig==2.0.0 @@ -117,7 +125,7 @@ mccabe==0.7.0 # via pylint mock==5.1.0 # via -r requirements/test.in -packaging==23.2 +packaging==24.0 # via # -r requirements/docs.txt # pydata-sphinx-theme @@ -159,15 +167,15 @@ pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==8.0.2 +pytest==8.1.1 # via # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==5.0.0 # via -r requirements/test.in pytest-django==4.8.0 # via -r requirements/test.in -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/test.in # faker @@ -179,8 +187,6 @@ pytz==2024.1 # -r requirements/base.txt # -r requirements/docs.txt # babel - # django - # djangorestframework pyyaml==6.0.1 # via code-annotations requests==2.31.0 @@ -249,7 +255,7 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.12.3 +tomlkit==0.12.4 # via pylint typing-extensions==4.10.0 # via @@ -264,7 +270,13 @@ urllib3==2.2.1 # via # -r requirements/docs.txt # requests -zipp==3.17.0 +zipp==3.18.1 # via # -r requirements/docs.txt # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.2.0 + # via + # -r requirements/base.txt + # -r requirements/docs.txt diff --git a/requirements/tox.txt b/requirements/tox.txt index 9a12d689..cc5293d6 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -4,7 +4,7 @@ # # make upgrade # -cachetools==5.3.2 +cachetools==5.3.3 # via tox chardet==5.2.0 # via tox @@ -12,11 +12,11 @@ colorama==0.4.6 # via tox distlib==0.3.8 # via virtualenv -filelock==3.13.1 +filelock==3.13.3 # via # tox # virtualenv -packaging==23.2 +packaging==24.0 # via # pyproject-api # tox @@ -32,7 +32,7 @@ tomli==2.0.1 # via # pyproject-api # tox -tox==4.13.0 +tox==4.14.2 # via -r requirements/tox.in virtualenv==20.25.1 # via tox diff --git a/setup.py b/setup.py index 7c81bf57..fdf3bff9 100644 --- a/setup.py +++ b/setup.py @@ -74,14 +74,15 @@ def get_version(*file_paths): classifiers=[ 'Development Status :: 3 - Alpha', 'Framework :: Django', - 'Framework :: Django :: 3.2', - 'Framework :: Django :: 4.0', + 'Framework :: Django :: 4.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU Affero General Public License v3', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', ], packages=find_packages(include=['submissions*'], exclude=['*.test', '*.tests']), install_requires=load_requirements('requirements/base.in'), diff --git a/submissions/__init__.py b/submissions/__init__.py index 75d36096..60e71108 100644 --- a/submissions/__init__.py +++ b/submissions/__init__.py @@ -1,2 +1,2 @@ """ API for creating submissions and scores. """ -__version__ = '3.6.1' +__version__ = '3.7.0' diff --git a/submissions/errors.py b/submissions/errors.py index 25d0f3d8..12d812b5 100644 --- a/submissions/errors.py +++ b/submissions/errors.py @@ -67,8 +67,8 @@ def __repr__(self): Show the field errors upon output. """ return ( - f'{self.__class__.__name__}' # pylint: disable=no-member - f'(msg="{self.message}", field_errors={self.field_errors})' + # pylint: disable=no-member + f'{self.__class__.__name__}(msg="{self.message}", field_errors={self.field_errors})' ) diff --git a/tox.ini b/tox.ini index cde9012f..d9d9027d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,12 +1,11 @@ [tox] -envlist = py38-django{32,42}-drf{312, drf314}, quality, docs +envlist = py{38,311,312}-django{42}-drf{drf314}, quality, docs [testenv] setenv = DJANGO_SETTINGS_MODULE = settings deps = -r{toxinidir}/requirements/test.txt - django32: Django>=3.2,<4.0 django42: Django>=4.2,<4.3 drf314: djangorestframework<3.15.0 commands = @@ -23,7 +22,8 @@ commands = make test_quality [testenv:docs] -deps = +deps = + setuptools -r{toxinidir}/requirements/dev.txt commands = python setup.py build_sphinx From 680e44b79266a05f233066e4de8944e64d08c86a Mon Sep 17 00:00:00 2001 From: Jillian Date: Thu, 16 May 2024 09:11:15 +0930 Subject: [PATCH 49/55] build: update codecov action version (#241) * build: update codecov action version * fix: run migrations check without xmlsec * fix: check coverage for python 3.12, not 3.8 Co-authored-by: Kyle McCormick --- .github/workflows/ci.yml | 5 +++-- .github/workflows/migrations-check.yml | 2 -- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e06ddf3e..3e5b5eef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,8 +37,9 @@ jobs: run: tox - name: Run Coverage - if: matrix.python-version == '3.8' && matrix.toxenv=='django42-drf314' - uses: codecov/codecov-action@v1 + if: matrix.python-version == '3.12' && matrix.toxenv=='django42-drf314' + uses: codecov/codecov-action@v4 with: flags: unittests fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/migrations-check.yml b/.github/workflows/migrations-check.yml index a834e2d2..08b32552 100644 --- a/.github/workflows/migrations-check.yml +++ b/.github/workflows/migrations-check.yml @@ -55,8 +55,6 @@ jobs: pip install -r requirements/base.txt pip uninstall -y mysqlclient pip install --no-binary mysqlclient mysqlclient - pip uninstall -y xmlsec - pip install --no-binary xmlsec xmlsec - name: Initiate Services run: | From ebda2482e34dd5496d0f0fc7ca3f52ac1c4ddcbb Mon Sep 17 00:00:00 2001 From: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com> Date: Wed, 22 May 2024 22:58:59 -0400 Subject: [PATCH 50/55] fix: setup.py update using script (#211) --- MANIFEST.in | 1 + setup.py | 102 +++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 83 insertions(+), 20 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index b70caa52..2a494df1 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,3 +3,4 @@ include requirements/test.in include requirements/docs.in include LICENSE include README.rst +include requirements/constraints.txt diff --git a/setup.py b/setup.py index fdf3bff9..b24f4011 100644 --- a/setup.py +++ b/setup.py @@ -9,35 +9,97 @@ def is_requirement(line): """ - Return True if the requirement line is a package requirement; - that is, it is not blank, a comment, or editable. + Return True if the requirement line is a package requirement. + + Returns: + bool: True if the line is not blank, a comment, + a URL, or an included file """ - # Remove whitespace at the start/end of the line - line = line.strip() - - # Skip blank lines, comments, and editable installs - return not ( - line == '' or - line.startswith('-r') or - line.startswith('#') or - line.startswith('-e') or - line.startswith('git+') or - line.startswith('-c') - ) + # UPDATED VIA SEMGREP - if you need to remove/modify this method remove this line and add a comment specifying why + + return line and line.strip() and not line.startswith(('-r', '#', '-e', 'git+', '-c')) def load_requirements(*requirements_paths): """ Load all requirements from the specified requirements files. + + Requirements will include any constraints from files specified + with -c in the requirements files. Returns a list of requirement strings. """ - requirements = set() + # UPDATED VIA SEMGREP - if you need to remove/modify this method remove this line and add a comment specifying why. + + # e.g. {"django": "Django", "confluent-kafka": "confluent_kafka[avro]"} + by_canonical_name = {} + + def check_name_consistent(package): + """ + Raise exception if package is named different ways. + + This ensures that packages are named consistently so we can match + constraints to packages. It also ensures that if we require a package + with extras we don't constrain it without mentioning the extras (since + that too would interfere with matching constraints.) + """ + canonical = package.lower().replace('_', '-').split('[')[0] + seen_spelling = by_canonical_name.get(canonical) + if seen_spelling is None: + by_canonical_name[canonical] = package + elif seen_spelling != package: + raise Exception( + f'Encountered both "{seen_spelling}" and "{package}" in requirements ' + 'and constraints files; please use just one or the other.' + ) + + requirements = {} + constraint_files = set() + + # groups "pkg<=x.y.z,..." into ("pkg", "<=x.y.z,...") + re_package_name_base_chars = r"a-zA-Z0-9\-_." # chars allowed in base package name + # Two groups: name[maybe,extras], and optionally a constraint + requirement_line_regex = re.compile( + r"([%s]+(?:\[[%s,\s]+\])?)([<>=][^#\s]+)?" + % (re_package_name_base_chars, re_package_name_base_chars) + ) + + def add_version_constraint_or_raise(current_line, current_requirements, add_if_not_present): + regex_match = requirement_line_regex.match(current_line) + if regex_match: + package = regex_match.group(1) + version_constraints = regex_match.group(2) + check_name_consistent(package) + existing_version_constraints = current_requirements.get(package, None) + # It's fine to add constraints to an unconstrained package, + # but raise an error if there are already constraints in place. + if existing_version_constraints and existing_version_constraints != version_constraints: + raise BaseException(f'Multiple constraint definitions found for {package}:' + f' "{existing_version_constraints}" and "{version_constraints}".' + f'Combine constraints into one location with {package}' + f'{existing_version_constraints},{version_constraints}.') + if add_if_not_present or package in current_requirements: + current_requirements[package] = version_constraints + + # Read requirements from .in files and store the path to any + # constraint files that are pulled in. for path in requirements_paths: - requirements.update( - line.strip() for line in open(path).readlines() - if is_requirement(line) - ) - return list(requirements) + with open(path) as reqs: + for line in reqs: + if is_requirement(line): + add_version_constraint_or_raise(line, requirements, True) + if line and line.startswith('-c') and not line.startswith('-c http'): + constraint_files.add(os.path.dirname(path) + '/' + line.split('#')[0].replace('-c', '').strip()) + + # process constraint files: add constraints to existing requirements + for constraint_file in constraint_files: + with open(constraint_file) as reader: + for line in reader: + if is_requirement(line): + add_version_constraint_or_raise(line, requirements, False) + + # process back into list of pkg><=constraints strings + constrained_requirements = [f'{pkg}{version or ""}' for (pkg, version) in sorted(requirements.items())] + return constrained_requirements def get_version(*file_paths): From 02b4ccb5f96162a28a80b5d6fdaa05cee8f3505d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 10:30:38 +0930 Subject: [PATCH 51/55] build(deps): bump idna from 3.6 to 3.7 in /requirements (#237) * build(deps): bump idna from 3.6 to 3.7 in /requirements Bumps [idna](https://github.com/kjd/idna) from 3.6 to 3.7. - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst) - [Commits](https://github.com/kjd/idna/compare/v3.6...v3.7) --- updated-dependencies: - dependency-name: idna dependency-type: indirect ... Signed-off-by: dependabot[bot] * build: resolve drf dependency issue in tox Error was with django42-drf314: ERROR: Cannot install djangorestframework<3.15.0 and djangorestframework==3.15.1 because these package versions have conflicting dependencies --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jillian Vogel --- .github/workflows/ci.yml | 2 +- requirements/ci.txt | 28 ++--- requirements/dev.txt | 260 +++++++++++++++++++-------------------- requirements/docs.txt | 34 ++--- requirements/test.txt | 132 ++++++++++---------- tox.ini | 5 +- 6 files changed, 232 insertions(+), 229 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e5b5eef..bc0303f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: matrix: os: [ubuntu-20.04] python-version: ['3.8', '3.11', '3.12'] - toxenv: [quality, docs, django42-drf314] + toxenv: [quality, docs, django42-drf315, django42-drflatest] steps: diff --git a/requirements/ci.txt b/requirements/ci.txt index 53fbcda7..5cdabb5a 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -6,67 +6,67 @@ # cachetools==5.3.3 # via - # -r requirements/tox.txt + # -r tox.txt # tox certifi==2024.2.2 # via requests chardet==5.2.0 # via - # -r requirements/tox.txt + # -r tox.txt # tox charset-normalizer==3.3.2 # via requests colorama==0.4.6 # via - # -r requirements/tox.txt + # -r tox.txt # tox coverage==6.5.0 # via coveralls coveralls==3.3.1 - # via -r requirements/ci.in + # via -r ci.in distlib==0.3.8 # via - # -r requirements/tox.txt + # -r tox.txt # virtualenv docopt==0.6.2 # via coveralls filelock==3.13.3 # via - # -r requirements/tox.txt + # -r tox.txt # tox # virtualenv -idna==3.6 +idna==3.7 # via requests packaging==24.0 # via - # -r requirements/tox.txt + # -r tox.txt # pyproject-api # tox platformdirs==4.2.0 # via - # -r requirements/tox.txt + # -r tox.txt # tox # virtualenv pluggy==1.4.0 # via - # -r requirements/tox.txt + # -r tox.txt # tox pyproject-api==1.6.1 # via - # -r requirements/tox.txt + # -r tox.txt # tox requests==2.31.0 # via coveralls tomli==2.0.1 # via - # -r requirements/tox.txt + # -r tox.txt # pyproject-api # tox tox==4.14.2 - # via -r requirements/tox.txt + # via -r tox.txt urllib3==2.2.1 # via requests virtualenv==20.25.1 # via - # -r requirements/tox.txt + # -r tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 0dffed8e..7140149d 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -6,345 +6,345 @@ # accessible-pygments==0.0.4 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # pydata-sphinx-theme alabaster==0.7.13 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx asgiref==3.8.1 # via - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -r base.txt + # -r docs.txt + # -r test.txt # django astroid==3.1.0 # via - # -r requirements/test.txt + # -r test.txt # pylint # pylint-celery babel==2.14.0 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # pydata-sphinx-theme # sphinx backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c requirements/constraints.txt - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -c constraints.txt + # -r base.txt + # -r docs.txt + # -r test.txt # django # djangorestframework beautifulsoup4==4.12.3 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # pydata-sphinx-theme certifi==2024.2.2 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # requests charset-normalizer==3.3.2 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # requests click==8.1.7 # via - # -r requirements/test.txt + # -r test.txt # click-log # code-annotations # edx-lint click-log==0.4.0 # via - # -r requirements/test.txt + # -r test.txt # edx-lint code-annotations==1.7.0 # via - # -r requirements/test.txt + # -r test.txt # edx-lint coverage[toml]==7.4.4 # via - # -r requirements/test.txt + # -r test.txt # pytest-cov ddt==1.7.2 - # via -r requirements/test.txt + # via -r test.txt dill==0.3.8 # via - # -r requirements/test.txt + # -r test.txt # pylint django==4.2.11 # via - # -c requirements/common_constraints.txt - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -c common_constraints.txt + # -r base.txt + # -r docs.txt + # -r test.txt # django-model-utils # djangorestframework # jsonfield django-model-utils==4.4.0 # via - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -r base.txt + # -r docs.txt + # -r test.txt djangorestframework==3.15.1 # via - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -r base.txt + # -r docs.txt + # -r test.txt docutils==0.19 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # pydata-sphinx-theme # sphinx edx-lint==5.3.6 - # via -r requirements/test.txt + # via -r test.txt exceptiongroup==1.2.0 # via - # -r requirements/test.txt + # -r test.txt # pytest factory-boy==3.3.0 - # via -r requirements/test.txt + # via -r test.txt faker==24.4.0 # via - # -r requirements/test.txt + # -r test.txt # factory-boy freezegun==1.4.0 - # via -r requirements/test.txt -idna==3.6 + # via -r test.txt +idna==3.7 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # requests imagesize==1.4.1 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx importlib-metadata==6.11.0 # via - # -c requirements/common_constraints.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -c common_constraints.txt + # -r docs.txt + # -r test.txt # sphinx iniconfig==2.0.0 # via - # -r requirements/test.txt + # -r test.txt # pytest isort==5.13.2 # via - # -r requirements/test.txt + # -r test.txt # pylint jinja2==3.1.3 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # code-annotations # sphinx jsonfield==3.1.0 # via - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -r base.txt + # -r docs.txt + # -r test.txt markupsafe==2.1.5 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # jinja2 mccabe==0.7.0 # via - # -r requirements/test.txt + # -r test.txt # pylint mock==5.1.0 - # via -r requirements/test.txt + # via -r test.txt packaging==24.0 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # pydata-sphinx-theme # pytest # sphinx pbr==6.0.0 # via - # -r requirements/test.txt + # -r test.txt # stevedore platformdirs==4.2.0 # via - # -r requirements/test.txt + # -r test.txt # pylint pluggy==1.4.0 # via - # -r requirements/test.txt + # -r test.txt # pytest pockets==0.9.1 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinxcontrib-napoleon pycodestyle==2.11.1 - # via -r requirements/test.txt + # via -r test.txt pydata-sphinx-theme==0.14.4 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx-book-theme pygments==2.17.2 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # accessible-pygments # pydata-sphinx-theme # sphinx pylint==3.1.0 # via - # -r requirements/test.txt + # -r test.txt # edx-lint # pylint-celery # pylint-django # pylint-plugin-utils pylint-celery==0.3 # via - # -r requirements/test.txt + # -r test.txt # edx-lint pylint-django==2.5.5 # via - # -r requirements/test.txt + # -r test.txt # edx-lint pylint-plugin-utils==0.8.2 # via - # -r requirements/test.txt + # -r test.txt # pylint-celery # pylint-django pytest==8.1.1 # via - # -r requirements/test.txt + # -r test.txt # pytest-cov # pytest-django pytest-cov==5.0.0 - # via -r requirements/test.txt + # via -r test.txt pytest-django==4.8.0 - # via -r requirements/test.txt + # via -r test.txt python-dateutil==2.9.0.post0 # via - # -r requirements/test.txt + # -r test.txt # faker # freezegun python-slugify==8.0.4 # via - # -r requirements/test.txt + # -r test.txt # code-annotations pytz==2024.1 # via - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -r base.txt + # -r docs.txt + # -r test.txt # babel pyyaml==6.0.1 # via - # -r requirements/test.txt + # -r test.txt # code-annotations requests==2.31.0 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx six==1.16.0 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # edx-lint # pockets # python-dateutil # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx soupsieve==2.5 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # beautifulsoup4 sphinx==6.2.1 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # pydata-sphinx-theme # sphinx-book-theme sphinx-book-theme==1.0.1 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt sphinxcontrib-applehelp==1.0.4 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx sphinxcontrib-devhelp==1.0.2 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx sphinxcontrib-htmlhelp==2.0.1 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx sphinxcontrib-jsmath==1.0.1 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx sphinxcontrib-napoleon==0.7 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt sphinxcontrib-qthelp==1.0.3 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx sphinxcontrib-serializinghtml==1.1.5 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # sphinx sqlparse==0.4.4 # via - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -r base.txt + # -r docs.txt + # -r test.txt # django stevedore==5.2.0 # via - # -r requirements/test.txt + # -r test.txt # code-annotations text-unidecode==1.3 # via - # -r requirements/test.txt + # -r test.txt # python-slugify tomli==2.0.1 # via - # -r requirements/test.txt + # -r test.txt # coverage # pylint # pytest tomlkit==0.12.4 # via - # -r requirements/test.txt + # -r test.txt # pylint typing-extensions==4.10.0 # via - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -r base.txt + # -r docs.txt + # -r test.txt # asgiref # astroid # faker @@ -352,18 +352,18 @@ typing-extensions==4.10.0 # pylint urllib3==2.2.1 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # requests zipp==3.18.1 # via - # -r requirements/docs.txt - # -r requirements/test.txt + # -r docs.txt + # -r test.txt # importlib-metadata # The following packages are considered to be unsafe in a requirements file: setuptools==69.2.0 # via - # -r requirements/base.txt - # -r requirements/docs.txt - # -r requirements/test.txt + # -r base.txt + # -r docs.txt + # -r test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 79cb8a03..29a7848b 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -10,7 +10,7 @@ alabaster==0.7.13 # via sphinx asgiref==3.8.1 # via - # -r requirements/base.txt + # -r base.txt # django babel==2.14.0 # via @@ -18,8 +18,8 @@ babel==2.14.0 # sphinx backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c requirements/constraints.txt - # -r requirements/base.txt + # -c constraints.txt + # -r base.txt # django # djangorestframework beautifulsoup4==4.12.3 @@ -30,31 +30,31 @@ charset-normalizer==3.3.2 # via requests django==4.2.11 # via - # -c requirements/common_constraints.txt - # -r requirements/base.txt + # -c common_constraints.txt + # -r base.txt # django-model-utils # djangorestframework # jsonfield django-model-utils==4.4.0 - # via -r requirements/base.txt + # via -r base.txt djangorestframework==3.15.1 - # via -r requirements/base.txt + # via -r base.txt docutils==0.19 # via # pydata-sphinx-theme # sphinx -idna==3.6 +idna==3.7 # via requests imagesize==1.4.1 # via sphinx importlib-metadata==6.11.0 # via - # -c requirements/common_constraints.txt + # -c common_constraints.txt # sphinx jinja2==3.1.3 # via sphinx jsonfield==3.1.0 - # via -r requirements/base.txt + # via -r base.txt markupsafe==2.1.5 # via jinja2 packaging==24.0 @@ -72,7 +72,7 @@ pygments==2.17.2 # sphinx pytz==2024.1 # via - # -r requirements/base.txt + # -r base.txt # babel requests==2.31.0 # via sphinx @@ -86,11 +86,11 @@ soupsieve==2.5 # via beautifulsoup4 sphinx==6.2.1 # via - # -r requirements/docs.in + # -r docs.in # pydata-sphinx-theme # sphinx-book-theme sphinx-book-theme==1.0.1 - # via -r requirements/docs.in + # via -r docs.in sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 @@ -100,18 +100,18 @@ sphinxcontrib-htmlhelp==2.0.1 sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-napoleon==0.7 - # via -r requirements/docs.in + # via -r docs.in sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx sqlparse==0.4.4 # via - # -r requirements/base.txt + # -r base.txt # django typing-extensions==4.10.0 # via - # -r requirements/base.txt + # -r base.txt # asgiref # pydata-sphinx-theme urllib3==2.2.1 @@ -121,4 +121,4 @@ zipp==3.18.1 # The following packages are considered to be unsafe in a requirements file: setuptools==69.2.0 - # via -r requirements/base.txt + # via -r base.txt diff --git a/requirements/test.txt b/requirements/test.txt index 4262ba19..9d28fb35 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -6,16 +6,16 @@ # accessible-pygments==0.0.4 # via - # -r requirements/docs.txt + # -r docs.txt # pydata-sphinx-theme alabaster==0.7.13 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx asgiref==3.8.1 # via - # -r requirements/base.txt - # -r requirements/docs.txt + # -r base.txt + # -r docs.txt # django astroid==3.1.0 # via @@ -23,27 +23,27 @@ astroid==3.1.0 # pylint-celery babel==2.14.0 # via - # -r requirements/docs.txt + # -r docs.txt # pydata-sphinx-theme # sphinx backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c requirements/constraints.txt - # -r requirements/base.txt - # -r requirements/docs.txt + # -c constraints.txt + # -r base.txt + # -r docs.txt # django # djangorestframework beautifulsoup4==4.12.3 # via - # -r requirements/docs.txt + # -r docs.txt # pydata-sphinx-theme certifi==2024.2.2 # via - # -r requirements/docs.txt + # -r docs.txt # requests charset-normalizer==3.3.2 # via - # -r requirements/docs.txt + # -r docs.txt # requests click==8.1.7 # via @@ -57,77 +57,79 @@ code-annotations==1.7.0 coverage[toml]==7.4.4 # via pytest-cov ddt==1.7.2 - # via -r requirements/test.in + # via -r test.in dill==0.3.8 # via pylint +django==4.2.11 # via - # -c requirements/common_constraints.txt - # -r requirements/base.txt - # -r requirements/docs.txt + # -c common_constraints.txt + # -r base.txt + # -r docs.txt # django-model-utils # djangorestframework # jsonfield django-model-utils==4.4.0 # via - # -r requirements/base.txt - # -r requirements/docs.txt + # -r base.txt + # -r docs.txt +djangorestframework==3.15.1 # via - # -r requirements/base.txt - # -r requirements/docs.txt + # -r base.txt + # -r docs.txt docutils==0.19 # via - # -r requirements/docs.txt + # -r docs.txt # pydata-sphinx-theme # sphinx edx-lint==5.3.6 - # via -r requirements/test.in + # via -r test.in exceptiongroup==1.2.0 # via pytest factory-boy==3.3.0 - # via -r requirements/test.in + # via -r test.in faker==24.4.0 # via factory-boy freezegun==1.4.0 - # via -r requirements/test.in -idna==3.6 + # via -r test.in +idna==3.7 # via - # -r requirements/docs.txt + # -r docs.txt # requests imagesize==1.4.1 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx importlib-metadata==6.11.0 # via - # -c requirements/common_constraints.txt - # -r requirements/docs.txt + # -c common_constraints.txt + # -r docs.txt # sphinx iniconfig==2.0.0 # via pytest isort==5.13.2 # via - # -r requirements/test.in + # -r test.in # pylint jinja2==3.1.3 # via - # -r requirements/docs.txt + # -r docs.txt # code-annotations # sphinx jsonfield==3.1.0 # via - # -r requirements/base.txt - # -r requirements/docs.txt + # -r base.txt + # -r docs.txt markupsafe==2.1.5 # via - # -r requirements/docs.txt + # -r docs.txt # jinja2 mccabe==0.7.0 # via pylint mock==5.1.0 - # via -r requirements/test.in + # via -r test.in packaging==24.0 # via - # -r requirements/docs.txt + # -r docs.txt # pydata-sphinx-theme # pytest # sphinx @@ -139,17 +141,17 @@ pluggy==1.4.0 # via pytest pockets==0.9.1 # via - # -r requirements/docs.txt + # -r docs.txt # sphinxcontrib-napoleon pycodestyle==2.11.1 - # via -r requirements/test.in + # via -r test.in pydata-sphinx-theme==0.14.4 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx-book-theme pygments==2.17.2 # via - # -r requirements/docs.txt + # -r docs.txt # accessible-pygments # pydata-sphinx-theme # sphinx @@ -172,79 +174,79 @@ pytest==8.1.1 # pytest-cov # pytest-django pytest-cov==5.0.0 - # via -r requirements/test.in + # via -r test.in pytest-django==4.8.0 - # via -r requirements/test.in + # via -r test.in python-dateutil==2.9.0.post0 # via - # -r requirements/test.in + # -r test.in # faker # freezegun python-slugify==8.0.4 # via code-annotations pytz==2024.1 # via - # -r requirements/base.txt - # -r requirements/docs.txt + # -r base.txt + # -r docs.txt # babel pyyaml==6.0.1 # via code-annotations requests==2.31.0 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx six==1.16.0 # via - # -r requirements/docs.txt + # -r docs.txt # edx-lint # pockets # python-dateutil # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx soupsieve==2.5 # via - # -r requirements/docs.txt + # -r docs.txt # beautifulsoup4 sphinx==6.2.1 # via - # -r requirements/docs.txt + # -r docs.txt # pydata-sphinx-theme # sphinx-book-theme sphinx-book-theme==1.0.1 - # via -r requirements/docs.txt + # via -r docs.txt sphinxcontrib-applehelp==1.0.4 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx sphinxcontrib-devhelp==1.0.2 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx sphinxcontrib-htmlhelp==2.0.1 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx sphinxcontrib-jsmath==1.0.1 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx sphinxcontrib-napoleon==0.7 - # via -r requirements/docs.txt + # via -r docs.txt sphinxcontrib-qthelp==1.0.3 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx sphinxcontrib-serializinghtml==1.1.5 # via - # -r requirements/docs.txt + # -r docs.txt # sphinx sqlparse==0.4.4 # via - # -r requirements/base.txt - # -r requirements/docs.txt + # -r base.txt + # -r docs.txt # django stevedore==5.2.0 # via code-annotations @@ -259,8 +261,8 @@ tomlkit==0.12.4 # via pylint typing-extensions==4.10.0 # via - # -r requirements/base.txt - # -r requirements/docs.txt + # -r base.txt + # -r docs.txt # asgiref # astroid # faker @@ -268,15 +270,15 @@ typing-extensions==4.10.0 # pylint urllib3==2.2.1 # via - # -r requirements/docs.txt + # -r docs.txt # requests zipp==3.18.1 # via - # -r requirements/docs.txt + # -r docs.txt # importlib-metadata # The following packages are considered to be unsafe in a requirements file: setuptools==69.2.0 # via - # -r requirements/base.txt - # -r requirements/docs.txt + # -r base.txt + # -r docs.txt diff --git a/tox.ini b/tox.ini index d9d9027d..c4785c67 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{38,311,312}-django{42}-drf{drf314}, quality, docs +envlist = py{38,311,312}-django{42}-drf{315,latest}, quality, docs [testenv] setenv = @@ -7,7 +7,8 @@ setenv = deps = -r{toxinidir}/requirements/test.txt django42: Django>=4.2,<4.3 - drf314: djangorestframework<3.15.0 + drf315: djangorestframework<3.16 + drflatest: djangorestframework commands = python -Wd -m pytest {posargs} From 80f8dc89f13a7e8ae824cd769d95c9af95a1e65c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 10:52:11 +0930 Subject: [PATCH 52/55] build(deps): bump sqlparse from 0.4.4 to 0.5.0 in /requirements (#239) Bumps [sqlparse](https://github.com/andialbrecht/sqlparse) from 0.4.4 to 0.5.0. - [Changelog](https://github.com/andialbrecht/sqlparse/blob/master/CHANGELOG) - [Commits](https://github.com/andialbrecht/sqlparse/compare/0.4.4...0.5.0) --- updated-dependencies: - dependency-name: sqlparse dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements/base.txt | 20 ++++++++------------ requirements/dev.txt | 9 +-------- requirements/docs.txt | 6 +----- requirements/test.txt | 8 +------- 4 files changed, 11 insertions(+), 32 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 97262bef..5fd2a385 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -8,29 +8,25 @@ asgiref==3.8.1 # via django backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c requirements/constraints.txt + # -c constraints.txt # django # djangorestframework django==4.2.11 # via - # -c requirements/common_constraints.txt - # -r requirements/base.in + # -c common_constraints.txt + # -r base.in # django-model-utils # djangorestframework # jsonfield django-model-utils==4.4.0 - # via -r requirements/base.in + # via -r base.in djangorestframework==3.15.1 - # via -r requirements/base.in + # via -r base.in jsonfield==3.1.0 - # via -r requirements/base.in + # via -r base.in pytz==2024.1 - # via -r requirements/base.in -sqlparse==0.4.4 + # via -r base.in +sqlparse==0.5.0 # via django typing-extensions==4.10.0 # via asgiref - -# The following packages are considered to be unsafe in a requirements file: -setuptools==69.2.0 - # via -r requirements/base.in diff --git a/requirements/dev.txt b/requirements/dev.txt index 7140149d..7f978ed1 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -316,7 +316,7 @@ sphinxcontrib-serializinghtml==1.1.5 # -r docs.txt # -r test.txt # sphinx -sqlparse==0.4.4 +sqlparse==0.5.0 # via # -r base.txt # -r docs.txt @@ -360,10 +360,3 @@ zipp==3.18.1 # -r docs.txt # -r test.txt # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -setuptools==69.2.0 - # via - # -r base.txt - # -r docs.txt - # -r test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 29a7848b..fef13eed 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -105,7 +105,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlparse==0.4.4 +sqlparse==0.5.0 # via # -r base.txt # django @@ -118,7 +118,3 @@ urllib3==2.2.1 # via requests zipp==3.18.1 # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -setuptools==69.2.0 - # via -r base.txt diff --git a/requirements/test.txt b/requirements/test.txt index 9d28fb35..cc4d7ca6 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -243,7 +243,7 @@ sphinxcontrib-serializinghtml==1.1.5 # via # -r docs.txt # sphinx -sqlparse==0.4.4 +sqlparse==0.5.0 # via # -r base.txt # -r docs.txt @@ -276,9 +276,3 @@ zipp==3.18.1 # via # -r docs.txt # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -setuptools==69.2.0 - # via - # -r base.txt - # -r docs.txt From 2774314248ea9c3706af455ff3f78fc5fcfcd7e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 10:56:34 +0930 Subject: [PATCH 53/55] build(deps): bump jinja2 from 3.1.3 to 3.1.4 in /requirements (#242) Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.3 to 3.1.4. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.3...3.1.4) --- updated-dependencies: - dependency-name: jinja2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements/dev.txt | 2 +- requirements/docs.txt | 2 +- requirements/test.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements/dev.txt b/requirements/dev.txt index 7f978ed1..9e8c35cc 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -141,7 +141,7 @@ isort==5.13.2 # via # -r test.txt # pylint -jinja2==3.1.3 +jinja2==3.1.4 # via # -r docs.txt # -r test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index fef13eed..faa4d351 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -51,7 +51,7 @@ importlib-metadata==6.11.0 # via # -c common_constraints.txt # sphinx -jinja2==3.1.3 +jinja2==3.1.4 # via sphinx jsonfield==3.1.0 # via -r base.txt diff --git a/requirements/test.txt b/requirements/test.txt index cc4d7ca6..069e1f82 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -110,7 +110,7 @@ isort==5.13.2 # via # -r test.in # pylint -jinja2==3.1.3 +jinja2==3.1.4 # via # -r docs.txt # code-annotations From 2ee472d46a3a5f5a5b0eb364ef6bfb2930093812 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 11:40:48 +0930 Subject: [PATCH 54/55] build(deps): bump requests from 2.31.0 to 2.32.2 in /requirements (#245) Bumps [requests](https://github.com/psf/requests) from 2.31.0 to 2.32.2. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.2) --- updated-dependencies: - dependency-name: requests dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements/ci.txt | 2 +- requirements/dev.txt | 2 +- requirements/docs.txt | 2 +- requirements/test.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements/ci.txt b/requirements/ci.txt index 5cdabb5a..fd37ecff 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -55,7 +55,7 @@ pyproject-api==1.6.1 # via # -r tox.txt # tox -requests==2.31.0 +requests==2.32.2 # via coveralls tomli==2.0.1 # via diff --git a/requirements/dev.txt b/requirements/dev.txt index 9e8c35cc..ae510d3e 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -249,7 +249,7 @@ pyyaml==6.0.1 # via # -r test.txt # code-annotations -requests==2.31.0 +requests==2.32.2 # via # -r docs.txt # -r test.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index faa4d351..60d76418 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -74,7 +74,7 @@ pytz==2024.1 # via # -r base.txt # babel -requests==2.31.0 +requests==2.32.2 # via sphinx six==1.16.0 # via diff --git a/requirements/test.txt b/requirements/test.txt index 069e1f82..79406233 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -191,7 +191,7 @@ pytz==2024.1 # babel pyyaml==6.0.1 # via code-annotations -requests==2.31.0 +requests==2.32.2 # via # -r docs.txt # sphinx From 4db13648228ccc840a8d10a8e7328e04c75d456e Mon Sep 17 00:00:00 2001 From: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com> Date: Thu, 23 May 2024 22:49:00 -0400 Subject: [PATCH 55/55] chore: Updating Python Requirements (#243) --- requirements/base.txt | 20 +-- requirements/ci.txt | 41 +++--- requirements/dev.txt | 287 ++++++++++++++++++------------------- requirements/docs.txt | 42 +++--- requirements/pip-tools.txt | 11 +- requirements/pip.txt | 2 +- requirements/test.txt | 159 ++++++++++---------- requirements/tox.txt | 10 +- 8 files changed, 283 insertions(+), 289 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 5fd2a385..d05b4147 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -8,25 +8,25 @@ asgiref==3.8.1 # via django backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c constraints.txt + # -c requirements/constraints.txt # django # djangorestframework -django==4.2.11 +django==4.2.13 # via - # -c common_constraints.txt - # -r base.in + # -c requirements/common_constraints.txt + # -r requirements/base.in # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.4.0 - # via -r base.in +django-model-utils==4.5.1 + # via -r requirements/base.in djangorestframework==3.15.1 - # via -r base.in + # via -r requirements/base.in jsonfield==3.1.0 - # via -r base.in + # via -r requirements/base.in pytz==2024.1 - # via -r base.in + # via -r requirements/base.in sqlparse==0.5.0 # via django -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via asgiref diff --git a/requirements/ci.txt b/requirements/ci.txt index fd37ecff..44956f81 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -6,67 +6,68 @@ # cachetools==5.3.3 # via - # -r tox.txt + # -r requirements/tox.txt # tox certifi==2024.2.2 # via requests chardet==5.2.0 # via - # -r tox.txt + # -r requirements/tox.txt # tox charset-normalizer==3.3.2 # via requests colorama==0.4.6 # via - # -r tox.txt + # -r requirements/tox.txt # tox -coverage==6.5.0 +coverage[toml]==7.5.1 # via coveralls -coveralls==3.3.1 - # via -r ci.in +coveralls==4.0.1 + # via -r requirements/ci.in distlib==0.3.8 # via - # -r tox.txt + # -r requirements/tox.txt # virtualenv docopt==0.6.2 # via coveralls -filelock==3.13.3 +filelock==3.14.0 # via - # -r tox.txt + # -r requirements/tox.txt # tox # virtualenv idna==3.7 # via requests packaging==24.0 # via - # -r tox.txt + # -r requirements/tox.txt # pyproject-api # tox -platformdirs==4.2.0 +platformdirs==4.2.1 # via - # -r tox.txt + # -r requirements/tox.txt # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via - # -r tox.txt + # -r requirements/tox.txt # tox pyproject-api==1.6.1 # via - # -r tox.txt + # -r requirements/tox.txt # tox requests==2.32.2 # via coveralls tomli==2.0.1 # via - # -r tox.txt + # -r requirements/tox.txt + # coverage # pyproject-api # tox -tox==4.14.2 - # via -r tox.txt +tox==4.15.0 + # via -r requirements/tox.txt urllib3==2.2.1 # via requests -virtualenv==20.25.1 +virtualenv==20.26.2 # via - # -r tox.txt + # -r requirements/tox.txt # tox diff --git a/requirements/dev.txt b/requirements/dev.txt index ae510d3e..53df2414 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -6,357 +6,356 @@ # accessible-pygments==0.0.4 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # pydata-sphinx-theme alabaster==0.7.13 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx asgiref==3.8.1 # via - # -r base.txt - # -r docs.txt - # -r test.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt # django -astroid==3.1.0 +astroid==3.2.2 # via - # -r test.txt + # -r requirements/test.txt # pylint # pylint-celery -babel==2.14.0 +babel==2.15.0 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # pydata-sphinx-theme # sphinx backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c constraints.txt - # -r base.txt - # -r docs.txt - # -r test.txt + # -c requirements/constraints.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt # django # djangorestframework beautifulsoup4==4.12.3 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # pydata-sphinx-theme certifi==2024.2.2 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # requests charset-normalizer==3.3.2 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # requests click==8.1.7 # via - # -r test.txt + # -r requirements/test.txt # click-log # code-annotations # edx-lint click-log==0.4.0 # via - # -r test.txt + # -r requirements/test.txt # edx-lint -code-annotations==1.7.0 +code-annotations==1.8.0 # via - # -r test.txt + # -r requirements/test.txt # edx-lint -coverage[toml]==7.4.4 +coverage[toml]==7.5.1 # via - # -r test.txt + # -r requirements/test.txt # pytest-cov ddt==1.7.2 - # via -r test.txt + # via -r requirements/test.txt dill==0.3.8 # via - # -r test.txt + # -r requirements/test.txt # pylint -django==4.2.11 +django==4.2.13 # via - # -c common_constraints.txt - # -r base.txt - # -r docs.txt - # -r test.txt + # -c requirements/common_constraints.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.4.0 +django-model-utils==4.5.1 # via - # -r base.txt - # -r docs.txt - # -r test.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt djangorestframework==3.15.1 # via - # -r base.txt - # -r docs.txt - # -r test.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt docutils==0.19 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # pydata-sphinx-theme # sphinx edx-lint==5.3.6 - # via -r test.txt -exceptiongroup==1.2.0 + # via -r requirements/test.txt +exceptiongroup==1.2.1 # via - # -r test.txt + # -r requirements/test.txt # pytest factory-boy==3.3.0 - # via -r test.txt -faker==24.4.0 + # via -r requirements/test.txt +faker==25.2.0 # via - # -r test.txt + # -r requirements/test.txt # factory-boy -freezegun==1.4.0 - # via -r test.txt +freezegun==1.5.1 + # via -r requirements/test.txt idna==3.7 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # requests imagesize==1.4.1 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx importlib-metadata==6.11.0 # via - # -c common_constraints.txt - # -r docs.txt - # -r test.txt + # -c requirements/common_constraints.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx iniconfig==2.0.0 # via - # -r test.txt + # -r requirements/test.txt # pytest isort==5.13.2 # via - # -r test.txt + # -r requirements/test.txt # pylint jinja2==3.1.4 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # code-annotations # sphinx jsonfield==3.1.0 # via - # -r base.txt - # -r docs.txt - # -r test.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt markupsafe==2.1.5 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # jinja2 mccabe==0.7.0 # via - # -r test.txt + # -r requirements/test.txt # pylint mock==5.1.0 - # via -r test.txt + # via -r requirements/test.txt packaging==24.0 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # pydata-sphinx-theme # pytest # sphinx pbr==6.0.0 # via - # -r test.txt + # -r requirements/test.txt # stevedore -platformdirs==4.2.0 +platformdirs==4.2.1 # via - # -r test.txt + # -r requirements/test.txt # pylint -pluggy==1.4.0 +pluggy==1.5.0 # via - # -r test.txt + # -r requirements/test.txt # pytest pockets==0.9.1 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinxcontrib-napoleon pycodestyle==2.11.1 - # via -r test.txt + # via -r requirements/test.txt pydata-sphinx-theme==0.14.4 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx-book-theme -pygments==2.17.2 +pygments==2.18.0 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # accessible-pygments # pydata-sphinx-theme # sphinx -pylint==3.1.0 +pylint==3.2.2 # via - # -r test.txt + # -r requirements/test.txt # edx-lint # pylint-celery # pylint-django # pylint-plugin-utils pylint-celery==0.3 # via - # -r test.txt + # -r requirements/test.txt # edx-lint pylint-django==2.5.5 # via - # -r test.txt + # -r requirements/test.txt # edx-lint pylint-plugin-utils==0.8.2 # via - # -r test.txt + # -r requirements/test.txt # pylint-celery # pylint-django -pytest==8.1.1 +pytest==8.2.1 # via - # -r test.txt + # -r requirements/test.txt # pytest-cov # pytest-django pytest-cov==5.0.0 - # via -r test.txt + # via -r requirements/test.txt pytest-django==4.8.0 - # via -r test.txt + # via -r requirements/test.txt python-dateutil==2.9.0.post0 # via - # -r test.txt + # -r requirements/test.txt # faker # freezegun python-slugify==8.0.4 # via - # -r test.txt + # -r requirements/test.txt # code-annotations pytz==2024.1 # via - # -r base.txt - # -r docs.txt - # -r test.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt # babel pyyaml==6.0.1 # via - # -r test.txt + # -r requirements/test.txt # code-annotations requests==2.32.2 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx six==1.16.0 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # edx-lint # pockets # python-dateutil # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx soupsieve==2.5 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # beautifulsoup4 sphinx==6.2.1 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # pydata-sphinx-theme # sphinx-book-theme sphinx-book-theme==1.0.1 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt sphinxcontrib-applehelp==1.0.4 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx sphinxcontrib-devhelp==1.0.2 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx sphinxcontrib-htmlhelp==2.0.1 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx sphinxcontrib-jsmath==1.0.1 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx sphinxcontrib-napoleon==0.7 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt sphinxcontrib-qthelp==1.0.3 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx sphinxcontrib-serializinghtml==1.1.5 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # sphinx sqlparse==0.5.0 # via - # -r base.txt - # -r docs.txt - # -r test.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt # django stevedore==5.2.0 # via - # -r test.txt + # -r requirements/test.txt # code-annotations text-unidecode==1.3 # via - # -r test.txt + # -r requirements/test.txt # python-slugify tomli==2.0.1 # via - # -r test.txt + # -r requirements/test.txt # coverage # pylint # pytest -tomlkit==0.12.4 +tomlkit==0.12.5 # via - # -r test.txt + # -r requirements/test.txt # pylint -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via - # -r base.txt - # -r docs.txt - # -r test.txt + # -r requirements/base.txt + # -r requirements/docs.txt + # -r requirements/test.txt # asgiref # astroid - # faker # pydata-sphinx-theme # pylint urllib3==2.2.1 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # requests -zipp==3.18.1 +zipp==3.18.2 # via - # -r docs.txt - # -r test.txt + # -r requirements/docs.txt + # -r requirements/test.txt # importlib-metadata diff --git a/requirements/docs.txt b/requirements/docs.txt index 60d76418..d943bf8d 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -10,16 +10,16 @@ alabaster==0.7.13 # via sphinx asgiref==3.8.1 # via - # -r base.txt + # -r requirements/base.txt # django -babel==2.14.0 +babel==2.15.0 # via # pydata-sphinx-theme # sphinx backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c constraints.txt - # -r base.txt + # -c requirements/constraints.txt + # -r requirements/base.txt # django # djangorestframework beautifulsoup4==4.12.3 @@ -28,17 +28,17 @@ certifi==2024.2.2 # via requests charset-normalizer==3.3.2 # via requests -django==4.2.11 +django==4.2.13 # via - # -c common_constraints.txt - # -r base.txt + # -c requirements/common_constraints.txt + # -r requirements/base.txt # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.4.0 - # via -r base.txt +django-model-utils==4.5.1 + # via -r requirements/base.txt djangorestframework==3.15.1 - # via -r base.txt + # via -r requirements/base.txt docutils==0.19 # via # pydata-sphinx-theme @@ -49,12 +49,12 @@ imagesize==1.4.1 # via sphinx importlib-metadata==6.11.0 # via - # -c common_constraints.txt + # -c requirements/common_constraints.txt # sphinx jinja2==3.1.4 # via sphinx jsonfield==3.1.0 - # via -r base.txt + # via -r requirements/base.txt markupsafe==2.1.5 # via jinja2 packaging==24.0 @@ -65,14 +65,14 @@ pockets==0.9.1 # via sphinxcontrib-napoleon pydata-sphinx-theme==0.14.4 # via sphinx-book-theme -pygments==2.17.2 +pygments==2.18.0 # via # accessible-pygments # pydata-sphinx-theme # sphinx pytz==2024.1 # via - # -r base.txt + # -r requirements/base.txt # babel requests==2.32.2 # via sphinx @@ -86,11 +86,11 @@ soupsieve==2.5 # via beautifulsoup4 sphinx==6.2.1 # via - # -r docs.in + # -r requirements/docs.in # pydata-sphinx-theme # sphinx-book-theme sphinx-book-theme==1.0.1 - # via -r docs.in + # via -r requirements/docs.in sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 @@ -100,21 +100,21 @@ sphinxcontrib-htmlhelp==2.0.1 sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-napoleon==0.7 - # via -r docs.in + # via -r requirements/docs.in sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx sqlparse==0.5.0 # via - # -r base.txt + # -r requirements/base.txt # django -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via - # -r base.txt + # -r requirements/base.txt # asgiref # pydata-sphinx-theme urllib3==2.2.1 # via requests -zipp==3.18.1 +zipp==3.18.2 # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 53b0fb20..d9186e9d 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -16,7 +16,7 @@ packaging==24.0 # via build pip-tools==7.4.1 # via -r requirements/pip-tools.in -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via # build # pip-tools @@ -24,14 +24,11 @@ tomli==2.0.1 # via # build # pip-tools - # pyproject-hooks wheel==0.43.0 # via pip-tools -zipp==3.18.1 +zipp==3.18.2 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -pip==24.0 - # via pip-tools -setuptools==69.2.0 - # via pip-tools +# pip +# setuptools diff --git a/requirements/pip.txt b/requirements/pip.txt index cf449024..e3ffcc7b 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -10,5 +10,5 @@ wheel==0.43.0 # The following packages are considered to be unsafe in a requirements file: pip==24.0 # via -r requirements/pip.in -setuptools==69.2.0 +setuptools==69.5.1 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index 79406233..2a69172a 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -6,44 +6,44 @@ # accessible-pygments==0.0.4 # via - # -r docs.txt + # -r requirements/docs.txt # pydata-sphinx-theme alabaster==0.7.13 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx asgiref==3.8.1 # via - # -r base.txt - # -r docs.txt + # -r requirements/base.txt + # -r requirements/docs.txt # django -astroid==3.1.0 +astroid==3.2.2 # via # pylint # pylint-celery -babel==2.14.0 +babel==2.15.0 # via - # -r docs.txt + # -r requirements/docs.txt # pydata-sphinx-theme # sphinx backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c constraints.txt - # -r base.txt - # -r docs.txt + # -c requirements/constraints.txt + # -r requirements/base.txt + # -r requirements/docs.txt # django # djangorestframework beautifulsoup4==4.12.3 # via - # -r docs.txt + # -r requirements/docs.txt # pydata-sphinx-theme certifi==2024.2.2 # via - # -r docs.txt + # -r requirements/docs.txt # requests charset-normalizer==3.3.2 # via - # -r docs.txt + # -r requirements/docs.txt # requests click==8.1.7 # via @@ -52,110 +52,108 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.7.0 +code-annotations==1.8.0 # via edx-lint -coverage[toml]==7.4.4 +coverage[toml]==7.5.1 # via pytest-cov ddt==1.7.2 - # via -r test.in + # via -r requirements/test.in dill==0.3.8 # via pylint -django==4.2.11 # via - # -c common_constraints.txt - # -r base.txt - # -r docs.txt + # -c requirements/common_constraints.txt + # -r requirements/base.txt + # -r requirements/docs.txt # django-model-utils # djangorestframework # jsonfield -django-model-utils==4.4.0 +django-model-utils==4.5.1 # via - # -r base.txt - # -r docs.txt -djangorestframework==3.15.1 + # -r requirements/base.txt + # -r requirements/docs.txt # via - # -r base.txt - # -r docs.txt + # -r requirements/base.txt + # -r requirements/docs.txt docutils==0.19 # via - # -r docs.txt + # -r requirements/docs.txt # pydata-sphinx-theme # sphinx edx-lint==5.3.6 - # via -r test.in -exceptiongroup==1.2.0 + # via -r requirements/test.in +exceptiongroup==1.2.1 # via pytest factory-boy==3.3.0 - # via -r test.in -faker==24.4.0 + # via -r requirements/test.in +faker==25.2.0 # via factory-boy -freezegun==1.4.0 - # via -r test.in +freezegun==1.5.1 + # via -r requirements/test.in idna==3.7 # via - # -r docs.txt + # -r requirements/docs.txt # requests imagesize==1.4.1 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx importlib-metadata==6.11.0 # via - # -c common_constraints.txt - # -r docs.txt + # -c requirements/common_constraints.txt + # -r requirements/docs.txt # sphinx iniconfig==2.0.0 # via pytest isort==5.13.2 # via - # -r test.in + # -r requirements/test.in # pylint jinja2==3.1.4 # via - # -r docs.txt + # -r requirements/docs.txt # code-annotations # sphinx jsonfield==3.1.0 # via - # -r base.txt - # -r docs.txt + # -r requirements/base.txt + # -r requirements/docs.txt markupsafe==2.1.5 # via - # -r docs.txt + # -r requirements/docs.txt # jinja2 mccabe==0.7.0 # via pylint mock==5.1.0 - # via -r test.in + # via -r requirements/test.in packaging==24.0 # via - # -r docs.txt + # -r requirements/docs.txt # pydata-sphinx-theme # pytest # sphinx pbr==6.0.0 # via stevedore -platformdirs==4.2.0 +platformdirs==4.2.1 # via pylint -pluggy==1.4.0 +pluggy==1.5.0 # via pytest pockets==0.9.1 # via - # -r docs.txt + # -r requirements/docs.txt # sphinxcontrib-napoleon pycodestyle==2.11.1 - # via -r test.in + # via -r requirements/test.in pydata-sphinx-theme==0.14.4 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx-book-theme -pygments==2.17.2 +pygments==2.18.0 # via - # -r docs.txt + # -r requirements/docs.txt # accessible-pygments # pydata-sphinx-theme # sphinx -pylint==3.1.0 +pylint==3.2.2 # via # edx-lint # pylint-celery @@ -169,84 +167,84 @@ pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==8.1.1 +pytest==8.2.1 # via # pytest-cov # pytest-django pytest-cov==5.0.0 - # via -r test.in + # via -r requirements/test.in pytest-django==4.8.0 - # via -r test.in + # via -r requirements/test.in python-dateutil==2.9.0.post0 # via - # -r test.in + # -r requirements/test.in # faker # freezegun python-slugify==8.0.4 # via code-annotations pytz==2024.1 # via - # -r base.txt - # -r docs.txt + # -r requirements/base.txt + # -r requirements/docs.txt # babel pyyaml==6.0.1 # via code-annotations requests==2.32.2 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx six==1.16.0 # via - # -r docs.txt + # -r requirements/docs.txt # edx-lint # pockets # python-dateutil # sphinxcontrib-napoleon snowballstemmer==2.2.0 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx soupsieve==2.5 # via - # -r docs.txt + # -r requirements/docs.txt # beautifulsoup4 sphinx==6.2.1 # via - # -r docs.txt + # -r requirements/docs.txt # pydata-sphinx-theme # sphinx-book-theme sphinx-book-theme==1.0.1 - # via -r docs.txt + # via -r requirements/docs.txt sphinxcontrib-applehelp==1.0.4 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx sphinxcontrib-devhelp==1.0.2 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx sphinxcontrib-htmlhelp==2.0.1 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx sphinxcontrib-jsmath==1.0.1 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx sphinxcontrib-napoleon==0.7 - # via -r docs.txt + # via -r requirements/docs.txt sphinxcontrib-qthelp==1.0.3 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx sphinxcontrib-serializinghtml==1.1.5 # via - # -r docs.txt + # -r requirements/docs.txt # sphinx sqlparse==0.5.0 # via - # -r base.txt - # -r docs.txt + # -r requirements/base.txt + # -r requirements/docs.txt # django stevedore==5.2.0 # via code-annotations @@ -257,22 +255,21 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.12.4 +tomlkit==0.12.5 # via pylint -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via - # -r base.txt - # -r docs.txt + # -r requirements/base.txt + # -r requirements/docs.txt # asgiref # astroid - # faker # pydata-sphinx-theme # pylint urllib3==2.2.1 # via - # -r docs.txt + # -r requirements/docs.txt # requests -zipp==3.18.1 +zipp==3.18.2 # via - # -r docs.txt + # -r requirements/docs.txt # importlib-metadata diff --git a/requirements/tox.txt b/requirements/tox.txt index cc5293d6..5644b8e6 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -12,7 +12,7 @@ colorama==0.4.6 # via tox distlib==0.3.8 # via virtualenv -filelock==3.13.3 +filelock==3.14.0 # via # tox # virtualenv @@ -20,11 +20,11 @@ packaging==24.0 # via # pyproject-api # tox -platformdirs==4.2.0 +platformdirs==4.2.1 # via # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via tox pyproject-api==1.6.1 # via tox @@ -32,7 +32,7 @@ tomli==2.0.1 # via # pyproject-api # tox -tox==4.14.2 +tox==4.15.0 # via -r requirements/tox.in -virtualenv==20.25.1 +virtualenv==20.26.2 # via tox