From 5eac6aa0491adf5f3ab5ef1a56d9657cf6aa3715 Mon Sep 17 00:00:00 2001 From: Jeremy Bowman <jbowman@edx.org> Date: Tue, 7 May 2019 16:01:37 -0400 Subject: [PATCH] Upgrade to django-pipeline 1.6.14 (#20449) --- cms/djangoapps/pipeline_js/utils.py | 2 +- cms/envs/common.py | 33 ++++++++----------- cms/envs/devstack.py | 2 +- common/djangoapps/pipeline_mako/__init__.py | 4 +-- .../templates/static_content.html | 10 +++--- .../pipeline_mako/tests/test_render.py | 11 +++++-- lms/djangoapps/branding/views.py | 2 +- lms/envs/bok_choy.py | 2 +- lms/envs/common.py | 23 +++++++------ lms/envs/devstack.py | 6 ++-- lms/envs/test.py | 2 +- openedx/core/djangoapps/plugin_api/views.py | 20 +++++------ openedx/core/djangoapps/theming/storage.py | 2 +- .../theming/templatetags/theme_pipeline.py | 4 +-- openedx/core/lib/tests/test_xblock_utils.py | 13 +++++--- openedx/core/lib/xblock_builtin/__init__.py | 20 +++++------ openedx/core/lib/xblock_utils/__init__.py | 2 +- requirements/edx/base.in | 4 +-- requirements/edx/base.txt | 4 +-- requirements/edx/development.txt | 9 +++-- requirements/edx/testing.txt | 13 +++++--- 21 files changed, 99 insertions(+), 89 deletions(-) diff --git a/cms/djangoapps/pipeline_js/utils.py b/cms/djangoapps/pipeline_js/utils.py index 91ce32d8af9..ba00cd199de 100644 --- a/cms/djangoapps/pipeline_js/utils.py +++ b/cms/djangoapps/pipeline_js/utils.py @@ -10,7 +10,7 @@ def get_xmodule_urls(): """ Returns a list of the URLs to hit to grab all the XModule JS """ - pipeline_js_settings = settings.PIPELINE_JS["module-js"] + pipeline_js_settings = settings.PIPELINE['JAVASCRIPT']["module-js"] if settings.DEBUG: paths = [path.replace(".coffee", ".js") for path in pipeline_js_settings["source_filenames"]] else: diff --git a/cms/envs/common.py b/cms/envs/common.py index 3c3e6bb67e4..16900f5fa3a 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -702,7 +702,18 @@ EMBARGO_SITE_REDIRECT_URL = None ############################### PIPELINE ####################################### -PIPELINE_ENABLED = True +PIPELINE = { + 'PIPELINE_ENABLED': True, + # Don't use compression by default + 'CSS_COMPRESSOR': None, + 'JS_COMPRESSOR': None, + # Don't wrap JavaScript as there is code that depends upon updating the global namespace + 'DISABLE_WRAPPER': True, + # Specify the UglifyJS binary to use + 'UGLIFYJS_BINARY': 'node_modules/.bin/uglifyjs', + 'COMPILERS': (), + 'YUI_BINARY': 'yui-compressor', +} STATICFILES_STORAGE = 'openedx.core.storage.ProductionStorage' @@ -716,19 +727,9 @@ STATICFILES_FINDERS = [ 'pipeline.finders.PipelineFinder', ] -# Don't use compression by default -PIPELINE_CSS_COMPRESSOR = None -PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.uglifyjs.UglifyJSCompressor' - -# Don't wrap JavaScript as there is code that depends upon updating the global namespace -PIPELINE_DISABLE_WRAPPER = True - -# Specify the UglifyJS binary to use -PIPELINE_UGLIFYJS_BINARY = 'node_modules/.bin/uglifyjs' - from openedx.core.lib.rooted_paths import rooted_glob -PIPELINE_CSS = { +PIPELINE['STYLESHEETS'] = { 'style-vendor': { 'source_filenames': [ 'css/vendor/normalize.css', @@ -826,7 +827,7 @@ base_vendor_js = [ # test_order: Determines the position of this chunk of javascript on # the jasmine test page -PIPELINE_JS = { +PIPELINE['JAVASCRIPT'] = { 'base_vendor': { 'source_filenames': base_vendor_js, 'output_filename': 'js/cms-base-vendor.js', @@ -842,10 +843,6 @@ PIPELINE_JS = { }, } -PIPELINE_COMPILERS = () -PIPELINE_CSS_COMPRESSOR = None -PIPELINE_JS_COMPRESSOR = None - STATICFILES_IGNORE_PATTERNS = ( "*.py", "*.pyc", @@ -868,8 +865,6 @@ STATICFILES_IGNORE_PATTERNS = ( "common_static", ) -PIPELINE_YUI_BINARY = 'yui-compressor' - ################################# DJANGO-REQUIRE ############################### diff --git a/cms/envs/devstack.py b/cms/envs/devstack.py index 938e2c72d89..edc70d1c75a 100644 --- a/cms/envs/devstack.py +++ b/cms/envs/devstack.py @@ -40,7 +40,7 @@ FEATURES['PREVIEW_LMS_BASE'] = "preview." + LMS_BASE ########################### PIPELINE ################################# # Skip packaging and optimization in development -PIPELINE_ENABLED = False +PIPELINE['PIPELINE_ENABLED'] = False STATICFILES_STORAGE = 'openedx.core.storage.DevelopmentStorage' # Revert to the default set of finders as we don't want the production pipeline diff --git a/common/djangoapps/pipeline_mako/__init__.py b/common/djangoapps/pipeline_mako/__init__.py index 754976d5099..17734265190 100644 --- a/common/djangoapps/pipeline_mako/__init__.py +++ b/common/djangoapps/pipeline_mako/__init__.py @@ -10,7 +10,7 @@ from django.contrib.staticfiles.storage import staticfiles_storage def compressed_css(package_name, raw=False): - package = settings.PIPELINE_CSS.get(package_name, {}) + package = settings.STYLESHEETS.get(package_name, {}) if package: package = {package_name: package} packager = Packager(css_packages=package, js_packages={}) @@ -44,7 +44,7 @@ def render_individual_css(package, paths, raw=False): def compressed_js(package_name): - package = settings.PIPELINE_JS.get(package_name, {}) + package = settings.JAVASCRIPT.get(package_name, {}) if package: package = {package_name: package} packager = Packager(css_packages={}, js_packages=package) diff --git a/common/djangoapps/pipeline_mako/templates/static_content.html b/common/djangoapps/pipeline_mako/templates/static_content.html index da6868b8abb..afa7fbab8ee 100644 --- a/common/djangoapps/pipeline_mako/templates/static_content.html +++ b/common/djangoapps/pipeline_mako/templates/static_content.html @@ -50,24 +50,24 @@ except: <% rtl_group = '{}-rtl'.format(group) - if get_language_bidi() and rtl_group in settings.PIPELINE_CSS: + if get_language_bidi() and rtl_group in settings.PIPELINE['STYLESHEETS']: group = rtl_group %> - % if settings.PIPELINE_ENABLED: + % if settings.PIPELINE['PIPELINE_ENABLED']: ${compressed_css(group, raw=raw) | n, decode.utf8} % else: - % for filename in settings.PIPELINE_CSS[group]['source_filenames']: + % for filename in settings.PIPELINE['STYLESHEETS'][group]['source_filenames']: <link rel="stylesheet" href="${staticfiles_storage.url(filename.replace('.scss', '.css'))}${"?raw" if raw else ""}" type="text/css" media="all" / > % endfor %endif </%def> <%def name='js(group)'> - % if settings.PIPELINE_ENABLED: + % if settings.PIPELINE['PIPELINE_ENABLED']: ${compressed_js(group) | n, decode.utf8} % else: - % for filename in settings.PIPELINE_JS[group]['source_filenames']: + % for filename in settings.PIPELINE['JAVASCRIPT'][group]['source_filenames']: <script type="text/javascript" src="${staticfiles_storage.url(filename.replace('.coffee', '.js'))}"></script> % endfor %endif diff --git a/common/djangoapps/pipeline_mako/tests/test_render.py b/common/djangoapps/pipeline_mako/tests/test_render.py index 7ac231a60a7..77af65939b1 100644 --- a/common/djangoapps/pipeline_mako/tests/test_render.py +++ b/common/djangoapps/pipeline_mako/tests/test_render.py @@ -58,7 +58,9 @@ class PipelineRenderTest(TestCase): Verify the behavior of compressed_css, with the pipeline both enabled and disabled. """ - with self.settings(PIPELINE_ENABLED=pipeline_enabled): + pipeline = settings.PIPELINE.copy() + pipeline['PIPELINE_ENABLED'] = pipeline_enabled + with self.settings(PIPELINE=pipeline): # Verify the default behavior css_include = compressed_css('style-main-v1') self.assertIn(u'lms-main-v1.css', css_include) @@ -74,12 +76,15 @@ class PipelineRenderTest(TestCase): Verify the behavior of compressed_css, with the pipeline both enabled and disabled. """ + pipeline = settings.PIPELINE.copy() # Verify that a single JS file is rendered with the pipeline enabled - with self.settings(PIPELINE_ENABLED=True): + pipeline['PIPELINE_ENABLED'] = True + with self.settings(PIPELINE=pipeline): js_include = compressed_js('base_application') self.assertIn(u'lms-base-application.js', js_include) # Verify that multiple JS files are rendered with the pipeline disabled - with self.settings(PIPELINE_ENABLED=False): + pipeline['PIPELINE_ENABLED'] = False + with self.settings(PIPELINE=pipeline): js_include = compressed_js('base_application') self.assertIn(u'/static/js/src/logger.js', js_include) diff --git a/lms/djangoapps/branding/views.py b/lms/djangoapps/branding/views.py index d5cb206036c..67735445c1a 100644 --- a/lms/djangoapps/branding/views.py +++ b/lms/djangoapps/branding/views.py @@ -105,7 +105,7 @@ def _footer_css_urls(request, package_name): # to identify the CSS file name(s) to include in the footer. # We then construct an absolute URI so that external sites (such as the marketing site) # can locate the assets. - package = settings.PIPELINE_CSS.get(package_name, {}) + package = settings.PIPELINE['STYLESHEETS'].get(package_name, {}) paths = [package['output_filename']] if not settings.DEBUG else package['source_filenames'] return [ _footer_static_url(request, path) diff --git a/lms/envs/bok_choy.py b/lms/envs/bok_choy.py index d2593cc7086..1d19a45624d 100644 --- a/lms/envs/bok_choy.py +++ b/lms/envs/bok_choy.py @@ -80,7 +80,7 @@ MEDIA_ROOT = TEST_ROOT / "uploads" WEBPACK_LOADER['DEFAULT']['STATS_FILE'] = TEST_ROOT / "staticfiles" / "lms" / "webpack-stats.json" # Don't use compression during tests -PIPELINE_JS_COMPRESSOR = None +PIPELINE['JS_COMPRESSOR'] = None ################################# CELERY ###################################### diff --git a/lms/envs/common.py b/lms/envs/common.py index 01c985b3fe3..c5471478ddf 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -1336,7 +1336,15 @@ P3P_HEADER = 'CP="Open EdX does not have a P3P policy."' ############################### PIPELINE ####################################### -PIPELINE_ENABLED = True +PIPELINE = { + 'PIPELINE_ENABLED': True, + 'CSS_COMPRESSOR': None, + 'JS_COMPRESSOR': 'pipeline.compressors.uglifyjs.UglifyJSCompressor', + # Don't wrap JavaScript as there is code that depends upon updating the global namespace + 'DISABLE_WRAPPER': True, + # Specify the UglifyJS binary to use + 'UGLIFYJS_BINARY': 'node_modules/.bin/uglifyjs', +} STATICFILES_STORAGE = 'openedx.core.storage.ProductionStorage' @@ -1350,15 +1358,6 @@ STATICFILES_FINDERS = [ 'pipeline.finders.PipelineFinder', ] -PIPELINE_CSS_COMPRESSOR = None -PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.uglifyjs.UglifyJSCompressor' - -# Don't wrap JavaScript as there is code that depends upon updating the global namespace -PIPELINE_DISABLE_WRAPPER = True - -# Specify the UglifyJS binary to use -PIPELINE_UGLIFYJS_BINARY = 'node_modules/.bin/uglifyjs' - from openedx.core.lib.rooted_paths import rooted_glob courseware_js = [ @@ -1504,7 +1503,7 @@ credit_web_view_js = [ 'js/src/logger.js', ] -PIPELINE_CSS = { +PIPELINE['STYLESHEETS'] = { 'style-vendor': { 'source_filenames': [ 'css/vendor/font-awesome.css', @@ -1678,7 +1677,7 @@ lms_application_js = [ 'js/main.js', ] -PIPELINE_JS = { +PIPELINE['JAVASCRIPT'] = { 'base_application': { 'source_filenames': base_application_js, 'output_filename': 'js/lms-base-application.js', diff --git a/lms/envs/devstack.py b/lms/envs/devstack.py index e7f737a4ae9..fdad39946d9 100644 --- a/lms/envs/devstack.py +++ b/lms/envs/devstack.py @@ -99,7 +99,7 @@ FEATURES['ENABLE_API_DOCS'] = True ########################### PIPELINE ################################# -PIPELINE_ENABLED = False +PIPELINE['PIPELINE_ENABLED'] = False STATICFILES_STORAGE = 'openedx.core.storage.DevelopmentStorage' # Revert to the default set of finders as we don't want the production pipeline @@ -110,12 +110,12 @@ STATICFILES_FINDERS = [ ] # Disable JavaScript compression in development -PIPELINE_JS_COMPRESSOR = None +PIPELINE['JS_COMPRESSOR'] = None # Whether to run django-require in debug mode. REQUIRE_DEBUG = DEBUG -PIPELINE_SASS_ARGUMENTS = '--debug-info' +PIPELINE['SASS_ARGUMENTS'] = '--debug-info' # Load development webpack donfiguration WEBPACK_CONFIG_PATH = 'webpack.dev.config.js' diff --git a/lms/envs/test.py b/lms/envs/test.py index 80754cf1271..af02d1e50aa 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -145,7 +145,7 @@ STATICFILES_DIRS += [ STATICFILES_STORAGE = 'pipeline.storage.NonPackagingPipelineStorage' # Don't use compression during tests -PIPELINE_JS_COMPRESSOR = None +PIPELINE['JS_COMPRESSOR'] = None update_module_store_settings( MODULESTORE, diff --git a/openedx/core/djangoapps/plugin_api/views.py b/openedx/core/djangoapps/plugin_api/views.py index b8b4b1c7436..1214f276656 100644 --- a/openedx/core/djangoapps/plugin_api/views.py +++ b/openedx/core/djangoapps/plugin_api/views.py @@ -26,26 +26,26 @@ class EdxFragmentView(FragmentView): @staticmethod def get_css_dependencies(group): """ - Returns list of CSS dependencies belonging to `group` in settings.PIPELINE_JS. + Returns list of CSS dependencies belonging to `group` in settings.PIPELINE['JAVASCRIPT']. - Respects `PIPELINE_ENABLED` setting. + Respects `PIPELINE['PIPELINE_ENABLED']` setting. """ - if settings.PIPELINE_ENABLED: - return [settings.PIPELINE_CSS[group]['output_filename']] + if settings.PIPELINE['PIPELINE_ENABLED']: + return [settings.PIPELINE['STYLESHEETS'][group]['output_filename']] else: - return settings.PIPELINE_CSS[group]['source_filenames'] + return settings.PIPELINE['STYLESHEETS'][group]['source_filenames'] @staticmethod def get_js_dependencies(group): """ - Returns list of JS dependencies belonging to `group` in settings.PIPELINE_JS. + Returns list of JS dependencies belonging to `group` in settings.PIPELINE['JAVASCRIPT']. - Respects `PIPELINE_ENABLED` setting. + Respects `PIPELINE['PIPELINE_ENABLED']` setting. """ - if settings.PIPELINE_ENABLED: - return [settings.PIPELINE_JS[group]['output_filename']] + if settings.PIPELINE['PIPELINE_ENABLED']: + return [settings.PIPELINE['JAVASCRIPT'][group]['output_filename']] else: - return settings.PIPELINE_JS[group]['source_filenames'] + return settings.PIPELINE['JAVASCRIPT'][group]['source_filenames'] def vendor_js_dependencies(self): """ diff --git a/openedx/core/djangoapps/theming/storage.py b/openedx/core/djangoapps/theming/storage.py index d128c65b12d..268b80b52b3 100644 --- a/openedx/core/djangoapps/theming/storage.py +++ b/openedx/core/djangoapps/theming/storage.py @@ -275,7 +275,7 @@ class ThemePipelineMixin(PipelineMixin): themes = get_themes() for theme in themes: - css_packages = self.get_themed_packages(theme.theme_dir_name, settings.PIPELINE_CSS) + css_packages = self.get_themed_packages(theme.theme_dir_name, settings.PIPELINE['STYLESHEETS']) from pipeline.packager import Packager packager = Packager(storage=self, css_packages=css_packages) diff --git a/openedx/core/djangoapps/theming/templatetags/theme_pipeline.py b/openedx/core/djangoapps/theming/templatetags/theme_pipeline.py index d3e37e4187e..1dc3ec4d3d2 100644 --- a/openedx/core/djangoapps/theming/templatetags/theme_pipeline.py +++ b/openedx/core/djangoapps/theming/templatetags/theme_pipeline.py @@ -57,7 +57,7 @@ def stylesheet(parser, token): # pylint: disable=unused-argument _, name = token.split_contents() except ValueError: raise template.TemplateSyntaxError( - u'%r requires exactly one argument: the name of a group in the PIPELINE_CSS setting' % + u'%r requires exactly one argument: the name of a group in the PIPELINE["STYLESHEETS"] setting' % token.split_contents()[0] ) return ThemeStylesheetNode(name) @@ -72,7 +72,7 @@ def javascript(parser, token): # pylint: disable=unused-argument _, name = token.split_contents() except ValueError: raise template.TemplateSyntaxError( - u'%r requires exactly one argument: the name of a group in the PIPELINE_JS setting' % + u'%r requires exactly one argument: the name of a group in the PIPELINE["JAVASCRIPT"] setting' % token.split_contents()[0] ) return ThemeJavascriptNode(name) diff --git a/openedx/core/lib/tests/test_xblock_utils.py b/openedx/core/lib/tests/test_xblock_utils.py index a093093a777..1e75368f7d8 100644 --- a/openedx/core/lib/tests/test_xblock_utils.py +++ b/openedx/core/lib/tests/test_xblock_utils.py @@ -6,6 +6,7 @@ from __future__ import absolute_import, unicode_literals import uuid import ddt +from django.conf import settings from django.test.client import RequestFactory from mock import patch from web_fragments.fragment import Fragment @@ -194,13 +195,15 @@ class TestXblockUtils(SharedModuleStoreTestCase): """ Verify that `get_css_dependencies` returns correct list of files. """ - pipeline_css = { + pipeline = settings.PIPELINE.copy() + pipeline['PIPELINE_ENABLED'] = pipeline_enabled + pipeline['STYLESHEETS'] = { 'style-group': { 'source_filenames': ["a.css", "b.css", "c.css"], 'output_filename': "combined.css" } } - with self.settings(PIPELINE_ENABLED=pipeline_enabled, PIPELINE_CSS=pipeline_css): + with self.settings(PIPELINE=pipeline): css_dependencies = get_css_dependencies("style-group") self.assertEqual(css_dependencies, expected_css_dependencies) @@ -213,13 +216,15 @@ class TestXblockUtils(SharedModuleStoreTestCase): """ Verify that `get_js_dependencies` returns correct list of files. """ - pipeline_js = { + pipeline = settings.PIPELINE.copy() + pipeline['PIPELINE_ENABLED'] = pipeline_enabled + pipeline['JAVASCRIPT'] = { 'js-group': { 'source_filenames': ["a.js", "b.js", "c.js"], 'output_filename': "combined.js" } } - with self.settings(PIPELINE_ENABLED=pipeline_enabled, PIPELINE_JS=pipeline_js): + with self.settings(PIPELINE=pipeline): js_dependencies = get_js_dependencies("js-group") self.assertEqual(js_dependencies, expected_js_dependencies) diff --git a/openedx/core/lib/xblock_builtin/__init__.py b/openedx/core/lib/xblock_builtin/__init__.py index 643ebb52552..5414ba27401 100644 --- a/openedx/core/lib/xblock_builtin/__init__.py +++ b/openedx/core/lib/xblock_builtin/__init__.py @@ -10,23 +10,23 @@ from django.conf import settings def get_css_dependencies(group): """ - Returns list of CSS dependencies belonging to `group` in settings.PIPELINE_JS. + Returns list of CSS dependencies belonging to `group` in settings.PIPELINE['STYLESHEETS']. - Respects `PIPELINE_ENABLED` setting. + Respects `PIPELINE['PIPELINE_ENABLED']` setting. """ - if settings.PIPELINE_ENABLED: - return [settings.PIPELINE_CSS[group]['output_filename']] + if settings.PIPELINE['PIPELINE_ENABLED']: + return [settings.PIPELINE['STYLESHEETS'][group]['output_filename']] else: - return settings.PIPELINE_CSS[group]['source_filenames'] + return settings.PIPELINE['STYLESHEETS'][group]['source_filenames'] def get_js_dependencies(group): """ - Returns list of JS dependencies belonging to `group` in settings.PIPELINE_JS. + Returns list of JS dependencies belonging to `group` in settings.PIPELINE['JAVASCRIPT']. - Respects `PIPELINE_ENABLED` setting. + Respects `PIPELINE['PIPELINE_ENABLED']` setting. """ - if settings.PIPELINE_ENABLED: - return [settings.PIPELINE_JS[group]['output_filename']] + if settings.PIPELINE['PIPELINE_ENABLED']: + return [settings.PIPELINE['JAVASCRIPT'][group]['output_filename']] else: - return settings.PIPELINE_JS[group]['source_filenames'] + return settings.PIPELINE['JAVASCRIPT'][group]['source_filenames'] diff --git a/openedx/core/lib/xblock_utils/__init__.py b/openedx/core/lib/xblock_utils/__init__.py index 8eb0728dadd..edef41abfd3 100644 --- a/openedx/core/lib/xblock_utils/__init__.py +++ b/openedx/core/lib/xblock_utils/__init__.py @@ -485,7 +485,7 @@ def xblock_local_resource_url(block, uri): as a static asset which will use a CDN in production. """ xblock_class = getattr(block.__class__, 'unmixed_class', block.__class__) - if settings.PIPELINE_ENABLED or not settings.REQUIRE_DEBUG: + if settings.PIPELINE['PIPELINE_ENABLED'] or not settings.REQUIRE_DEBUG: return staticfiles_storage.url('xblock/resources/{package_name}/{path}'.format( package_name=xblock_resource_pkg(xblock_class), path=uri diff --git a/requirements/edx/base.in b/requirements/edx/base.in index aa994d0ac9c..4060288d80b 100644 --- a/requirements/edx/base.in +++ b/requirements/edx/base.in @@ -49,7 +49,7 @@ django-model-utils==3.0.0 django-mptt>=0.8.6,<0.9 django-mysql==2.4.1 django-oauth-toolkit<1.2 # Provides oAuth2 capabilities for Django. 1.2+ requires Django 2 and Python 3.5 -django-pipeline==1.5.3 +django-pipeline django-pyfs django-ratelimit django-ratelimit-backend==1.1.1 @@ -79,7 +79,7 @@ edx-enterprise edx-milestones edx-oauth2-provider edx-organizations -edx-proctoring>=1.6.0 +edx-proctoring>=2.0.1 edx-proctoring-proctortrack==1.0.5 # Intentionally and permanently pinned to ensure code changes are reviewed edx-rest-api-client edx-search diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 42195d9846c..a67b8cf0f22 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -82,7 +82,7 @@ django-multi-email-field==0.5.1 # via edx-enterprise django-mysql==2.4.1 django-oauth-toolkit==1.1.3 django-object-actions==0.10.0 # via edx-enterprise -django-pipeline==1.5.3 +django-pipeline==1.6.14 django-pyfs==2.0 django-ratelimit-backend==1.1.1 django-ratelimit==2.0.0 @@ -119,7 +119,7 @@ edx-oauth2-provider==1.2.2 edx-opaque-keys[django]==0.4.4 edx-organizations==2.0.2 edx-proctoring-proctortrack==1.0.5 -edx-proctoring==2.0.0 +edx-proctoring==2.0.1 edx-rbac==0.2.0 # via edx-enterprise edx-rest-api-client==1.9.2 edx-search==1.2.2 diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 5e63b516761..4cdbec14c5e 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -72,6 +72,7 @@ code-annotations==0.3.1 colorama==0.4.1 configparser==3.7.4 constantly==15.1.0 +contextlib2==0.5.5 coreapi==2.3.3 coreschema==0.0.4 coverage==4.4 @@ -103,7 +104,7 @@ django-multi-email-field==0.5.1 django-mysql==2.4.1 django-oauth-toolkit==1.1.3 django-object-actions==0.10.0 -django-pipeline==1.5.3 +django-pipeline==1.6.14 django-pyfs==2.0 django-ratelimit-backend==1.1.1 django-ratelimit==2.0.0 @@ -141,7 +142,7 @@ edx-oauth2-provider==1.2.2 edx-opaque-keys[django]==0.4.4 edx-organizations==2.0.2 edx-proctoring-proctortrack==1.0.5 -edx-proctoring==2.0.0 +edx-proctoring==2.0.1 edx-rbac==0.2.0 edx-rest-api-client==1.9.2 edx-search==1.2.2 @@ -180,6 +181,7 @@ httpretty==0.9.6 hyperlink==19.0.0 idna==2.8 imagesize==1.1.0 # via sphinx +importlib-metadata==0.9 incremental==17.5.0 inflect==2.1.0 ipaddress==1.0.22 @@ -233,7 +235,7 @@ pdfminer.six==20181108 piexif==1.0.2 pillow==6.0.0 pip-tools==3.6.1 -pluggy==0.9.0 +pluggy==0.10.0 polib==1.1.0 psutil==1.2.1 py2neo==3.1.2 @@ -346,4 +348,5 @@ xblock-utils==1.2.1 xblock==1.2.2 xmltodict==0.12.0 zendesk==1.1.1 +zipp==0.4.0 zope.interface==4.6.0 diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 139df17752e..be1cd4aba57 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -68,8 +68,9 @@ click-log==0.3.2 # via edx-lint click==7.0 code-annotations==0.3.1 colorama==0.4.1 # via radon -configparser==3.7.4 # via entrypoints, flake8, pylint +configparser==3.7.4 # via entrypoints, flake8, importlib-metadata, pylint constantly==15.1.0 # via twisted +contextlib2==0.5.5 # via importlib-metadata coreapi==2.3.3 coreschema==0.0.4 coverage==4.4 @@ -100,7 +101,7 @@ django-multi-email-field==0.5.1 django-mysql==2.4.1 django-oauth-toolkit==1.1.3 django-object-actions==0.10.0 -django-pipeline==1.5.3 +django-pipeline==1.6.14 django-pyfs==2.0 django-ratelimit-backend==1.1.1 django-ratelimit==2.0.0 @@ -137,7 +138,7 @@ edx-oauth2-provider==1.2.2 edx-opaque-keys[django]==0.4.4 edx-organizations==2.0.2 edx-proctoring-proctortrack==1.0.5 -edx-proctoring==2.0.0 +edx-proctoring==2.0.1 edx-rbac==0.2.0 edx-rest-api-client==1.9.2 edx-search==1.2.2 @@ -174,6 +175,7 @@ httplib2==0.12.3 httpretty==0.9.6 hyperlink==19.0.0 # via twisted idna==2.8 +importlib-metadata==0.9 # via pluggy incremental==17.5.0 # via twisted inflect==2.1.0 ipaddress==1.0.22 @@ -218,14 +220,14 @@ pa11ycrawler==1.7.3 packaging==19.0 # via caniusepython3 parsel==1.5.1 # via scrapy path.py==8.2.1 -pathlib2==2.3.3 # via pytest, pytest-django +pathlib2==2.3.3 # via importlib-metadata, pytest, pytest-django pathtools==0.1.2 paver==1.3.4 pbr==5.2.0 pdfminer.six==20181108 piexif==1.0.2 pillow==6.0.0 -pluggy==0.9.0 # via pytest, tox +pluggy==0.10.0 # via pytest, tox polib==1.1.0 psutil==1.2.1 py2neo==3.1.2 @@ -332,4 +334,5 @@ xblock-utils==1.2.1 xblock==1.2.2 xmltodict==0.12.0 # via moto zendesk==1.1.1 +zipp==0.4.0 # via importlib-metadata zope.interface==4.6.0 # via twisted -- GitLab