From 3fb3ddca0e9e69beb66663f6632f910c5f0a09eb Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Fri, 28 Jul 2023 19:54:29 +0500 Subject: [PATCH 1/4] feat: upgrading django-simple-history. --- Makefile | 11 +++++++- ...lter_historicalsharedfileupload_options.py | 17 +++++++++++ requirements/common_constraints.txt | 28 +++++++++++++++++++ requirements/constraints.txt | 3 ++ settings/base.py | 3 ++ 5 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 openassessment/assessment/migrations/0008_alter_historicalsharedfileupload_options.py create mode 100644 requirements/common_constraints.txt diff --git a/Makefile b/Makefile index 90e9bc0604..8dcd90dac9 100644 --- a/Makefile +++ b/Makefile @@ -37,8 +37,17 @@ install-test: ## install requirements for tests install: install-python install-js install-test static ## install all dependencies +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 $(@) + upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade -upgrade: ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in +upgrade: $(COMMON_CONSTRAINTS_TXT) ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in + # global common_constraints has this pin. + sed 's/django-simple-history==3.0.0//g' requirements/common_constraints.txt > requirements/common_constraints.tmp + mv requirements/common_constraints.tmp requirements/common_constraints.txt pip install -qr requirements/pip-tools.txt pip-compile --upgrade --allow-unsafe -o requirements/pip.txt requirements/pip.in pip-compile --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in diff --git a/openassessment/assessment/migrations/0008_alter_historicalsharedfileupload_options.py b/openassessment/assessment/migrations/0008_alter_historicalsharedfileupload_options.py new file mode 100644 index 0000000000..5b3e9efd32 --- /dev/null +++ b/openassessment/assessment/migrations/0008_alter_historicalsharedfileupload_options.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.20 on 2023-07-28 14:53 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('assessment', '0007_staff_workflow_blank'), + ] + + operations = [ + migrations.AlterModelOptions( + name='historicalsharedfileupload', + options={'get_latest_by': ('history_date', 'history_id'), 'ordering': ('-history_date', '-history_id'), 'verbose_name': 'historical shared file upload', 'verbose_name_plural': 'historical shared file uploads'}, + ), + ] diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt new file mode 100644 index 0000000000..5a86f01342 --- /dev/null +++ b/requirements/common_constraints.txt @@ -0,0 +1,28 @@ + +# 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<4.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 + + +# tox>4.0.0 isn't yet compatible with many tox plugins, causing CI failures in almost all repos. +# Details can be found in this discussion: https://github.com/tox-dev/tox/discussions/1810 +tox<4.0.0 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 2d14e8603c..69ad924e06 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -1,5 +1,8 @@ # Version constraints for pip-installation. +# Common constraints for edx repos +-c common_constraints.txt + # Base dependencies Django<4.0 # Stay on the latest LTS release of Django fs<=2.0.18 # Constrained by edx-platform diff --git a/settings/base.py b/settings/base.py index ac6873b8b1..d5cdc3759e 100644 --- a/settings/base.py +++ b/settings/base.py @@ -169,3 +169,6 @@ # See: https://openedx.atlassian.net/browse/EDUCATOR-5751 'ENABLE_ORA_RUBRIC_REUSE': False } + +# disable indexing on history_date +SIMPLE_HISTORY_DATE_INDEX = False \ No newline at end of file From 28d3f77571611ea53b77cdc373b6b0fda8b7930a Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Fri, 28 Jul 2023 23:58:40 +0500 Subject: [PATCH 2/4] feat: upgrading django-simple-history. --- requirements/base.txt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 0db5b2e8f9..9dd59d7614 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -73,10 +73,8 @@ edx-submissions==3.6.0 # via -r requirements/base.in edx-toggles==5.1.0 # via -r requirements/base.in -fs==2.0.18 - # via - # -c requirements/constraints.txt - # xblock +fs==2.4.16 + # via xblock html5lib==1.1 # via -r requirements/base.in idna==2.8 @@ -145,7 +143,6 @@ pytz==2023.3 # django # djangorestframework # edx-submissions - # fs # xblock pyyaml==6.0.1 # via From e34ac2581202dbfd2113b7d6e75ffaa084f559f0 Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Sat, 29 Jul 2023 23:31:43 +0500 Subject: [PATCH 3/4] feat: upgrading django-simple-history. --- requirements/constraints.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 69ad924e06..40a2f493da 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -31,3 +31,6 @@ path<13.2.0 # and tox comes in in test.in importlib-metadata<2 setuptools<60.0 + +# incremental upgrade plan. +django-simple-history<=3.1.1 \ No newline at end of file From e9226881a1cab5f7d45af505489e6009d4d10dc2 Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Tue, 8 Aug 2023 13:29:33 +0500 Subject: [PATCH 4/4] chore: running makeupgrade. --- requirements/base.txt | 21 ++++++++++------- requirements/constraints.txt | 3 --- requirements/pip-tools.txt | 2 +- requirements/pip.txt | 2 +- requirements/quality.txt | 39 ++++++++++++++++++++++++-------- requirements/test-acceptance.txt | 39 ++++++++++++++++++++++++-------- requirements/test.txt | 31 +++++++++++++++++-------- 7 files changed, 94 insertions(+), 43 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 9dd59d7614..6360f91c87 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -10,9 +10,9 @@ asgiref==3.7.2 # via django bleach==6.0.0 # via -r requirements/base.in -boto3==1.28.18 +boto3==1.28.21 # via -r requirements/base.in -botocore==1.31.18 +botocore==1.31.21 # via # boto3 # s3transfer @@ -51,8 +51,10 @@ django-model-utils==4.3.1 # via # -r requirements/base.in # edx-submissions -django-simple-history==3.3.0 - # via -r requirements/base.in +django-simple-history==3.1.1 + # via + # -c requirements/constraints.txt + # -r requirements/base.in django-waffle==4.0.0 # via # edx-django-utils @@ -61,7 +63,7 @@ djangorestframework==3.14.0 # via # -r requirements/base.in # edx-submissions -edx-django-utils==5.6.0 +edx-django-utils==5.7.0 # via # -r requirements/base.in # edx-toggles @@ -73,8 +75,10 @@ edx-submissions==3.6.0 # via -r requirements/base.in edx-toggles==5.1.0 # via -r requirements/base.in -fs==2.4.16 - # via xblock +fs==2.0.18 + # via + # -c requirements/constraints.txt + # xblock html5lib==1.1 # via -r requirements/base.in idna==2.8 @@ -143,6 +147,7 @@ pytz==2023.3 # django # djangorestframework # edx-submissions + # fs # xblock pyyaml==6.0.1 # via @@ -187,7 +192,7 @@ webencodings==0.5.1 # html5lib webob==1.8.7 # via xblock -xblock==1.6.2 +xblock==1.7.0 # via -r requirements/base.in # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 40a2f493da..157a5f84cf 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -1,8 +1,5 @@ # Version constraints for pip-installation. -# Common constraints for edx repos --c common_constraints.txt - # Base dependencies Django<4.0 # Stay on the latest LTS release of Django fs<=2.0.18 # Constrained by edx-platform diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 8167e080aa..ed274ee9cf 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -19,7 +19,7 @@ tomli==2.0.1 # build # pip-tools # pyproject-hooks -wheel==0.41.0 +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 aae447fe00..cd74ef7f0c 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,7 +4,7 @@ # # make upgrade # -wheel==0.41.0 +wheel==0.41.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/quality.txt b/requirements/quality.txt index 10e53d701f..a2788b5311 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -44,13 +44,13 @@ boto==2.49.0 # via # -r requirements/test.txt # moto -boto3==1.28.18 +boto3==1.28.21 # via # -r requirements/test.txt # aws-sam-translator # fs-s3fs # moto -botocore==1.31.18 +botocore==1.31.21 # via # -r requirements/test.txt # aws-xray-sdk @@ -102,7 +102,7 @@ colorama==0.4.6 # via # -r requirements/test.txt # tox -cookiecutter==2.2.3 +cookiecutter==2.3.0 # via # -r requirements/test.txt # xblock-sdk @@ -154,8 +154,10 @@ django-model-utils==4.3.1 # via # -r requirements/test.txt # edx-submissions -django-simple-history==3.3.0 - # via -r requirements/test.txt +django-simple-history==3.1.1 + # via + # -c requirements/constraints.txt + # -r requirements/test.txt django-waffle==4.0.0 # via # -r requirements/test.txt @@ -174,7 +176,7 @@ ecdsa==0.18.0 # -r requirements/test.txt # python-jose # sshpubkeys -edx-django-utils==5.6.0 +edx-django-utils==5.7.0 # via # -r requirements/test.txt # edx-toggles @@ -194,7 +196,7 @@ exceptiongroup==1.1.2 # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==19.2.0 +faker==19.3.0 # via # -r requirements/test.txt # factory-boy @@ -226,7 +228,7 @@ idna==2.8 # -r requirements/test.txt # moto # requests -importlib-resources==6.0.0 +importlib-resources==6.0.1 # via # -r requirements/test.txt # jsonschema @@ -293,6 +295,10 @@ lxml==4.9.3 # -r requirements/test.txt # xblock # xblock-sdk +markdown-it-py==3.0.0 + # via + # -r requirements/test.txt + # rich markupsafe==2.1.3 # via # -r requirements/test.txt @@ -301,11 +307,15 @@ markupsafe==2.1.3 # xblock mccabe==0.7.0 # via pylint +mdurl==0.1.2 + # via + # -r requirements/test.txt + # markdown-it-py mock==5.1.0 # via # -r requirements/test.txt # moto -more-itertools==10.0.0 +more-itertools==10.1.0 # via -r requirements/test.txt moto==1.3.14 # via @@ -383,6 +393,10 @@ pydantic==1.10.12 # via # -r requirements/test.txt # aws-sam-translator +pygments==2.16.1 + # via + # -r requirements/test.txt + # rich pylint==2.17.5 # via # edx-lint @@ -484,6 +498,10 @@ responses==0.23.3 # via # -r requirements/test.txt # moto +rich==13.5.2 + # via + # -r requirements/test.txt + # cookiecutter rsa==4.9 # via # -r requirements/test.txt @@ -563,6 +581,7 @@ typing-extensions==4.7.1 # faker # pydantic # pylint + # rich urllib3==1.26.16 # via # -r requirements/test.txt @@ -607,7 +626,7 @@ wrapt==1.11.2 # -r requirements/test.txt # astroid # aws-xray-sdk -xblock==1.6.2 +xblock==1.7.0 # via # -r requirements/test.txt # xblock-sdk diff --git a/requirements/test-acceptance.txt b/requirements/test-acceptance.txt index cebc1b895d..a1b6be8d93 100644 --- a/requirements/test-acceptance.txt +++ b/requirements/test-acceptance.txt @@ -42,13 +42,13 @@ boto==2.49.0 # via # -r requirements/test.txt # moto -boto3==1.28.18 +boto3==1.28.21 # via # -r requirements/test.txt # aws-sam-translator # fs-s3fs # moto -botocore==1.31.18 +botocore==1.31.21 # via # -r requirements/test.txt # aws-xray-sdk @@ -95,7 +95,7 @@ colorama==0.4.6 # via # -r requirements/test.txt # tox -cookiecutter==2.2.3 +cookiecutter==2.3.0 # via # -r requirements/test.txt # xblock-sdk @@ -146,8 +146,10 @@ django-model-utils==4.3.1 # via # -r requirements/test.txt # edx-submissions -django-simple-history==3.3.0 - # via -r requirements/test.txt +django-simple-history==3.1.1 + # via + # -c requirements/constraints.txt + # -r requirements/test.txt django-waffle==4.0.0 # via # -r requirements/test.txt @@ -166,7 +168,7 @@ ecdsa==0.18.0 # -r requirements/test.txt # python-jose # sshpubkeys -edx-django-utils==5.6.0 +edx-django-utils==5.7.0 # via # -r requirements/test.txt # edx-toggles @@ -184,7 +186,7 @@ exceptiongroup==1.1.2 # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==19.2.0 +faker==19.3.0 # via # -r requirements/test.txt # factory-boy @@ -216,7 +218,7 @@ idna==2.8 # -r requirements/test.txt # moto # requests -importlib-resources==6.0.0 +importlib-resources==6.0.1 # via # -r requirements/test.txt # jsonschema @@ -281,17 +283,25 @@ lxml==4.9.3 # -r requirements/test.txt # xblock # xblock-sdk +markdown-it-py==3.0.0 + # via + # -r requirements/test.txt + # rich markupsafe==2.1.3 # via # -r requirements/test.txt # jinja2 # werkzeug # xblock +mdurl==0.1.2 + # via + # -r requirements/test.txt + # markdown-it-py mock==5.1.0 # via # -r requirements/test.txt # moto -more-itertools==10.0.0 +more-itertools==10.1.0 # via -r requirements/test.txt moto==1.3.14 # via @@ -366,6 +376,10 @@ pydantic==1.10.12 # via # -r requirements/test.txt # aws-sam-translator +pygments==2.16.1 + # via + # -r requirements/test.txt + # rich pyinstrument==4.5.1 # via -r requirements/test-acceptance.in pymongo==3.13.0 @@ -456,6 +470,10 @@ responses==0.23.3 # via # -r requirements/test.txt # moto +rich==13.5.2 + # via + # -r requirements/test.txt + # cookiecutter rsa==4.9 # via # -r requirements/test.txt @@ -533,6 +551,7 @@ typing-extensions==4.7.1 # aws-sam-translator # faker # pydantic + # rich urllib3==1.26.16 # via # -r requirements/test.txt @@ -577,7 +596,7 @@ wrapt==1.11.2 # -c requirements/constraints.txt # -r requirements/test.txt # aws-xray-sdk -xblock==1.6.2 +xblock==1.7.0 # via # -r requirements/test.txt # xblock-sdk diff --git a/requirements/test.txt b/requirements/test.txt index 2a3e037c88..543a79b447 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -29,13 +29,13 @@ bleach==6.0.0 # via -r requirements/base.txt boto==2.49.0 # via moto -boto3==1.28.18 +boto3==1.28.21 # via # -r requirements/base.txt # aws-sam-translator # fs-s3fs # moto -botocore==1.31.18 +botocore==1.31.21 # via # -r requirements/base.txt # aws-xray-sdk @@ -75,7 +75,7 @@ code-annotations==1.5.0 # edx-toggles colorama==0.4.6 # via tox -cookiecutter==2.2.3 +cookiecutter==2.3.0 # via xblock-sdk coverage[toml]==7.2.7 # via @@ -117,8 +117,10 @@ django-model-utils==4.3.1 # via # -r requirements/base.txt # edx-submissions -django-simple-history==3.3.0 - # via -r requirements/base.txt +django-simple-history==3.1.1 + # via + # -c requirements/constraints.txt + # -r requirements/base.txt django-waffle==4.0.0 # via # -r requirements/base.txt @@ -133,7 +135,7 @@ ecdsa==0.18.0 # via # python-jose # sshpubkeys -edx-django-utils==5.6.0 +edx-django-utils==5.7.0 # via # -r requirements/base.txt # edx-toggles @@ -149,7 +151,7 @@ exceptiongroup==1.1.2 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==19.2.0 +faker==19.3.0 # via factory-boy filelock==3.12.2 # via @@ -177,7 +179,7 @@ idna==2.8 # -r requirements/base.txt # moto # requests -importlib-resources==6.0.0 +importlib-resources==6.0.1 # via jsonschema iniconfig==2.0.0 # via pytest @@ -223,17 +225,21 @@ lxml==4.9.3 # -r requirements/base.txt # xblock # xblock-sdk +markdown-it-py==3.0.0 + # via rich markupsafe==2.1.3 # via # -r requirements/base.txt # jinja2 # werkzeug # xblock +mdurl==0.1.2 + # via markdown-it-py mock==5.1.0 # via # -r requirements/test.in # moto -more-itertools==10.0.0 +more-itertools==10.1.0 # via -r requirements/test.in moto==1.3.14 # via @@ -297,6 +303,8 @@ pycparser==2.21 # cffi pydantic==1.10.12 # via aws-sam-translator +pygments==2.16.1 + # via rich pymongo==3.13.0 # via # -r requirements/base.txt @@ -372,6 +380,8 @@ requests==2.31.0 # xblock-sdk responses==0.23.3 # via moto +rich==13.5.2 + # via cookiecutter rsa==4.9 # via python-jose s3transfer==0.6.1 @@ -432,6 +442,7 @@ typing-extensions==4.7.1 # aws-sam-translator # faker # pydantic + # rich urllib3==1.26.16 # via # -r requirements/base.txt @@ -468,7 +479,7 @@ wrapt==1.11.2 # via # -c requirements/constraints.txt # aws-xray-sdk -xblock==1.6.2 +xblock==1.7.0 # via # -r requirements/base.txt # xblock-sdk