diff --git a/Makefile b/Makefile index f9b69193..d865b0dc 100644 --- a/Makefile +++ b/Makefile @@ -27,10 +27,19 @@ clean: ## delete generated byte code and coverage reports coverage erase rm -rf cover htmlcov +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 "$(@)" + export CUSTOM_COMPILE_COMMAND = make upgrade -upgrade: ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in - pip3 install -q -r requirements/pip_tools.txt +upgrade: $(COMMON_CONSTRAINTS_TXT) + ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in + pip install -q -r requirements/pip_tools.txt + pip-compile --allow-unsafe --rebuild --upgrade -o requirements/pip.txt requirements/pip.in pip-compile --rebuild --upgrade -o requirements/pip_tools.txt requirements/pip_tools.in + pip install -q -r requirements/pip.txt + pip install -q -r requirements/pip_tools.txt pip-compile --upgrade -o requirements/tox.txt requirements/tox.in pip-compile --upgrade -o requirements/base.txt requirements/base.in pip-compile --upgrade -o requirements/test.txt requirements/test.in diff --git a/requirements/base.txt b/requirements/base.txt index 826e5032..3aecce4c 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,55 +1,72 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.8 # To update, run: # # make upgrade # amqp==2.6.1 # via kombu -asgiref==3.4.1 +asgiref==3.5.2 # via django +async-timeout==4.0.2 + # via redis billiard==3.6.4.0 # via celery celery==4.4.7 # via # -c requirements/constraints.txt # -r requirements/base.in -certifi==2021.5.30 +certifi==2022.6.15 # via requests -charset-normalizer==2.0.6 +cffi==1.15.0 + # via pynacl +charset-normalizer==2.0.12 # via requests -django-crum==0.7.9 - # via edx-django-utils -django-waffle==2.2.1 +click==8.1.3 # via edx-django-utils -django==3.2.8 +deprecated==1.2.13 + # via redis +django==3.2.13 # via + # -c requirements/common_constraints.txt # -c requirements/constraints.txt # django-crum # edx-django-utils -edx-django-utils==4.4.0 +django-crum==0.7.9 + # via edx-django-utils +django-waffle==2.5.0 + # via edx-django-utils +edx-django-utils==5.0.0 # via edx-rest-api-client -edx-rest-api-client==5.4.0 +edx-rest-api-client==5.5.0 # via -r requirements/base.in -idna==3.2 +idna==3.3 # via requests kombu==4.6.11 # via celery -newrelic==7.0.0.166 +newrelic==7.12.0.176 # via edx-django-utils -pbr==5.6.0 +packaging==21.3 + # via redis +pbr==5.9.0 # via stevedore -psutil==5.8.0 +psutil==5.9.1 # via edx-django-utils -pyjwt==2.2.0 +pycparser==2.21 + # via cffi +pyjwt==2.4.0 # via edx-rest-api-client -pytz==2021.3 +pynacl==1.5.0 + # via edx-django-utils +pyparsing==3.0.9 + # via packaging +pytz==2022.1 # via # celery # django -redis==3.5.3 +redis==4.3.3 # via -r requirements/base.in -requests==2.26.0 +requests==2.28.0 # via # edx-rest-api-client # slumber @@ -59,11 +76,13 @@ slumber==0.7.1 # via edx-rest-api-client sqlparse==0.4.2 # via django -stevedore==3.4.0 +stevedore==3.5.0 # via edx-django-utils -urllib3==1.26.7 +urllib3==1.26.9 # via requests vine==1.3.0 # via # amqp # celery +wrapt==1.14.1 + # via deprecated diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt new file mode 100644 index 00000000..cca3ccd3 --- /dev/null +++ b/requirements/common_constraints.txt @@ -0,0 +1,25 @@ +# 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 + +setuptools<60 + +# django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected +django-simple-history==3.0.0 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 8459890e..e1287302 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -8,6 +8,7 @@ # pin when possible. Writing an issue against the offending project and # linking to it here is good. +-c common_constraints.txt # These were previously pinned in ecommerce-worker, and will stay that way # until we go through the process of relaxing them gradually. diff --git a/requirements/optional.txt b/requirements/optional.txt index c804f27d..1df058ef 100644 --- a/requirements/optional.txt +++ b/requirements/optional.txt @@ -1,8 +1,8 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.8 # To update, run: # # make upgrade # -newrelic==7.0.0.166 +newrelic==7.12.0.176 # via -r requirements/optional.in diff --git a/requirements/pip.in b/requirements/pip.in new file mode 100644 index 00000000..715478cd --- /dev/null +++ b/requirements/pip.in @@ -0,0 +1,7 @@ +-c constraints.txt +# Core dependencies for installing other packages + +pip +setuptools +wheel + diff --git a/requirements/pip.txt b/requirements/pip.txt new file mode 100644 index 00000000..8a667c4a --- /dev/null +++ b/requirements/pip.txt @@ -0,0 +1,16 @@ +# +# This file is autogenerated by pip-compile with python 3.8 +# To update, run: +# +# make upgrade +# +wheel==0.37.1 + # via -r requirements/pip.in + +# The following packages are considered to be unsafe in a requirements file: +pip==22.1.2 + # via -r requirements/pip.in +setuptools==59.8.0 + # via + # -c requirements/common_constraints.txt + # -r requirements/pip.in diff --git a/requirements/pip_tools.txt b/requirements/pip_tools.txt index 26f017f7..4a6f82d5 100644 --- a/requirements/pip_tools.txt +++ b/requirements/pip_tools.txt @@ -1,18 +1,18 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.8 # To update, run: # # make upgrade # -click==8.0.1 +click==8.1.3 # via pip-tools -pep517==0.11.0 +pep517==0.12.0 # via pip-tools -pip-tools==6.3.0 +pip-tools==6.6.2 # via -r requirements/pip_tools.in -tomli==1.2.1 +tomli==2.0.1 # via pep517 -wheel==0.37.0 +wheel==0.37.1 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/production.txt b/requirements/production.txt index 6442ac8a..53d50af3 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.8 # To update, run: # # make upgrade @@ -8,10 +8,14 @@ amqp==2.6.1 # via # -r requirements/base.txt # kombu -asgiref==3.4.1 +asgiref==3.5.2 # via # -r requirements/base.txt # django +async-timeout==4.0.2 + # via + # -r requirements/base.txt + # redis billiard==3.6.4.0 # via # -r requirements/base.txt @@ -20,35 +24,48 @@ celery==4.4.7 # via # -c requirements/constraints.txt # -r requirements/base.txt -certifi==2021.5.30 +certifi==2022.6.15 # via # -r requirements/base.txt # requests -charset-normalizer==2.0.6 +cffi==1.15.0 + # via + # -r requirements/base.txt + # pynacl +charset-normalizer==2.0.12 # via # -r requirements/base.txt # requests -django-crum==0.7.9 +click==8.1.3 # via # -r requirements/base.txt # edx-django-utils -django-waffle==2.2.1 +deprecated==1.2.13 # via # -r requirements/base.txt - # edx-django-utils -django==3.2.8 + # redis +django==3.2.13 # via + # -c requirements/common_constraints.txt # -c requirements/constraints.txt # -r requirements/base.txt # django-crum # edx-django-utils -edx-django-utils==4.4.0 +django-crum==0.7.9 + # via + # -r requirements/base.txt + # edx-django-utils +django-waffle==2.5.0 + # via + # -r requirements/base.txt + # edx-django-utils +edx-django-utils==5.0.0 # via # -r requirements/base.txt # edx-rest-api-client -edx-rest-api-client==5.4.0 +edx-rest-api-client==5.5.0 # via -r requirements/base.txt -idna==3.2 +idna==3.3 # via # -r requirements/base.txt # requests @@ -56,32 +73,48 @@ kombu==4.6.11 # via # -r requirements/base.txt # celery -newrelic==7.0.0.166 +newrelic==7.12.0.176 # via # -r requirements/base.txt # edx-django-utils -pbr==5.6.0 +packaging==21.3 + # via + # -r requirements/base.txt + # redis +pbr==5.9.0 # via # -r requirements/base.txt # stevedore -psutil==5.8.0 +psutil==5.9.1 # via # -r requirements/base.txt # edx-django-utils -pyjwt==2.2.0 +pycparser==2.21 + # via + # -r requirements/base.txt + # cffi +pyjwt==2.4.0 # via # -r requirements/base.txt # edx-rest-api-client -pytz==2021.3 +pynacl==1.5.0 + # via + # -r requirements/base.txt + # edx-django-utils +pyparsing==3.0.9 + # via + # -r requirements/base.txt + # packaging +pytz==2022.1 # via # -r requirements/base.txt # celery # django -pyyaml==5.4.1 +pyyaml==6.0 # via -r requirements/production.in -redis==3.5.3 +redis==4.3.3 # via -r requirements/base.txt -requests==2.26.0 +requests==2.28.0 # via # -r requirements/base.txt # edx-rest-api-client @@ -96,11 +129,11 @@ sqlparse==0.4.2 # via # -r requirements/base.txt # django -stevedore==3.4.0 +stevedore==3.5.0 # via # -r requirements/base.txt # edx-django-utils -urllib3==1.26.7 +urllib3==1.26.9 # via # -r requirements/base.txt # requests @@ -109,3 +142,7 @@ vine==1.3.0 # -r requirements/base.txt # amqp # celery +wrapt==1.14.1 + # via + # -r requirements/base.txt + # deprecated diff --git a/requirements/test.txt b/requirements/test.txt index 6c89a723..ec06bfdb 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.8 # To update, run: # # make upgrade @@ -8,16 +8,20 @@ amqp==2.6.1 # via # -r requirements/base.txt # kombu -asgiref==3.4.1 +asgiref==3.5.2 # via # -r requirements/base.txt # django -astroid==2.8.2 +astroid==2.11.6 # via # -r requirements/test.in # pylint # pylint-celery -attrs==21.2.0 +async-timeout==4.0.2 + # via + # -r requirements/base.txt + # redis +attrs==21.4.0 # via pytest billiard==3.6.4.0 # via @@ -27,148 +31,173 @@ celery==4.4.7 # via # -c requirements/constraints.txt # -r requirements/base.txt -certifi==2021.5.30 +certifi==2022.6.15 # via # -r requirements/base.txt # requests -charset-normalizer==2.0.6 +cffi==1.15.0 + # via + # -r requirements/base.txt + # pynacl +charset-normalizer==2.0.12 # via # -r requirements/base.txt # requests -click-log==0.3.2 - # via edx-lint -click==8.0.1 +click==8.1.3 # via + # -r requirements/base.txt # click-log # code-annotations + # edx-django-utils # edx-lint -code-annotations==1.2.0 +click-log==0.4.0 + # via edx-lint +code-annotations==1.3.0 # via edx-lint -coverage[toml]==6.0.1 +coverage[toml]==6.4.1 # via # -r requirements/test.in # pytest-cov -ddt==1.4.4 +ddt==1.5.0 # via -r requirements/test.in -django-crum==0.7.9 +deprecated==1.2.13 + # via + # -r requirements/base.txt + # redis +dill==0.3.5.1 + # via pylint # via + # -c requirements/common_constraints.txt + # -c requirements/constraints.txt # -r requirements/base.txt + # django-crum # edx-django-utils -django-waffle==2.2.1 +django-crum==0.7.9 # via # -r requirements/base.txt # edx-django-utils +django-waffle==2.5.0 # via - # -c requirements/constraints.txt # -r requirements/base.txt - # django-crum # edx-django-utils -edx-django-utils==4.4.0 +edx-django-utils==5.0.0 # via # -r requirements/base.txt # edx-rest-api-client -edx-lint==5.2.0 +edx-lint==5.2.4 # via -r requirements/test.in -edx-rest-api-client==5.4.0 +edx-rest-api-client==5.5.0 # via -r requirements/base.txt -idna==3.2 +idna==3.3 # via # -r requirements/base.txt # requests iniconfig==1.1.1 # via pytest -isort==5.9.3 +isort==5.10.1 # via pylint -jinja2==3.0.2 +jinja2==3.1.2 # via code-annotations kombu==4.6.11 # via # -r requirements/base.txt # celery -lazy-object-proxy==1.6.0 +lazy-object-proxy==1.7.1 # via astroid -markupsafe==2.0.1 +markupsafe==2.1.1 # via jinja2 -mccabe==0.6.1 +mccabe==0.7.0 # via pylint mock==4.0.3 # via -r requirements/test.in -newrelic==7.0.0.166 +newrelic==7.12.0.176 # via # -r requirements/base.txt # edx-django-utils -packaging==21.0 - # via pytest -pbr==5.6.0 +packaging==21.3 + # via + # -r requirements/base.txt + # pytest + # redis +pbr==5.9.0 # via # -r requirements/base.txt # stevedore -platformdirs==2.4.0 +platformdirs==2.5.2 # via pylint pluggy==1.0.0 # via pytest -psutil==5.8.0 +psutil==5.9.1 # via # -r requirements/base.txt # edx-django-utils -py==1.10.0 +py==1.11.0 # via pytest -pycodestyle==2.7.0 +pycodestyle==2.8.0 # via -r requirements/test.in -pyjwt==2.2.0 +pycparser==2.21 + # via + # -r requirements/base.txt + # cffi +pyjwt==2.4.0 # via # -r requirements/base.txt # edx-rest-api-client -pylint-celery==0.3 - # via edx-lint -pylint-django==2.4.4 +pylint==2.14.3 # via # -r requirements/test.in # edx-lint -pylint-plugin-utils==0.6 - # via - # -r requirements/test.in # pylint-celery # pylint-django -pylint==2.11.1 + # pylint-plugin-utils +pylint-celery==0.3 + # via edx-lint +pylint-django==2.5.3 # via # -r requirements/test.in # edx-lint +pylint-plugin-utils==0.7 + # via + # -r requirements/test.in # pylint-celery # pylint-django - # pylint-plugin-utils -pyparsing==2.4.7 - # via packaging -pytest-cov==3.0.0 - # via -r requirements/test.in -pytest==6.2.5 +pynacl==1.5.0 + # via + # -r requirements/base.txt + # edx-django-utils +pyparsing==3.0.9 + # via + # -r requirements/base.txt + # packaging +pytest==7.1.2 # via # -r requirements/test.in # pytest-cov -python-slugify==5.0.2 +pytest-cov==3.0.0 + # via -r requirements/test.in +python-slugify==6.1.2 # via code-annotations -pytz==2021.3 +pytz==2022.1 # via # -r requirements/base.txt # celery # django -pyyaml==5.4.1 +pyyaml==6.0 # via code-annotations -redis==3.5.3 +redis==4.3.3 # via -r requirements/base.txt -requests==2.26.0 +requests==2.28.0 # via # -r requirements/base.txt # edx-rest-api-client # responses # slumber -responses==0.14.0 +responses==0.21.0 # via -r requirements/test.in six==1.16.0 # via # -r requirements/base.txt # edx-lint - # responses slumber==0.7.1 # via # -r requirements/base.txt @@ -177,26 +206,27 @@ sqlparse==0.4.2 # via # -r requirements/base.txt # django -stevedore==3.4.0 +stevedore==3.5.0 # via # -r requirements/base.txt # code-annotations # edx-django-utils -testfixtures==6.18.3 +testfixtures==6.18.5 # via -r requirements/test.in text-unidecode==1.3 # via python-slugify -toml==0.10.2 +tomli==2.0.1 # via + # coverage # pylint # pytest -tomli==1.2.1 - # via coverage -typing-extensions==3.10.0.2 +tomlkit==0.11.0 + # via pylint +typing-extensions==4.2.0 # via # astroid # pylint -urllib3==1.26.7 +urllib3==1.26.9 # via # -r requirements/base.txt # requests @@ -206,8 +236,11 @@ vine==1.3.0 # -r requirements/base.txt # amqp # celery -wrapt==1.12.1 - # via astroid +wrapt==1.14.1 + # via + # -r requirements/base.txt + # astroid + # deprecated # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/tox.txt b/requirements/tox.txt index 2d033a2e..d1dfb002 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -1,26 +1,24 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.8 # To update, run: # # make upgrade # -backports.entry-points-selectable==1.1.0 +distlib==0.3.4 # via virtualenv -distlib==0.3.3 - # via virtualenv -filelock==3.3.0 +filelock==3.7.1 # via # tox # virtualenv -packaging==21.0 +packaging==21.3 # via tox -platformdirs==2.4.0 +platformdirs==2.5.2 # via virtualenv pluggy==1.0.0 # via tox -py==1.10.0 +py==1.11.0 # via tox -pyparsing==2.4.7 +pyparsing==3.0.9 # via packaging six==1.16.0 # via @@ -28,11 +26,11 @@ six==1.16.0 # virtualenv toml==0.10.2 # via tox -tox-battery==0.6.1 - # via -r requirements/tox.in -tox==3.24.4 +tox==3.25.0 # via # -r requirements/tox.in # tox-battery -virtualenv==20.8.1 +tox-battery==0.6.1 + # via -r requirements/tox.in +virtualenv==20.14.1 # via tox