diff --git a/.annotation_safe_list.yml b/.annotation_safe_list.yml index b58d56cec8fd..4224462df32c 100644 --- a/.annotation_safe_list.yml +++ b/.annotation_safe_list.yml @@ -99,7 +99,7 @@ django_notify.Settings: django_notify.Subscription: ".. no_pii:": "No PII" -# Via django-openid-auth https://github.com/edx/django-openid-auth +# Via django-openid-auth https://github.com/openedx/django-openid-auth django_openid_auth.Association: ".. no_pii:": "No PII" django_openid_auth.Nonce: @@ -127,7 +127,7 @@ djcelery.TaskState: djcelery.WorkerState: ".. no_pii:": "No PII" -# Via edx-oauth2-provider https://github.com/edx/edx-oauth2-provider +# Via edx-oauth2-provider https://github.com/openedx/edx-oauth2-provider edx_oauth2_provider.TrustedClient: ".. no_pii:": "No PII" @@ -161,7 +161,7 @@ milestones.MilestoneRelationshipType: milestones.UserMilestone: ".. no_pii:": "No PII" -# Via Django OAuth2 Provider https://github.com/edx/django-oauth2-provider +# Via Django OAuth2 Provider https://github.com/openedx/django-oauth2-provider oauth2.Client: ".. no_pii:": "No PII" oauth2.AccessToken: @@ -235,7 +235,7 @@ social_django.UserSocialAuth: ".. pii_types:": external_service ".. pii_retirement:": local_api -# Via Splash https://github.com/edx/django-splash +# Via Splash https://github.com/openedx/django-splash splash.SplashConfig: ".. no_pii:": "No PII" @@ -269,7 +269,7 @@ waffle.Sample: waffle.Switch: ".. no_pii:": "No PII" -# Via django-wiki https://github.com/edx/django-wiki +# Via django-wiki https://github.com/openedx/django-wiki wiki.Article: ".. no_pii:": "No PII" wiki.ArticleForObject: diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 9e64d8df7a95..0c61d1fb74fa 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -11,7 +11,7 @@ Use conventional commits to separate and summarize commits logically: https://open-edx-proposals.readthedocs.io/en/latest/oep-0051-bp-conventional-commits.html Use this template as a guide. Omit sections that don't apply. You may link to information rather than copy it. -More details about the template are at https://github.com/edx/open-edx-proposals/pull/180 +More details about the template are at https://github.com/openedx/open-edx-proposals/pull/180 (link will be updated when that document merges) --> diff --git a/CHANGELOG.rst b/CHANGELOG.rst index fe9015b3c02f..0a25729d5c0b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,4 +5,4 @@ either the `edX Release Notes`_ or the `GitHub commit history`_. .. _edX Release Notes: https://edx.readthedocs.io/projects/open-edx-release-notes/en/latest/ -.. _GitHub commit history: https://github.com/edx/edx-platform/commits/master +.. _GitHub commit history: https://github.com/openedx/edx-platform/commits/master diff --git a/Dockerfile b/Dockerfile index f37d051c0e12..7618fe524b66 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,7 +46,7 @@ RUN apt-get update && \ libxml2-dev \ libxmlsec1-dev \ libxslt1-dev \ - # lynx: Required by https://github.com/edx/edx-platform/blob/b489a4ecb122/openedx/core/lib/html_to_text.py#L16 + # lynx: Required by https://github.com/openedx/edx-platform/blob/b489a4ecb122/openedx/core/lib/html_to_text.py#L16 lynx \ ntp \ pkg-config \ diff --git a/README.rst b/README.rst index 6d060d77ce77..59837fa5643b 100644 --- a/README.rst +++ b/README.rst @@ -40,7 +40,7 @@ a Docker-based development environment. If you want to run your own Open edX server and have the technical skills to do so, `Open edX Installation Options`_ explains your options. -.. _Open edX Developer Stack: https://github.com/edx/devstack +.. _Open edX Developer Stack: https://github.com/openedx/devstack .. _Open edX Installation Options: https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/60227779/Open+edX+Installation+Options License @@ -49,7 +49,7 @@ License The code in this repository is licensed under version 3 of the AGPL unless otherwise noted. Please see the `LICENSE`_ file for details. -.. _LICENSE: https://github.com/edx/edx-platform/blob/master/LICENSE +.. _LICENSE: https://github.com/openedx/edx-platform/blob/master/LICENSE More about Open edX @@ -111,4 +111,4 @@ Please do not report security issues in public. Please email security@edx.org. .. _individual contributor agreement: https://openedx.org/cla -.. _CONTRIBUTING: https://github.com/edx/edx-platform/blob/master/CONTRIBUTING.rst +.. _CONTRIBUTING: https://github.com/openedx/edx-platform/blob/master/CONTRIBUTING.rst diff --git a/cms/djangoapps/contentstore/docs/decisions/0002-restful-studio-apis-for-MFE.rst b/cms/djangoapps/contentstore/docs/decisions/0002-restful-studio-apis-for-MFE.rst index 530ab84f96bf..465ff20d9910 100644 --- a/cms/djangoapps/contentstore/docs/decisions/0002-restful-studio-apis-for-MFE.rst +++ b/cms/djangoapps/contentstore/docs/decisions/0002-restful-studio-apis-for-MFE.rst @@ -20,8 +20,8 @@ JSON-based API for post requests. It also only supports session-based auth. Whil this works well currently, for MFE consumption this is not ideal. The `advanced course settings`_ view is in a similar situation. -.. _old-style functional view: https://github.com/edx/edx-platform/blob/49296005db7397e1a45e2864d93d39cf790a5fce/cms/djangoapps/contentstore/views/tabs.py#L27 -.. _advanced course settings: https://github.com/edx/edx-platform/blob/49296005db7397e1a45e2864d93d39cf790a5fce/cms/djangoapps/contentstore/views/course.py#L1367 +.. _old-style functional view: https://github.com/openedx/edx-platform/blob/49296005db7397e1a45e2864d93d39cf790a5fce/cms/djangoapps/contentstore/views/tabs.py#L27 +.. _advanced course settings: https://github.com/openedx/edx-platform/blob/49296005db7397e1a45e2864d93d39cf790a5fce/cms/djangoapps/contentstore/views/course.py#L1367 To avoid disrupting the existing studio views that might still be needed for the next few releases, we need to maintain these existing views while also enabling MFEs to @@ -61,4 +61,4 @@ not JSON. For the short-term though, these APIs will unblock progress on new MFE UX without without needing to write entirely new APIs. -.. _Course Authoring MFE: https://github.com/edx/frontend-app-course-authoring/ +.. _Course Authoring MFE: https://github.com/openedx/frontend-app-course-authoring/ diff --git a/cms/djangoapps/contentstore/management/commands/backfill_orgs_and_org_courses.py b/cms/djangoapps/contentstore/management/commands/backfill_orgs_and_org_courses.py index 421c5df1703a..6608c190afc0 100644 --- a/cms/djangoapps/contentstore/management/commands/backfill_orgs_and_org_courses.py +++ b/cms/djangoapps/contentstore/management/commands/backfill_orgs_and_org_courses.py @@ -3,7 +3,7 @@ "organizations are enabled everywhere". For full context, see: -https://github.com/edx/edx-organizations/blob/master/docs/decisions/0001-phase-in-db-backed-organizations-to-all.rst +https://github.com/openedx/edx-organizations/blob/master/docs/decisions/0001-phase-in-db-backed-organizations-to-all.rst """ from typing import Dict, List, Set, Tuple diff --git a/cms/djangoapps/contentstore/tests/test_libraries.py b/cms/djangoapps/contentstore/tests/test_libraries.py index 91dc14983b86..780e92bce073 100644 --- a/cms/djangoapps/contentstore/tests/test_libraries.py +++ b/cms/djangoapps/contentstore/tests/test_libraries.py @@ -774,8 +774,8 @@ def test_studio_user_permissions(self): """ Test that user could attach to the problem only libraries that he has access (or which were created by him). This test was created on the basis of bug described in the pull requests on github: - https://github.com/edx/edx-platform/pull/11331 - https://github.com/edx/edx-platform/pull/11611 + https://github.com/openedx/edx-platform/pull/11331 + https://github.com/openedx/edx-platform/pull/11611 """ self._create_library(org='admin_org_1', library='lib_adm_1', display_name='admin_lib_1') self._create_library(org='admin_org_2', library='lib_adm_2', display_name='admin_lib_2') diff --git a/cms/djangoapps/coursegraph/README.rst b/cms/djangoapps/coursegraph/README.rst index 18f0f60bdd33..420eb8326e54 100644 --- a/cms/djangoapps/coursegraph/README.rst +++ b/cms/djangoapps/coursegraph/README.rst @@ -19,7 +19,7 @@ In order for CourseGraph to have queryable, up-to-date data, learning content fr **Please note**: Access to a populated CourseGraph instance confers access to all the learning content in the associated Open edX CMS (Studio). The basic authentication provided by Neo4j may or may not be sufficient for your security needs. Consider taking additional security measures, such as restricting CourseGraph access to only users on a private VPN. -.. _neo4j Ansible playbook: https://github.com/edx/configuration/blob/master/playbooks/neo4j.yml +.. _neo4j Ansible playbook: https://github.com/openedx/configuration/blob/master/playbooks/neo4j.yml .. _CourseGraph plugin for Tutor: https://github.com/openedx/tutor-contrib-coursegraph/ @@ -58,7 +58,7 @@ Other Devstack CourseGraph commands include:: The above commands should be run in your ``devstack`` folder, and they assume that LMS is already properly provisioned. See the `Devstack interface`_ for more details. -.. _Open edX Devstack: https://github.com/edx/devstack/ +.. _Open edX Devstack: https://github.com/openedx/devstack/ .. _Devstack interface: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/devstack_interface.html diff --git a/cms/envs/common.py b/cms/envs/common.py index 010e045034ff..918e38680e5f 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -225,7 +225,7 @@ # Open edX Studio. Set to False if you want to disable the editing of the course short description. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2014-02-13 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/2334 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/2334 'EDITABLE_SHORT_DESCRIPTION': True, # Hide any Personally Identifiable Information from application logs @@ -272,7 +272,7 @@ # Studio can be used as an LTI 1.3 tool by external LTI platforms. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2021-08-17 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/27411 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/27411 'ENABLE_CONTENT_LIBRARIES_LTI_TOOL': False, # Milestones application flag @@ -304,7 +304,7 @@ # the studio home page. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-02-13 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/6965 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/6965 'ALLOW_COURSE_RERUNS': True, # Certificates Web/HTML Views @@ -380,7 +380,7 @@ # page else Mobile Course Available UI Flag will be available on Studio side. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2020-02-14 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/23073 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/23073 'DISABLE_MOBILE_COURSE_AVAILABLE': False, # .. toggle_name: FEATURES['ENABLE_CHANGE_USER_PASSWORD_ADMIN'] @@ -390,7 +390,7 @@ # default because enabling allows a method to bypass password policy. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2020-02-21 - # .. toggle_tickets: 'https://github.com/edx/edx-platform/pull/21616' + # .. toggle_tickets: 'https://github.com/openedx/edx-platform/pull/21616' 'ENABLE_CHANGE_USER_PASSWORD_ADMIN': False, ### ORA Feature Flags ### @@ -466,7 +466,7 @@ # .. toggle_description: When True, a help link is displayed on the main navbar. Set False to hide it. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2021-03-05 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/26106 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/26106 'ENABLE_HELP_LINK': True, # .. toggle_name: FEATURES['ENABLE_V2_CERT_DISPLAY_SETTINGS'] @@ -485,7 +485,7 @@ # .. toggle_default: False # .. toggle_description: Whether to replace ID verification course/certificate requirement # with an in-course Honor Code agreement - # (https://github.com/edx/edx-name-affirmation) + # (https://github.com/openedx/edx-name-affirmation) # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2022-02-15 # .. toggle_target_removal_date: None @@ -500,7 +500,7 @@ # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2022-03-22 # .. toggle_target_removal_date: None - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/28268 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/28268 # .. toggle_warning: For consistency in user-experience, keep the value in sync with the setting of the same name # in the LMS and CMS. 'MARK_LIBRARY_CONTENT_BLOCK_COMPLETE_ON_VIEW': False, @@ -1075,7 +1075,7 @@ #################### Python sandbox ############################################ CODE_JAIL = { - # from https://github.com/edx/codejail/blob/master/codejail/django_integration.py#L24, '' should be same as None + # from https://github.com/openedx/codejail/blob/master/codejail/django_integration.py#L24, '' should be same as None 'python_bin': '/edx/app/edxapp/venvs/edxapp-sandbox/bin/python', # User to run as in the sandbox. 'user': 'sandbox', @@ -1758,7 +1758,7 @@ # Learning Sequence Navigation 'openedx.core.djangoapps.content.learning_sequences.apps.LearningSequencesConfig', - # Database-backed Organizations App (http://github.com/edx/edx-organizations) + # Database-backed Organizations App (http://github.com/openedx/edx-organizations) 'organizations', # User and group management via edx-django-utils @@ -1905,7 +1905,7 @@ # edxval ('edxval', 'openedx.core.djangoapps.content.course_overviews.apps.CourseOverviewsConfig'), - # Enterprise App (http://github.com/edx/edx-enterprise) + # Enterprise App (http://github.com/openedx/edx-enterprise) ('enterprise', None), ('consent', None), ('integrated_channels.integrated_channel', None), @@ -2650,7 +2650,7 @@ # the orgs referenced in Studio content, then leave it enabled. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2020-11-02 -# .. toggle_tickets: https://github.com/edx/edx-organizations/blob/master/docs/decisions/0001-phase-in-db-backed-organizations-to-all.rst +# .. toggle_tickets: https://github.com/openedx/edx-organizations/blob/master/docs/decisions/0001-phase-in-db-backed-organizations-to-all.rst ORGANIZATIONS_AUTOCREATE = True ################# Settings for brand logos. ################# diff --git a/cms/envs/devstack-experimental.yml b/cms/envs/devstack-experimental.yml index 50a916382b24..9a96454a61ea 100644 --- a/cms/envs/devstack-experimental.yml +++ b/cms/envs/devstack-experimental.yml @@ -15,7 +15,7 @@ # a devstack.py at all. # # This is part of the effort to move our dev tools off of Ansible and -# Paver, described here: https://github.com/edx/devstack/pull/866 +# Paver, described here: https://github.com/openedx/devstack/pull/866 # TODO: If the effort described above is abandoned, then this file should # probably be deleted. ACTIVATION_EMAIL_SUPPORT_LINK: '' diff --git a/common/djangoapps/database_fixups/migrations/0001_initial.py b/common/djangoapps/database_fixups/migrations/0001_initial.py index f1843bca4d7c..cb15e28f54ee 100644 --- a/common/djangoapps/database_fixups/migrations/0001_initial.py +++ b/common/djangoapps/database_fixups/migrations/0001_initial.py @@ -1,7 +1,7 @@ from django.db import migrations, models # We used to have a uniqueness constraint on auth_user.email: -# https://github.com/edx/edx-platform/commit/c52727b0e0fb241d8211900975d3b69fe5a1bd57 +# https://github.com/openedx/edx-platform/commit/c52727b0e0fb241d8211900975d3b69fe5a1bd57 # # That constraint was lost in the upgrade from Django 1.4->1.8. This migration # adds it back. But because it might already exist in databases created diff --git a/common/djangoapps/student/admin.py b/common/djangoapps/student/admin.py index 72a8be52ce6a..6909706f8200 100644 --- a/common/djangoapps/student/admin.py +++ b/common/djangoapps/student/admin.py @@ -58,7 +58,7 @@ # makes DB queries that could cause site outages for a large enough Open edX installation. # .. toggle_use_cases: opt_in, open_edx # .. toggle_creation_date: 2018-08-01 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/18638 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/18638 COURSE_ENROLLMENT_ADMIN_SWITCH = WaffleSwitch('student.courseenrollment_admin', __name__) diff --git a/common/djangoapps/util/milestones_helpers.py b/common/djangoapps/util/milestones_helpers.py index 1c8b95a77e30..75bcc29b0714 100644 --- a/common/djangoapps/util/milestones_helpers.py +++ b/common/djangoapps/util/milestones_helpers.py @@ -27,7 +27,7 @@ # .. toggle_implementation: SettingDictToggle # .. toggle_default: False # .. toggle_description: Enable the milestones application, which manages significant Course and/or Student events in -# the Open edX platform. (see https://github.com/edx/edx-milestones) Note that this feature is required to enable +# the Open edX platform. (see https://github.com/openedx/edx-milestones) Note that this feature is required to enable # course pre-requisites. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2014-11-21 diff --git a/common/static/common/js/jasmine.common.conf.js b/common/static/common/js/jasmine.common.conf.js index 9688e1de8677..bf3bfbfa5b4a 100644 --- a/common/static/common/js/jasmine.common.conf.js +++ b/common/static/common/js/jasmine.common.conf.js @@ -4,7 +4,7 @@ // By default, fixtures are loaded from spec/javascripts/fixtures but in karma everything gets served from /base jasmine.getFixtures().fixturesPath = '/base/'; -// https://github.com/edx/js-test-tool/blob/master/js_test_tool/templates/jasmine_test_runner.html#L10 +// https://github.com/openedx/js-test-tool/blob/master/js_test_tool/templates/jasmine_test_runner.html#L10 // Stub out modal dialog alerts, which will prevent // us from accessing the test results in the DOM window.confirm = function() { return true; }; diff --git a/db_keyword_overrides.yml b/db_keyword_overrides.yml index 76d33a1e84ff..f2dda1e59337 100644 --- a/db_keyword_overrides.yml +++ b/db_keyword_overrides.yml @@ -1,6 +1,6 @@ # This file is used by the 'check_reserved_keywords' management command to allow specific field names to be overridden # when checking for conflicts with lists of restricted keywords used in various database/data warehouse tools. -# For more information, see: https://github.com/edx/edx-django-release-util/release_util/management/commands/check_reserved_keywords.py +# For more information, see: https://github.com/openedx/edx-django-release-util/release_util/management/commands/check_reserved_keywords.py # # overrides should be added in the following format: # - ModelName.field_name diff --git a/docs/decisions/0001-courses-in-lms.rst b/docs/decisions/0001-courses-in-lms.rst index 8ff75242b06f..f4f931aaa092 100644 --- a/docs/decisions/0001-courses-in-lms.rst +++ b/docs/decisions/0001-courses-in-lms.rst @@ -20,7 +20,7 @@ In the LMS, the following technologies can be used to access course content and * `Modulestore`_ - Contains all course related data, including course metadata, course blocks, and student module data. `Course Overviews`_ and `Course Blocks`_ are performant read-optimized versions of subsets of data in the Modulestore. .. _edX DDD Ubiquitous Language: https://openedx.atlassian.net/wiki/spaces/AC/pages/188032048/edX+DDD+Ubiquitous+Language -.. _Course Overviews: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/content/course_overviews/__init__.py +.. _Course Overviews: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/content/course_overviews/__init__.py .. _Course Blocks: https://openedx.atlassian.net/wiki/display/EDUCATOR/Course+Blocks .. _Modulestore: https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/modulestores/index.html @@ -54,16 +54,16 @@ If you need to combine user data with `Course Blocks`_ data, load the users's da **Example**: See `example loading the student module data`_ in the course outline feature. -.. _example use of course overviews: https://github.com/edx/edx-platform/blob/f81c21902eb0e8d026612b052557142ce1527153/openedx/features/course_experience/views/course_outline.py#L26 -.. _example of using course blocks: https://github.com/edx/edx-platform/blob/f81c21902eb0e8d026612b052557142ce1527153/openedx/features/course_experience/utils.py#L65-L72 -.. _example loading the student module data: https://github.com/edx/edx-platform/blob/f81c21902eb0e8d026612b052557142ce1527153/openedx/features/course_experience/utils.py#L49 +.. _example use of course overviews: https://github.com/openedx/edx-platform/blob/f81c21902eb0e8d026612b052557142ce1527153/openedx/features/course_experience/views/course_outline.py#L26 +.. _example of using course blocks: https://github.com/openedx/edx-platform/blob/f81c21902eb0e8d026612b052557142ce1527153/openedx/features/course_experience/utils.py#L65-L72 +.. _example loading the student module data: https://github.com/openedx/edx-platform/blob/f81c21902eb0e8d026612b052557142ce1527153/openedx/features/course_experience/utils.py#L49 Tech Debt ========= At this time, `LMS courseware rendering`_ still uses the `Modulestore`_ instead of `Course Blocks`_. This is technical debt that needs to be addressed, so we can have a fuller separation between the storage systems. -.. _LMS courseware rendering: https://github.com/edx/edx-platform/blob/67008cec68806b77631e8c40ede98ace8a83ce4f/lms/djangoapps/courseware/module_render.py#L291 +.. _LMS courseware rendering: https://github.com/openedx/edx-platform/blob/67008cec68806b77631e8c40ede98ace8a83ce4f/lms/djangoapps/courseware/module_render.py#L291 Consequences ============ diff --git a/docs/decisions/0002-inter-app-apis.rst b/docs/decisions/0002-inter-app-apis.rst index 5164c35ac732..434ce17b3c2f 100644 --- a/docs/decisions/0002-inter-app-apis.rst +++ b/docs/decisions/0002-inter-app-apis.rst @@ -40,7 +40,7 @@ Exmaples As a reference example, see the Python APIs exposed by the grades app in the `grades/api.py module`_. -.. _`grades/api.py module`: https://github.com/edx/edx-platform/blob/master/lms/djangoapps/grades/api.py +.. _`grades/api.py module`: https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/grades/api.py Consequences diff --git a/docs/decisions/0003-reduce-bokchoy-testing.rst b/docs/decisions/0003-reduce-bokchoy-testing.rst index afb54e4d12f5..838cabfcf299 100644 --- a/docs/decisions/0003-reduce-bokchoy-testing.rst +++ b/docs/decisions/0003-reduce-bokchoy-testing.rst @@ -61,7 +61,7 @@ Experiment Results Bokchoy tests were disabled for PRs for 3 weeks. In that time only one change went out that was not caught by other test suites. The change in question did not impact edx.org and was specific how configuration is read into the system. The bokchoy tests did not detect any other failures that were not caught by other tests. The `PR` where we monitored Bokchoy daily has more specific details. -.. _PR: https://github.com/edx/edx-platform/pull/23682 +.. _PR: https://github.com/openedx/edx-platform/pull/23682 Decision ======== diff --git a/docs/decisions/0004-managing-django-settings.rst b/docs/decisions/0004-managing-django-settings.rst index b7b3c2f98d16..0c36dad3f533 100644 --- a/docs/decisions/0004-managing-django-settings.rst +++ b/docs/decisions/0004-managing-django-settings.rst @@ -47,7 +47,7 @@ more explicit, we don't want to take on that work now as it may increase complexity. -.. _OEP-45: https://github.com/edx/open-edx-proposals/pull/143/files +.. _OEP-45: https://github.com/openedx/open-edx-proposals/pull/143/files Consequences ============ diff --git a/docs/decisions/0009_simplify_ratelimiting.rst b/docs/decisions/0009_simplify_ratelimiting.rst index c91f5956e338..ec291aa02fe6 100644 --- a/docs/decisions/0009_simplify_ratelimiting.rst +++ b/docs/decisions/0009_simplify_ratelimiting.rst @@ -110,5 +110,5 @@ how and when we should be using different libraries. .. _django-ratelimit: https://django-ratelimit.readthedocs.io/en/stable/usage.html#usage-chapter .. _django-ratelimit-backend: https://django-ratelimit-backend.readthedocs.io/en/latest/ .. _djangorestframework rate limiting: https://www.django-rest-framework.org/api-guide/throttling/ -.. _MAX_FAILED_LOGIN_ATTEMPTS: https://github.com/edx/edx-platform/blob/cd6064692681ab99912e3da3721cd857a0b313e9/common/djangoapps/student/models.py#L980 +.. _MAX_FAILED_LOGIN_ATTEMPTS: https://github.com/openedx/edx-platform/blob/cd6064692681ab99912e3da3721cd857a0b313e9/common/djangoapps/student/models.py#L980 .. _cloudflare rate limiting: https://www.cloudflare.com/rate-limiting/ diff --git a/docs/guides/extension_points.rst b/docs/guides/extension_points.rst index 8c2d9c86bdd3..c5ba0d42c050 100644 --- a/docs/guides/extension_points.rst +++ b/docs/guides/extension_points.rst @@ -91,7 +91,7 @@ Most python plugins are enabled using one of two methods: 2. A Django setting: Some plugins require modification of Django settings, which is typically done by editing ``/edx/etc/lms.yml`` (in Production) or ``edx-platform/lms/envs/private.py`` (on Devstack). .. |edx_django_utils.plugins| replace:: ``edx_django_utils.plugins`` -.. _edx_django_utils.plugins: https://github.com/edx/edx-django-utils/blob/master/edx_django_utils/plugins +.. _edx_django_utils.plugins: https://github.com/openedx/edx-django-utils/blob/master/edx_django_utils/plugins .. _stevedore: https://pypi.org/project/stevedore/ Here are the different integration points that python plugins can use: @@ -145,21 +145,21 @@ Here are the different integration points that python plugins can use: - Filters are also part of Hooks Extension Framework for open extension of edx-platform. Filters are a flexible way for plugin developers to modify learner or author application flows. They are defined by a `separate filters library`_ that developers can include in their requirements to develop and test the code without creating a dependency on this large repo. For more information see the `hooks guide`_. .. _Application: https://docs.djangoproject.com/en/3.0/ref/applications/ -.. _Django app plugin documentation: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/plugins/README.rst -.. _Plugin Contexts: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/plugins/docs/decisions/0003-plugin-contexts.rst +.. _Django app plugin documentation: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/plugins/README.rst +.. _Plugin Contexts: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/plugins/docs/decisions/0003-plugin-contexts.rst .. _course tabs documentation: https://openedx.atlassian.net/wiki/spaces/AC/pages/30965919/Adding+a+new+course+tab .. |course_tools.py| replace:: ``course_tools.py`` -.. _course_tools.py: https://github.com/edx/edx-platform/blob/master/openedx/features/course_experience/course_tools.py +.. _course_tools.py: https://github.com/openedx/edx-platform/blob/master/openedx/features/course_experience/course_tools.py .. _Adding Custom Fields to the Registration Page: https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/latest/configuration/customize_registration_page.html .. |learning_context.py| replace:: ``learning_context.py`` -.. _learning_context.py: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/xblock/learning_context/learning_context.py +.. _learning_context.py: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/xblock/learning_context/learning_context.py .. |UserPartition docstring| replace:: ``UserPartition`` docstring -.. _UserPartition docstring: https://github.com/edx/edx-platform/blob/f8cc58618a39c9f7b8e9e1001eb2d7a10395797e/common/lib/xmodule/xmodule/partitions/partitions.py#L105-L120 +.. _UserPartition docstring: https://github.com/openedx/edx-platform/blob/f8cc58618a39c9f7b8e9e1001eb2d7a10395797e/common/lib/xmodule/xmodule/partitions/partitions.py#L105-L120 .. |pluggable_override docstring| replace:: ``pluggable_override`` docstring -.. _pluggable_override docstring: https://github.com/edx/edx-django-utils/blob/master/edx_django_utils/plugins/pluggable_override.py +.. _pluggable_override docstring: https://github.com/openedx/edx-django-utils/blob/master/edx_django_utils/plugins/pluggable_override.py .. _separate events library: https://github.com/eduNEXT/openedx-events/ .. _separate filters library: https://github.com/eduNEXT/openedx-filters/ -.. _hooks guide: https://github.com/edx/edx-platform/blob/master/docs/guides/hooks/index.rst +.. _hooks guide: https://github.com/openedx/edx-platform/blob/master/docs/guides/hooks/index.rst Platform Look & Feel ==================== @@ -186,7 +186,7 @@ Methods for theming MFEs are still being developed. It is likely to involve: In addition, Open edX operators will be able to replace entire MFEs with completely custom MFE implementations that use the same backend APIs. .. |example edx theme| replace:: example ``edx`` theme -.. _example edx theme: https://github.com/edx/paragon/tree/master/scss/edx +.. _example edx theme: https://github.com/openedx/paragon/tree/master/scss/edx .. _Changing Themes for an Open edX Site: https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/latest/configuration/changing_appearance/theming/ .. _Overriding Brand Specific Elements: https://edx.readthedocs.io/projects/edx-developer-docs/en/latest/developers_guide/micro_frontends_in_open_edx.html#overriding-brand-specific-elements @@ -195,4 +195,4 @@ Custom frontends *Status: Trial, Limited* -If you need a *very* custom look and feel for your users, and you have the time and resources required for a huge project, you can consider creating a custom frontend for Open edX, which is a completely separate application that runs on its own domain and integrates with Open edX using REST APIs. The edX Mobile App can be thought of as an example of a separate frontend that connects to Open edX using only REST APIs. Another example is `LabXchange `_. If you develop your custom frontend using Django, you may wish to use the `auth-backends `_ django plugin for user authentication. +If you need a *very* custom look and feel for your users, and you have the time and resources required for a huge project, you can consider creating a custom frontend for Open edX, which is a completely separate application that runs on its own domain and integrates with Open edX using REST APIs. The edX Mobile App can be thought of as an example of a separate frontend that connects to Open edX using only REST APIs. Another example is `LabXchange `_. If you develop your custom frontend using Django, you may wish to use the `auth-backends `_ django plugin for user authentication. diff --git a/docs/guides/extensions/tinymce_plugins.rst b/docs/guides/extensions/tinymce_plugins.rst index f73ea5452f72..76ec5bd5f07a 100644 --- a/docs/guides/extensions/tinymce_plugins.rst +++ b/docs/guides/extensions/tinymce_plugins.rst @@ -62,4 +62,4 @@ Here's an example: - Normal - Secondary -.. _guide on installing the plugins through the edX configuration: https://github.com/edx/configuration/blob/master/playbooks/roles/tinymce_plugins/README.rst +.. _guide on installing the plugins through the edX configuration: https://github.com/openedx/configuration/blob/master/playbooks/roles/tinymce_plugins/README.rst diff --git a/docs/guides/hooks/events.rst b/docs/guides/hooks/events.rst index 4c0725d1756f..20c65fce77d5 100644 --- a/docs/guides/hooks/events.rst +++ b/docs/guides/hooks/events.rst @@ -140,39 +140,39 @@ well as the trigger location in this same repository. * - `STUDENT_REGISTRATION_COMPLETED `_ - org.openedx.learning.student.registration.completed.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `SESSION_LOGIN_COMPLETED `_ - org.openedx.learning.auth.session.login.completed.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `COURSE_ENROLLMENT_CREATED `_ - org.openedx.learning.course.enrollment.created.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `COURSE_ENROLLMENT_CHANGED `_ - org.openedx.learning.course.enrollment.changed.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `COURSE_UNENROLLMENT_COMPLETED `_ - org.openedx.learning.course.unenrollment.completed.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `CERTIFICATE_CREATED `_ - org.openedx.learning.certificate.created.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `CERTIFICATE_CHANGED `_ - org.openedx.learning.certificate.changed.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `CERTIFICATE_REVOKED `_ - org.openedx.learning.certificate.revoked.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `COHORT_MEMBERSHIP_CHANGED `_ - org.openedx.learning.cohort_membership.changed.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `COURSE_DISCUSSIONS_CHANGED `_ - org.openedx.learning.discussions.configuration.changed.v1 diff --git a/docs/guides/hooks/filters.rst b/docs/guides/hooks/filters.rst index bea799908193..9e8496aead70 100644 --- a/docs/guides/hooks/filters.rst +++ b/docs/guides/hooks/filters.rst @@ -148,11 +148,11 @@ well as the trigger location in this same repository. * - `StudentLoginRequested `_ - org.openedx.learning.student.login.requested.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `CourseEnrollmentStarted `_ - org.openedx.learning.course.enrollment.started.v1 - - `2022-06-14 `_ + - `2022-06-14 `_ * - `CourseUnenrollmentStarted `_ - org.openedx.learning.course.unenrollment.started.v1 diff --git a/docs/guides/index.rst b/docs/guides/index.rst index c2b2215703f8..0946a37c3848 100644 --- a/docs/guides/index.rst +++ b/docs/guides/index.rst @@ -16,7 +16,7 @@ locations. edX ReadTheDocs`_. The source for these guides can be found in the `edx-documentation`_ repository. -.. _edx-platform docs directory: https://github.com/edx/edx-platform/tree/master/docs +.. _edx-platform docs directory: https://github.com/openedx/edx-platform/tree/master/docs .. _Developer Documentation Index: https://openedx.atlassian.net/wiki/display/OpenDev/Developer+Documentation .. _Open edX Development space: https://openedx.atlassian.net/wiki/spaces/OpenDev/overview .. _Open edX ReadTheDocs: http://docs.edx.org/ @@ -44,4 +44,4 @@ Change History * November 3, 2014: The documentation for several sub-projects were moved into `edx-documentation`_. -.. _edx-documentation: https://github.com/edx/edx-documentation +.. _edx-documentation: https://github.com/openedx/edx-documentation diff --git a/docs/guides/testing/testing.rst b/docs/guides/testing/testing.rst index bd232da23131..6ea9b95417e2 100644 --- a/docs/guides/testing/testing.rst +++ b/docs/guides/testing/testing.rst @@ -223,7 +223,7 @@ run one of these commands:: paver test_system -s cms -t common/djangoapps/terrain/stubs/tests/test_youtube_stub.py pytest common/djangoapps/terrain/stubs/tests/test_youtube_stub.py -.. _YouTube stub server: https://github.com/edx/edx-platform/blob/master/common/djangoapps/terrain/stubs/tests/test_youtube_stub.py +.. _YouTube stub server: https://github.com/openedx/edx-platform/blob/master/common/djangoapps/terrain/stubs/tests/test_youtube_stub.py Debugging Unittest Flakiness diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 84929daead3b..aab62265b592 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -5517,7 +5517,7 @@ paths: that a user has for course-runs within a given program. Fields included are the title, upcoming due dates, etc. This API endpoint is intended for use with the - [Program Learner Portal MFE](https://github.com/edx/frontend-app-learner-portal-programs). + [Program Learner Portal MFE](https://github.com/openedx/frontend-app-learner-portal-programs). It is important to note that the set of enrollments that this endpoint returns is different than a user's set of *program-course-run enrollments*. diff --git a/docs/technical/conf.py b/docs/technical/conf.py index b7096fe89d0d..c9186dbdf46e 100644 --- a/docs/technical/conf.py +++ b/docs/technical/conf.py @@ -19,7 +19,7 @@ templates_path = ["_templates"] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] -edxplatform_repo_url = "https://github.com/edx/edx-platform" +edxplatform_repo_url = "https://github.com/openedx/edx-platform" edxplatform_source_path = os.path.abspath( os.path.join(os.path.dirname(__file__), "..", "..") ) diff --git a/lms/djangoapps/certificates/README.rst b/lms/djangoapps/certificates/README.rst index 1b41e4d0b8eb..cd6d2b9e5077 100644 --- a/lms/djangoapps/certificates/README.rst +++ b/lms/djangoapps/certificates/README.rst @@ -15,7 +15,7 @@ Certificates related functionality is scattered across a number of places and sh Ideally, we want to extract these into the `credentials service`_, which would be ultimately responsible for Course-Run and Program certificates (and possibly other credentials). Right now, the `credentials service`_ only manages Program certificates. -.. _credentials service: https://github.com/edx/credentials +.. _credentials service: https://github.com/openedx/credentials Glossary ======== diff --git a/lms/djangoapps/certificates/docs/decisions/003-web-certs.rst b/lms/djangoapps/certificates/docs/decisions/003-web-certs.rst index 11e1ac7b5af4..191a8d1d8895 100644 --- a/lms/djangoapps/certificates/docs/decisions/003-web-certs.rst +++ b/lms/djangoapps/certificates/docs/decisions/003-web-certs.rst @@ -118,8 +118,8 @@ Related DEPR (edX deprecation process) tickets: * `Remove PDF view code`_ .. _Enable Course Certificates: https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/latest/configuration/enable_certificates.html -.. _Deprecate web certificate setting: https://github.com/edx/edx-platform/pull/17285 -.. _Disable PDF certificate generation: https://github.com/edx/edx-platform/pull/19833 +.. _Deprecate web certificate setting: https://github.com/openedx/edx-platform/pull/17285 +.. _Disable PDF certificate generation: https://github.com/openedx/edx-platform/pull/19833 .. _Set Up Certificates in Studio: https://edx.readthedocs.io/projects/open-edx-building-and-running-a-course/en/latest/set_up_course/studio_add_course_information/studio_creating_certificates.html .. _Remove PDF generation code: https://openedx.atlassian.net/browse/DEPR-155 .. _Remove PDF view code: https://openedx.atlassian.net/browse/DEPR-157 diff --git a/lms/djangoapps/certificates/docs/decisions/006-cert-date-override.rst b/lms/djangoapps/certificates/docs/decisions/006-cert-date-override.rst index 3f1099d530c2..d02f3f8e2fca 100644 --- a/lms/djangoapps/certificates/docs/decisions/006-cert-date-override.rst +++ b/lms/djangoapps/certificates/docs/decisions/006-cert-date-override.rst @@ -64,4 +64,4 @@ The date override data (if present) will be included in the post to `Credentials`_ whenever this signal is called. Credentials will save and use this data for the Program Record page. -.. _Credentials: https://github.com/edx/credentials +.. _Credentials: https://github.com/openedx/credentials diff --git a/lms/djangoapps/commerce/README.rst b/lms/djangoapps/commerce/README.rst index fdc0f90cb19c..7473dccbab94 100644 --- a/lms/djangoapps/commerce/README.rst +++ b/lms/djangoapps/commerce/README.rst @@ -8,7 +8,7 @@ Direction: Deprecate ==================== This app is replaced by functionality in the `ecommerce service`_. New functionality should not be added here. Effort is needed to determine who the existing clients are so they can be updated and this app can be removed. This app is in a similar situation to the ```lms/djangoapps/shoppingcart``` app. -.. _ecommerce service: https://github.com/edx/ecommerce +.. _ecommerce service: https://github.com/openedx/ecommerce Glossary ======== diff --git a/lms/djangoapps/course_api/blocks/api.py b/lms/djangoapps/course_api/blocks/api.py index 95e6c73e9814..af82da22ded3 100644 --- a/lms/djangoapps/course_api/blocks/api.py +++ b/lms/djangoapps/course_api/blocks/api.py @@ -93,7 +93,7 @@ def get_blocks( else: transformers += [course_blocks_api.visibility.VisibilityTransformer()] - # Note: A change to the BlockCompletionTransformer (https://github.com/edx/edx-platform/pull/27622/) + # Note: A change to the BlockCompletionTransformer (https://github.com/openedx/edx-platform/pull/27622/) # will be introducing a bug if hide_access_denials is True. I'm accepting this risk because in # the AccessDeniedMessageFilterTransformer, there is note about deleting it and I believe it is # technically deprecated functionality. The only use case where hide_access_denials is True diff --git a/lms/djangoapps/courseware/README.rst b/lms/djangoapps/courseware/README.rst index 7da6ba97fe91..1bcba851695e 100644 --- a/lms/djangoapps/courseware/README.rst +++ b/lms/djangoapps/courseware/README.rst @@ -10,4 +10,4 @@ Glossary More Documentation ================== `Architectural Decision Records -`_ +`_ diff --git a/lms/djangoapps/courseware/docs/decisions/0002-permissions-via-django-rules.rst b/lms/djangoapps/courseware/docs/decisions/0002-permissions-via-django-rules.rst index cd58c5a542b3..765a6c6e0778 100644 --- a/lms/djangoapps/courseware/docs/decisions/0002-permissions-via-django-rules.rst +++ b/lms/djangoapps/courseware/docs/decisions/0002-permissions-via-django-rules.rst @@ -23,8 +23,8 @@ new ``CourseModes`` with similar but not identical permissions requires numerous distributed code changes. .. _OEP-9: https://open-edx-proposals.readthedocs.io/en/latest/oep-0009-bp-permissions.html -.. _CourseMode: https://github.com/edx/edx-platform/blob/master/common/djangoapps/course_modes/models.py#L37 -.. _edx-platform: https://github.com/edx/edx-platform +.. _CourseMode: https://github.com/openedx/edx-platform/blob/master/common/djangoapps/course_modes/models.py#L37 +.. _edx-platform: https://github.com/openedx/edx-platform ~~~~~~~~ Decision @@ -87,7 +87,7 @@ Finally, we need to make sure that ``__invert__`` doesn't lose error messages (https://github.com/dfunckt/django-rules/blob/master/rules/predicates.py#L173) .. _django-rules: https://github.com/dfunckt/django-rules -.. _AccessResponse: https://github.com/edx/edx-platform/blob/master/lms/djangoapps/courseware/access_response.py#L10 +.. _AccessResponse: https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/courseware/access_response.py#L10 .. _Predicate: https://github.com/dfunckt/django-rules/blob/master/rules/predicates.py#L47 Convert built-in predicates to non-boolean predicates in edx-platform @@ -122,7 +122,7 @@ and can be parallelized. However, at present, there are ~150 calls to `has_access`_ in edx-platform, so this is not an insignificant amount of work. -.. _has_access: https://github.com/edx/edx-platform/blob/master/lms/djangoapps/courseware/access.py#L103 +.. _has_access: https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/courseware/access.py#L103 .. _user.has_perm: https://docs.djangoproject.com/en/2.1/ref/contrib/auth/#django.contrib.auth.models.User.has_perm Refactor contents of ``has_access`` @@ -169,7 +169,7 @@ It will also allow those conditions (predicates) to be written in a location that is central to the app they are responsible for, rather than requiring that they be added to `access.py`_. -.. _access.py: https://github.com/edx/edx-platform/blob/master/lms/djangoapps/courseware/access.py +.. _access.py: https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/courseware/access.py When the conversion of `CourseMode`_ membership checks has been completed, it will be easier to add new `CourseMode`_ types with similar permissions diff --git a/lms/djangoapps/courseware/docs/decisions/0003-permissions-via-bridgekeeper.rst b/lms/djangoapps/courseware/docs/decisions/0003-permissions-via-bridgekeeper.rst index 38739775d208..beafd7dd877a 100644 --- a/lms/djangoapps/courseware/docs/decisions/0003-permissions-via-bridgekeeper.rst +++ b/lms/djangoapps/courseware/docs/decisions/0003-permissions-via-bridgekeeper.rst @@ -33,8 +33,8 @@ to the plan in `0002`_. We will update all uses of `has_access`_, and all `CourseMode`_ membership checks, to use `bridgekeeper`_ and named permissions. -.. _`0002. Use django-rules for Permissions and Tracks`: https://github.com/edx/edx-platform/blob/master/lms/djangoapps/courseware/docs/decisions/0002-permissions-via-django-rules.rst -.. _`0002`: https://github.com/edx/edx-platform/blob/master/lms/djangoapps/courseware/docs/decisions/0002-permissions-via-django-rules.rst +.. _`0002. Use django-rules for Permissions and Tracks`: https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/courseware/docs/decisions/0002-permissions-via-django-rules.rst +.. _`0002`: https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/courseware/docs/decisions/0002-permissions-via-django-rules.rst Plan of Action ============== @@ -88,7 +88,7 @@ and can be parallelized. However, at present, there are ~150 calls to `has_access`_ in edx-platform, so this is not an insignificant amount of work. -.. _has_access: https://github.com/edx/edx-platform/blob/master/lms/djangoapps/courseware/access.py#L103 +.. _has_access: https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/courseware/access.py#L103 .. _user.has_perm: https://docs.djangoproject.com/en/2.1/ref/contrib/auth/#django.contrib.auth.models.User.has_perm Refactor contents of ``has_access`` @@ -135,7 +135,7 @@ It will also allow those conditions (predicates) to be written in a location that is central to the app they are responsible for, rather than requiring that they be added to `access.py`_. -.. _access.py: https://github.com/edx/edx-platform/blob/master/lms/djangoapps/courseware/access.py +.. _access.py: https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/courseware/access.py When the conversion of `CourseMode`_ membership checks has been completed, it will be easier to add new `CourseMode`_ types with similar permissions diff --git a/lms/djangoapps/courseware/module_render.py b/lms/djangoapps/courseware/module_render.py index 19b317699175..3c0042d1d9e6 100644 --- a/lms/djangoapps/courseware/module_render.py +++ b/lms/djangoapps/courseware/module_render.py @@ -911,7 +911,7 @@ def handle_xblock_callback(request, course_id, usage_id, handler, suffix=None): # We are reusing DRF logic to provide support for JWT and Oauth2. We abandoned the idea of using DRF view here # to avoid introducing backwards-incompatible changes. - # You can see https://github.com/edx/XBlock/pull/383 for more details. + # You can see https://github.com/openedx/XBlock/pull/383 for more details. else: authentication_classes = (JwtAuthentication, BearerAuthenticationAllowInactiveUser) authenticators = [auth() for auth in authentication_classes] diff --git a/lms/djangoapps/discussion/settings/common.py b/lms/djangoapps/discussion/settings/common.py index 95010e7d4523..732bc24fd54d 100644 --- a/lms/djangoapps/discussion/settings/common.py +++ b/lms/djangoapps/discussion/settings/common.py @@ -9,7 +9,7 @@ def plugin_settings(settings): # .. toggle_description: If True, it adds an option to show/hide the discussions tab. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-06-15 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/8474 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/8474 settings.FEATURES['ALLOW_HIDING_DISCUSSION_TAB'] = False settings.DISCUSSION_SETTINGS = { 'MAX_COMMENT_DEPTH': 2, diff --git a/lms/djangoapps/edxnotes/README.rst b/lms/djangoapps/edxnotes/README.rst index 12f890096b57..8ba97c1877bc 100644 --- a/lms/djangoapps/edxnotes/README.rst +++ b/lms/djangoapps/edxnotes/README.rst @@ -10,7 +10,7 @@ Notes needs to insert a new tab into the LMS courseware, as well as wrap/decorat This app is also currently proxying some requests through the LMS instead of hitting its service endpoint directly. It should instead always let the user's browser hit the edx-notes-api service directly. -The edxnotes app also has an endpoint to get JWT tokens that the edx-notes-api will accept. This should be removed, and the edx-notes-api service converted to use the OAuth2 + JWT Cookie approach detailed in the `Transport JWT in HTTP Cookies `_ decision record for ``oauth_dispatch``. +The edxnotes app also has an endpoint to get JWT tokens that the edx-notes-api will accept. This should be removed, and the edx-notes-api service converted to use the OAuth2 + JWT Cookie approach detailed in the `Transport JWT in HTTP Cookies `_ decision record for ``oauth_dispatch``. Glossary ======== diff --git a/lms/djangoapps/grades/README.rst b/lms/djangoapps/grades/README.rst index 094c60c6c282..10fa87107d10 100644 --- a/lms/djangoapps/grades/README.rst +++ b/lms/djangoapps/grades/README.rst @@ -20,4 +20,4 @@ More Documentation `Architecture `_ -`Decisions `_ +`Decisions `_ diff --git a/lms/djangoapps/grades/config/waffle.py b/lms/djangoapps/grades/config/waffle.py index 5873766d1194..a9983641239d 100644 --- a/lms/djangoapps/grades/config/waffle.py +++ b/lms/djangoapps/grades/config/waffle.py @@ -20,7 +20,7 @@ # .. toggle_description: When enabled, a change in grading policy will not trigger re-grading. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2017-08-03 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/15733 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/15733 DISABLE_REGRADE_ON_POLICY_CHANGE = WaffleSwitch(f'{WAFFLE_NAMESPACE}.disable_regrade_on_policy_change', __name__) # Course Flags @@ -32,7 +32,7 @@ # in edx-platform, but only in edx-proctoring. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2019-05-29 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/20719 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/20719 # TODO: After removing this flag, add a migration to remove waffle flag in a follow-up deployment. REJECTED_EXAM_OVERRIDES_GRADE = CourseWaffleFlag( f'{WAFFLE_NAMESPACE}.rejected_exam_overrides_grade', __name__, LOG_PREFIX @@ -44,7 +44,7 @@ # is only valid for courses which actually have an end date. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2018-10-01 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/19026 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/19026 # TODO: After removing this flag, add a migration to remove waffle flag in a follow-up deployment. ENFORCE_FREEZE_GRADE_AFTER_COURSE_END = CourseWaffleFlag( f'{WAFFLE_NAMESPACE}.enforce_freeze_grade_after_course_end', __name__, LOG_PREFIX @@ -57,7 +57,7 @@ # the writable gradebook is added to the instructor dashboard. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2018-10-03 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/19054 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/19054 # .. toggle_warning: Enabling this requires that the `WRITABLE_GRADEBOOK_URL` setting be properly defined. # TODO: After removing this flag, add a migration to remove waffle flag in a follow-up deployment. WRITABLE_GRADEBOOK = CourseWaffleFlag(f'{WAFFLE_NAMESPACE}.writable_gradebook', __name__, LOG_PREFIX) @@ -69,7 +69,7 @@ # as we understand, this feature is now unused and obsolete. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2019-08-20 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/21389 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/21389 BULK_MANAGEMENT = CourseWaffleFlag(f'{WAFFLE_NAMESPACE}.bulk_management', __name__, LOG_PREFIX) diff --git a/lms/djangoapps/grades/docs/background.rst b/lms/djangoapps/grades/docs/background.rst index a35509464059..ebe76ca8c894 100644 --- a/lms/djangoapps/grades/docs/background.rst +++ b/lms/djangoapps/grades/docs/background.rst @@ -25,7 +25,7 @@ Terminology +-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Assignment-Type Grade | Aggregated grade for an assignment category, like Homework or Final. Grading can be configured to drop the lowest n assignments when calculating an assignment-type grade - otherwise all assignments count equally (i.e. there is no weighting of assignments within an assignment category). The course grading policy specifies the minimum number of assignments expected for each category in advance. | +-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Overall Percentage | Float value between 0 and 1 that marks the student's percentage for the course. This is calculated by weighing each assignment-type according to the rules specified in CourseDescriptor.grader. The grader is an `extensible interface `_, but the only rules currently used in practice are simple weight by assignment-type (e.g. 30% Final, 40% HW, etc.). The grader will return the actual percentage as a value between 0 and 1. The overall grade calculation process will then take this number and do a small bit of rounding up: round(actual_percent * 100 + 0.05) / 100. This is so that someone who has been scoring an 89.5% and has been seeing their average rounded to 90% on the progress page is not suddenly surprised at the end of the course. The denominator for this is based on the total possible at the end of the course, and does not adjust for unreleased assignments – getting a perfect score on your first homework may only give you a 4% overall percentage. | +| Overall Percentage | Float value between 0 and 1 that marks the student's percentage for the course. This is calculated by weighing each assignment-type according to the rules specified in CourseDescriptor.grader. The grader is an `extensible interface `_, but the only rules currently used in practice are simple weight by assignment-type (e.g. 30% Final, 40% HW, etc.). The grader will return the actual percentage as a value between 0 and 1. The overall grade calculation process will then take this number and do a small bit of rounding up: round(actual_percent * 100 + 0.05) / 100. This is so that someone who has been scoring an 89.5% and has been seeing their average rounded to 90% on the progress page is not suddenly surprised at the end of the course. The denominator for this is based on the total possible at the end of the course, and does not adjust for unreleased assignments – getting a perfect score on your first homework may only give you a 4% overall percentage. | +-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Overall Grade | Letter grade based on CourseDescriptor.grade_cutoffs and the Overall Percentage (so after rounding up). | +-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -34,11 +34,11 @@ Terminology | Courseware | The Django model that XBlocks use to store their student state. Raw scores are also stored here. There are many legacy artifacts in this model, so please read the `documentation `_ if you're going to work with it. The vast majority of scores in the system are stored here. | | StudentModule | | +-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `Submissions API `_ | A newer API created to store submissions and scores separately from XBlock state. The long term goals were to make a more auditable, performant, and flexible scoring system. Scores and submissions are immutable (you never edit old entries, just create new ones). Because it is not derived from XBlock state, it is also possible to later record scores for more abstract things like "class participation", though that functionality is not presently used. This API is relatively new and few things use it. | +| `Submissions API `_ | A newer API created to store submissions and scores separately from XBlock state. The long term goals were to make a more auditable, performant, and flexible scoring system. Scores and submissions are immutable (you never edit old entries, just create new ones). Because it is not derived from XBlock state, it is also possible to later record scores for more abstract things like "class participation", though that functionality is not presently used. This API is relatively new and few things use it. | +-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Modulestore | The interface that we use to instantiate XBlocks in edx-platform. Content is loaded from MongoDB as part of this process. | +-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Block Structures | An extensible framework for caching xBlock data from the modulestore and storing it in a denormalized read-optimized form. See the `BlockStructure Readme `_ for more information. | +| Block Structures | An extensible framework for caching xBlock data from the modulestore and storing it in a denormalized read-optimized form. See the `BlockStructure Readme `_ for more information. | +-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Course Structure in context of Grading @@ -48,7 +48,7 @@ xBlocks ^^^^^^^ The edX course is built as a hierarchical structure of `xBlocks `_ as recursive compositional building blocks. In the context of grading, the following xBlocks are of particular interest: -* All scorable "xblocks" (optionally using `Scorable xBlock Mixin `_) +* All scorable "xblocks" (optionally using `Scorable xBlock Mixin `_) - with has_score=True, as designated by the xBlock developer @@ -89,7 +89,7 @@ Assignment Weights Computation -* Although the platform provides support for custom `course graders `_, in practice, only the computation described here is used, as implemented by the `WeightedSubsectionsGrader `_. +* Although the platform provides support for custom `course graders `_, in practice, only the computation described here is used, as implemented by the `WeightedSubsectionsGrader `_. * The overall grade is the weighted sum of all assignment types in the course, allowing for droppable assignments. - Which subsections to drop are determined only after calculating each subsection's grade, as only the ones with the lowest grades are dropped. diff --git a/lms/djangoapps/grades/docs/code-classes-signals-transformer.rst b/lms/djangoapps/grades/docs/code-classes-signals-transformer.rst index 950499417867..551c7283bf23 100644 --- a/lms/djangoapps/grades/docs/code-classes-signals-transformer.rst +++ b/lms/djangoapps/grades/docs/code-classes-signals-transformer.rst @@ -1,7 +1,7 @@ Code ---- -The Grades code currently lives in a `django app within edx-platform. `_ Long-term, it's possible for the Grades project to be in its own repo. However, currently, it depends on various other modules in the edX platform, including Enrollments, BlockStructures, Modulestore, Courseware Student Module, and Submissions. Once those modules are extracted into their own repos, it would be possible to do the same for Grades. +The Grades code currently lives in a `django app within edx-platform. `_ Long-term, it's possible for the Grades project to be in its own repo. However, currently, it depends on various other modules in the edX platform, including Enrollments, BlockStructures, Modulestore, Courseware Student Module, and Submissions. Once those modules are extracted into their own repos, it would be possible to do the same for Grades. Classes ------- @@ -13,7 +13,7 @@ The Grades Python API was designed with simplicity and usability in mind. It us Signals ------- -See `grades.signals.signals.py `_ for description on the following grades-related django signals: +See `grades.signals.signals.py `_ for description on the following grades-related django signals: * PROBLEM_RAW_SCORE_CHANGED @@ -25,11 +25,11 @@ See `grades.signals.signals.py `_ for description on the following signal: +See `core.djangoapps.signals.signals.py `_ for description on the following signal: * COURSE_GRADE_CHANGED (includes **CourseGradeBase** object) Block Transformer ----------------- -The `Grades Block Transformer `_ collects and stores denormalized and read-optimized grading information when the course is published. Please see its docstring for further information. \ No newline at end of file +The `Grades Block Transformer `_ collects and stores denormalized and read-optimized grading information when the course is published. Please see its docstring for further information. \ No newline at end of file diff --git a/lms/djangoapps/instructor/settings/common.py b/lms/djangoapps/instructor/settings/common.py index 8f44daaf27b4..65e7038df495 100644 --- a/lms/djangoapps/instructor/settings/common.py +++ b/lms/djangoapps/instructor/settings/common.py @@ -17,7 +17,7 @@ def plugin_settings(settings): # analytics section. # .. toggle_use_cases: opt_out # .. toggle_creation_date: 2014-11-12 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/5838 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/5838 'DISPLAY_ANALYTICS_ENROLLMENTS': True, # .. toggle_name: FEATURES['ENABLE_CCX_ANALYTICS_DASHBOARD_URL'] @@ -28,7 +28,7 @@ def plugin_settings(settings): # setting, the tab does not show up for any courses. # .. toggle_use_cases: opt_in # .. toggle_creation_date: 2016-10-07 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/13196 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/13196 'ENABLE_CCX_ANALYTICS_DASHBOARD_URL': False, # .. setting_name: FEATURES['MAX_ENROLLMENT_INSTR_BUTTONS'] @@ -47,7 +47,7 @@ def plugin_settings(settings): # configured storage backend and give links for downloads. # .. toggle_use_cases: opt_in # .. toggle_creation_date: 2016-07-06 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/11286 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/11286 'ENABLE_GRADE_DOWNLOADS': False, # .. toggle_name: FEATURES['ALLOW_COURSE_STAFF_GRADE_DOWNLOADS'] @@ -57,7 +57,7 @@ def plugin_settings(settings): # if set to False, only edX superusers can perform the downloads. # .. toggle_use_cases: opt_in # .. toggle_creation_date: 2018-03-26 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/1750 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/1750 'ALLOW_COURSE_STAFF_GRADE_DOWNLOADS': False, # .. toggle_name: FEATURES['ALLOW_AUTOMATED_SIGNUPS'] @@ -68,7 +68,7 @@ def plugin_settings(settings): # and register for course. # .. toggle_use_cases: opt_in # .. toggle_creation_date: 2014-10-21 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/5670 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/5670 'ALLOW_AUTOMATED_SIGNUPS': False, # .. toggle_name: FEATURES['ENABLE_AUTOMATED_SIGNUPS_EXTRA_FIELDS'] @@ -80,7 +80,7 @@ def plugin_settings(settings): # assign the new user and the enrollment course mode. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2021-10-26 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/21260 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/21260 'ENABLE_AUTOMATED_SIGNUPS_EXTRA_FIELDS': False, # .. toggle_name: FEATURES['CERTIFICATES_INSTRUCTOR_GENERATION'] # lint-amnesty, pylint: disable=annotation-missing-token @@ -99,6 +99,6 @@ def plugin_settings(settings): # enrollment form on the instructor dashboard is already checked on page load or not. # .. toggle_use_cases: opt_out # .. toggle_creation_date: 2017-07-05 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/15392 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/15392 'BATCH_ENROLLMENT_NOTIFY_USERS_DEFAULT': True, }) diff --git a/lms/djangoapps/monitoring/README.rst b/lms/djangoapps/monitoring/README.rst index a6909b0847de..7096787caa1a 100644 --- a/lms/djangoapps/monitoring/README.rst +++ b/lms/djangoapps/monitoring/README.rst @@ -4,7 +4,7 @@ For details on the decision to implement the code_owner custom attribute, see: lms/djangoapps/monitoring/docs/decisions/0001-monitoring-by-code-owner.rst Originally, this directory contained the ``CodeOwnerMetricMiddleware``, but that has since been moved to -https://github.com/edx/edx-django-utils/tree/master/edx_django_utils/monitoring/code_owner +https://github.com/openedx/edx-django-utils/tree/master/edx_django_utils/monitoring/code_owner and renamed ``CodeOwnerMonitoringMiddleware``. This directory continues to contain scripts that can help generate the appropriate ownership mappings for the LMS. diff --git a/lms/djangoapps/monitoring/scripts/generate_code_owner_mappings.py b/lms/djangoapps/monitoring/scripts/generate_code_owner_mappings.py index fa10dcea1850..ed5220a1766e 100644 --- a/lms/djangoapps/monitoring/scripts/generate_code_owner_mappings.py +++ b/lms/djangoapps/monitoring/scripts/generate_code_owner_mappings.py @@ -21,12 +21,12 @@ # the app code. Please add in alphabetical order. EDX_REPO_APPS = { 'bulk_grades': 'https://github.com/openedx/edx-bulk-grades', - 'coaching': 'https://github.com/edx/platform-plugin-coaching', + 'coaching': 'https://github.com/openedx/platform-plugin-coaching', 'completion': 'https://github.com/openedx/completion', 'config_models': 'https://github.com/openedx/django-config-models', 'consent': 'https://github.com/openedx/edx-enterprise', 'csrf': 'https://github.com/openedx/edx-drf-extensions', - 'edx_name_affirmation': 'https://github.com/edx/edx-name-affirmation', + 'edx_name_affirmation': 'https://github.com/openedx/edx-name-affirmation', 'edx_proctoring': 'https://github.com/openedx/edx-proctoring', 'edxval': 'https://github.com/openedx/edx-val', 'enterprise': 'https://github.com/openedx/edx-enterprise', @@ -34,9 +34,9 @@ 'eventtracking': 'https://github.com/openedx/event-tracking', 'help_tokens': 'https://github.com/openedx/help-tokens', 'integrated_channels': 'https://github.com/openedx/edx-enterprise', - 'learner_pathway_progress': 'https://github.com/edx/learner-pathway-progress', + 'learner_pathway_progress': 'https://github.com/openedx/learner-pathway-progress', 'lti_consumer': 'https://github.com/openedx/xblock-lti-consumer', - 'notices': 'https://github.com/edx/platform-plugin-notices', + 'notices': 'https://github.com/openedx/platform-plugin-notices', 'organizations': 'https://github.com/openedx/edx-organizations', 'search': 'https://github.com/openedx/edx-search', 'super_csv': 'https://github.com/openedx/super-csv', diff --git a/lms/djangoapps/program_enrollments/rest_api/v1/views.py b/lms/djangoapps/program_enrollments/rest_api/v1/views.py index 4c80bffaf2a7..53883b755834 100644 --- a/lms/djangoapps/program_enrollments/rest_api/v1/views.py +++ b/lms/djangoapps/program_enrollments/rest_api/v1/views.py @@ -830,7 +830,7 @@ def get(self, request, username, program_uuid): # lint-amnesty, pylint: disable that a user has for course-runs within a given program. Fields included are the title, upcoming due dates, etc. This API endpoint is intended for use with the - [Program Learner Portal MFE](https://github.com/edx/frontend-app-learner-portal-programs). + [Program Learner Portal MFE](https://github.com/openedx/frontend-app-learner-portal-programs). It is important to note that the set of enrollments that this endpoint returns is different than a user's set of *program-course-run enrollments*. diff --git a/lms/djangoapps/teams/toggles.py b/lms/djangoapps/teams/toggles.py index e853630376aa..5ce8fd08ce50 100644 --- a/lms/djangoapps/teams/toggles.py +++ b/lms/djangoapps/teams/toggles.py @@ -35,7 +35,7 @@ def are_team_submissions_enabled(course_key): return True # TODO: this behaviour differs from edx-ora2, where the WaffleSwitch overrides the setting. - # https://github.com/edx/edx-ora2/blob/ac502d8301cb987c9885aaefbaeddaf456c13fb9/openassessment/xblock/config_mixin.py#L96 + # https://github.com/openedx/edx-ora2/blob/ac502d8301cb987c9885aaefbaeddaf456c13fb9/openassessment/xblock/config_mixin.py#L96 if TEAM_SUBMISSIONS_FEATURE.is_enabled(): return True diff --git a/lms/envs/common.py b/lms/envs/common.py index cf8d258674c5..c9e4cf86468a 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -98,7 +98,7 @@ # by course staff. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-09-04 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/2425 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/2425 'DISPLAY_DEBUG_INFO_TO_STAFF': True, # .. toggle_name: FEATURES['DISPLAY_HISTOGRAMS_TO_STAFF'] @@ -109,7 +109,7 @@ # .. toggle_creation_date: 2014-02-13 # .. toggle_warning: Generating histograms requires scanning the courseware_studentmodule table on each view. This # can make staff access to courseware very slow on large courses. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/2425 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/2425 'DISPLAY_HISTOGRAMS_TO_STAFF': False, # For large courses this slows down courseware access for staff. 'REROUTE_ACTIVATION_EMAIL': False, # nonempty string = address for all activation emails @@ -122,7 +122,7 @@ # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2012-07-24 # .. toggle_warning: This will cause ALL courses to be immediately visible. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/17913 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/17913 ## DO NOT SET TO True IN THIS FILE ## Doing so will cause all courses to be released on production 'DISABLE_START_DATES': False, @@ -148,7 +148,7 @@ # .. toggle_creation_date: 2014-03-27 # .. toggle_warning: For consistency in user-experience, keep the value in sync with the setting of the same name # in the CMS. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/3064 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/3064 'ENABLE_TEXTBOOK': True, # .. toggle_name: FEATURES['ENABLE_DISCUSSION_HOME_PANEL'] @@ -159,7 +159,7 @@ # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2013-07-30 # .. toggle_warning: This should remain off in production until digest notifications are online. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/520 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/520 'ENABLE_DISCUSSION_HOME_PANEL': False, # .. toggle_name: FEATURES['ENABLE_DISCUSSION_EMAIL_DIGEST'] @@ -174,7 +174,7 @@ # .. toggle_warning: It is not recommended to enable this feature if ENABLE_DISCUSSION_HOME_PANEL is not enabled, # since subscribers who receive digests in that case will only be able to unsubscribe via links embedded in # their emails, and they will have no way to resubscribe. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/4891 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/4891 'ENABLE_DISCUSSION_EMAIL_DIGEST': False, # .. toggle_name: FEATURES['ENABLE_UNICODE_USERNAME'] @@ -185,7 +185,7 @@ # regular expression defined by USERNAME_REGEX_PARTIAL. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2017-06-27 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/14729 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/14729 'ENABLE_UNICODE_USERNAME': False, # .. toggle_name: FEATURES['ENABLE_DJANGO_ADMIN_SITE'] @@ -196,7 +196,7 @@ # .. toggle_creation_date: 2013-09-26 # .. toggle_warning: It is not recommended to disable this feature as there are many settings available on # Django's admin site and will be inaccessible to the superuser. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/829 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/829 'ENABLE_DJANGO_ADMIN_SITE': True, 'ENABLE_LMS_MIGRATION': False, @@ -233,10 +233,10 @@ # .. toggle_default: False # .. toggle_description: Enable an API endpoint, named "xblock_view", to serve rendered XBlock views. This might be # used by external applications. See for instance jquery-xblock (now unmaintained): - # https://github.com/edx-solutions/jquery-xblock + # https://github.com/openedx-solutions/jquery-xblock # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2014-03-14 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/2968 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/2968 'ENABLE_XBLOCK_VIEW_ENDPOINT': False, # Allows to configure the LMS to provide CORS headers to serve requests from other @@ -252,7 +252,7 @@ # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2013-09-28 # .. toggle_warning: This Effects views and templates. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/1073 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/1073 'COURSES_ARE_BROWSABLE': True, # Can be turned off to disable the help link in the navbar @@ -262,7 +262,7 @@ # .. toggle_description: When True, a help link is displayed on the main navbar. Set False to hide it. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2021-03-05 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/26106 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/26106 'ENABLE_HELP_LINK': True, # .. toggle_name: FEATURES['HIDE_DASHBOARD_COURSES_UNTIL_ACTIVATED'] @@ -282,7 +282,7 @@ # tool. Set to False if you want to hide Submission History from the courseware page. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2013-02-15 - # .. toggle_tickets: https://github.com/edx/edx-platform/commit/8f17e6ae9ed76fa75b3caf867b65ccb632cb6870 + # .. toggle_tickets: https://github.com/openedx/edx-platform/commit/8f17e6ae9ed76fa75b3caf867b65ccb632cb6870 'ENABLE_STUDENT_HISTORY_VIEW': True, # Turn on a page that lets staff enter Python code to be run in the @@ -319,7 +319,7 @@ # be added to MODULESTORE_FIELD_OVERRIDE_PROVIDERS # .. toggle_use_cases: opt_in, circuit_breaker # .. toggle_creation_date: 2015-04-10 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/6636 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/6636 'CUSTOM_COURSES_EDX': False, # Toggle to enable certificates of courses on dashboard @@ -349,7 +349,7 @@ # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2013-07-25 # .. toggle_warning: If this has been set to True then the account activation email will be skipped. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/417 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/417 'AUTOMATIC_AUTH_FOR_TESTING': False, # .. toggle_name: FEATURES['RESTRICT_AUTOMATIC_AUTH'] @@ -390,7 +390,7 @@ # cosmetic price is used when there is no registration price associated to the course. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2014-10-10 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/6876 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/6876 # .. toggle_warning: The use case of this feature toggle is uncertain. 'ENABLE_COSMETIC_DISPLAY_PRICE': False, @@ -405,7 +405,7 @@ # identity verification attempts. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2013-10-03 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/1184 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/1184 'AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING': False, # Maximum number of rows to include in the csv file for downloading problem responses. @@ -430,7 +430,7 @@ # set to False then account locking will be disabled for failed login attempts. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2014-01-30 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/2331 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/2331 'ENABLE_MAX_FAILED_LOGIN_ATTEMPTS': True, # Hide any Personally Identifiable Information from application logs @@ -447,7 +447,7 @@ # .. toggle_target_removal_date: None # .. toggle_warning: reverse proxy should be configured appropriately for example Client IP address headers # (e.g HTTP_X_FORWARDED_FOR) should be configured. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/2749 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/2749 'EMBARGO': False, # Whether the Wiki subsystem should be accessible via the direct /wiki/ paths. Setting this to True means @@ -487,7 +487,7 @@ # the user. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2014-09-16 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/5220 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/5220 'ALWAYS_REDIRECT_HOMEPAGE_TO_DASHBOARD_FOR_AUTHENTICATED_USER': True, # .. toggle_name: FEATURES['ENABLE_COURSE_SORTING_BY_START_DATE'] @@ -498,7 +498,7 @@ # by their start dates, latest first. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-03-27 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/7548 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/7548 'ENABLE_COURSE_SORTING_BY_START_DATE': True, # .. toggle_name: FEATURES['ENABLE_COURSE_HOME_REDIRECT'] @@ -508,7 +508,7 @@ # course "about" page will be redirected to the course home url. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2019-01-15 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/19604 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/19604 'ENABLE_COURSE_HOME_REDIRECT': True, # Expose Mobile REST API. Note that if you use this, you must also set @@ -538,7 +538,7 @@ # .. toggle_warning: If you set this to True then you should also set your mobile application's app store and play # store URLs in the MOBILE_STORE_URLS settings dictionary. These links are not part of the default theme. If you # want these links on your footer then you should use the edx.org theme. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/6588 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/6588 'ENABLE_FOOTER_MOBILE_APP_LINKS': False, # Let students save and manage their annotations @@ -552,7 +552,7 @@ # EDXNOTES_INTERNAL_API and EDXNOTES_PUBLIC_API. If you update this setting, also update it in Studio. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-01-04 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/6321 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/6321 'ENABLE_EDXNOTES': False, # Toggle to enable coordination with the Publisher tool (keep in sync with cms/envs/common.py) @@ -581,7 +581,7 @@ # .. toggle_creation_date: 2015-01-29 # .. toggle_warning: In order to get this working, your courses data should be indexed in Elasticsearch. You will # see the search widget on the courseware page only if the DISABLE_COURSE_OUTLINE_PAGE_FLAG is set. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/6506 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/6506 'ENABLE_COURSEWARE_SEARCH': False, # .. toggle_name: FEATURES['ENABLE_COURSEWARE_SEARCH_FOR_COURSE_STAFF'] @@ -606,7 +606,7 @@ # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-01-29 # .. toggle_warning: In order to get this working, your courses data should be indexed in Elasticsearch. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/6506 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/6506 'ENABLE_DASHBOARD_SEARCH': False, # log all information from cybersource callbacks @@ -619,7 +619,7 @@ # license information to the courseware. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-05-14 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/7315 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/7315 'LICENSING': False, # .. toggle_name: FEATURES['CERTIFICATES_HTML_VIEW'] @@ -632,7 +632,7 @@ # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-03-13 # .. toggle_target_removal_date: None - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/7113 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/7113 'CERTIFICATES_HTML_VIEW': False, # .. toggle_name: FEATURES['CUSTOM_CERTIFICATE_TEMPLATES_ENABLED'] @@ -656,7 +656,7 @@ # .. toggle_creation_date: 2015-04-23 # .. toggle_target_removal_date: None # .. toggle_warning: The COURSE_DISCOVERY_MEANINGS setting should be properly defined. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/7845 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/7845 'ENABLE_COURSE_DISCOVERY': False, # .. toggle_name: FEATURES['ENABLE_COURSE_FILENAME_CCX_SUFFIX'] @@ -691,7 +691,7 @@ # .. toggle_description: Enable to use special exams, aka timed and proctored exams. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-09-04 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/9744 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/9744 'ENABLE_SPECIAL_EXAMS': False, # .. toggle_name: FEATURES['ENABLE_OPENBADGES'] @@ -717,7 +717,7 @@ # https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/latest/configuration/lti/index.html # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-04-24 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/7689 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/7689 'ENABLE_LTI_PROVIDER': False, # .. toggle_name: FEATURES['SHOW_HEADER_LANGUAGE_SELECTOR'] @@ -728,7 +728,7 @@ # .. toggle_creation_date: 2017-05-25 # .. toggle_warning: You should set the languages in the DarkLangConfig table to get this working. If you have # not set any languages in the DarkLangConfig table then the language selector will not be visible in the header. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/15133 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/15133 'SHOW_HEADER_LANGUAGE_SELECTOR': False, # At edX it's safe to assume that English transcripts are always available @@ -743,7 +743,7 @@ # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2017-05-25 # .. toggle_warning: LANGUAGE_COOKIE_NAME is required to use footer-language-selector, set it if it has not been set. - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/15133 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/15133 'SHOW_FOOTER_LANGUAGE_SELECTOR': False, # .. toggle_name: FEATURES['ENABLE_CSMH_EXTENDED'] @@ -811,7 +811,7 @@ # users in a course using bulk enrollment API endpoint (/api/bulk_enroll/v1/bulk_enroll). # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2017-07-15 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/15006 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/15006 'ENABLE_BULK_ENROLLMENT_VIEW': False, # Set to enable Enterprise integration @@ -851,7 +851,7 @@ # hide this section. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2018-06-01 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/18298 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/18298 'ENABLE_ACCOUNT_DELETION': True, # Enable feature to remove enrollments and users. Used to reset state of master's integration environments @@ -865,7 +865,7 @@ # default because enabling allows a method to bypass password policy. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2020-02-21 - # .. toggle_tickets: 'https://github.com/edx/edx-platform/pull/21616' + # .. toggle_tickets: 'https://github.com/openedx/edx-platform/pull/21616' 'ENABLE_CHANGE_USER_PASSWORD_ADMIN': False, # .. toggle_name: FEATURES['ENABLE_AUTHN_MICROFRONTEND'] @@ -875,7 +875,7 @@ # .. toggle_use_cases: temporary, open_edx # .. toggle_creation_date: 2020-09-08 # .. toggle_target_removal_date: None - # .. toggle_tickets: 'https://github.com/edx/edx-platform/pull/24908' + # .. toggle_tickets: 'https://github.com/openedx/edx-platform/pull/24908' # .. toggle_warning: Also set settings.AUTHN_MICROFRONTEND_URL for rollout. This temporary feature # toggle does not have a target removal date. 'ENABLE_AUTHN_MICROFRONTEND': os.environ.get("EDXAPP_ENABLE_AUTHN_MFE", False), @@ -965,7 +965,7 @@ # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: Whether to display honor code agreement for learners before their first grade assignment - # (https://github.com/edx/edx-name-affirmation) + # (https://github.com/openedx/edx-name-affirmation) # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2022-02-15 # .. toggle_target_removal_date: None @@ -992,7 +992,7 @@ # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2022-03-22 # .. toggle_target_removal_date: None - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/28268 + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/28268 # .. toggle_warning: For consistency in user-experience, keep the value in sync with the setting of the same name # in the LMS and CMS. 'MARK_LIBRARY_CONTENT_BLOCK_COMPLETE_ON_VIEW': False, @@ -1667,7 +1667,7 @@ def _make_mako_template_dirs(settings): #################### Python sandbox ############################################ CODE_JAIL = { - # from https://github.com/edx/codejail/blob/master/codejail/django_integration.py#L24, '' should be same as None + # from https://github.com/openedx/codejail/blob/master/codejail/django_integration.py#L24, '' should be same as None 'python_bin': '/edx/app/edxapp/venvs/edxapp-sandbox/bin/python', # User to run as in the sandbox. 'user': 'sandbox', @@ -1957,7 +1957,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. toggle_default: False # .. toggle_description: We recommend you leave this as 'False' for an Open edX installation # to get the proper behavior for register, login and logout. For the original docs see: -# https://github.com/edx/django-wiki/blob/edx_release/wiki/conf/settings.py +# https://github.com/openedx/django-wiki/blob/edx_release/wiki/conf/settings.py # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2012-08-13 WIKI_ACCOUNT_HANDLING = False @@ -1968,7 +1968,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. toggle_default: False # .. toggle_description: Enabling this allows access to anonymous users. # For the original docs, see: -# https://github.com/edx/django-wiki/blob/edx_release/wiki/conf/settings.py +# https://github.com/openedx/django-wiki/blob/edx_release/wiki/conf/settings.py # .. toggle_warning: Setting allow anonymous access to `True` may have styling issues. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2012-08-21 @@ -1983,7 +1983,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. toggle_default: False # .. toggle_description: Enabling this will use the bootstrap select widget. # For the original docs, see: -# https://github.com/edx/django-wiki/blob/edx_release/wiki/conf/settings.py +# https://github.com/openedx/django-wiki/blob/edx_release/wiki/conf/settings.py # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2012-08-22 WIKI_USE_BOOTSTRAP_SELECT_WIDGET = False @@ -1991,7 +1991,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. toggle_implementation: DjangoSetting # .. toggle_default: False # .. toggle_description: This setting is defined in the original docs: -# https://github.com/edx/django-wiki/blob/edx_release/wiki/conf/settings.py +# https://github.com/openedx/django-wiki/blob/edx_release/wiki/conf/settings.py # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2012-08-23 WIKI_LINK_LIVE_LOOKUPS = False @@ -2811,22 +2811,22 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. setting_default: dict of settings # .. setting_description: Stores all the settings used by block structures and block structure # related tasks. See BLOCK_STRUCTURES_SETTINGS[XXX] documentation for details of each setting. -# For more information, check https://github.com/edx/edx-platform/pull/13388. +# For more information, check https://github.com/openedx/edx-platform/pull/13388. BLOCK_STRUCTURES_SETTINGS = dict( # .. setting_name: BLOCK_STRUCTURES_SETTINGS['COURSE_PUBLISH_TASK_DELAY'] # .. setting_default: 30 # .. setting_description: Delay, in seconds, after a new edit of a course is published before # updating the block structures cache. This is needed for a better chance at getting # the latest changes when there are secondary reads in sharded mongoDB clusters. - # For more information, check https://github.com/edx/edx-platform/pull/13388 and - # https://github.com/edx/edx-platform/pull/14571. + # For more information, check https://github.com/openedx/edx-platform/pull/13388 and + # https://github.com/openedx/edx-platform/pull/14571. COURSE_PUBLISH_TASK_DELAY=30, # .. setting_name: BLOCK_STRUCTURES_SETTINGS['TASK_DEFAULT_RETRY_DELAY'] # .. setting_default: 30 # .. setting_description: Delay, in seconds, between retry attempts if a block structure task - # fails. For more information, check https://github.com/edx/edx-platform/pull/13388 and - # https://github.com/edx/edx-platform/pull/14571. + # fails. For more information, check https://github.com/openedx/edx-platform/pull/13388 and + # https://github.com/openedx/edx-platform/pull/14571. TASK_DEFAULT_RETRY_DELAY=30, # .. setting_name: BLOCK_STRUCTURES_SETTINGS['TASK_MAX_RETRIES'] @@ -2834,8 +2834,8 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. setting_description: Maximum number of retries per block structure task. # If the maximum number of retries is exceeded, then you can attempt to either manually run # the celery task, or wait for it to be triggered again. - # For more information, check https://github.com/edx/edx-platform/pull/13388 and - # https://github.com/edx/edx-platform/pull/14571. + # For more information, check https://github.com/openedx/edx-platform/pull/13388 and + # https://github.com/openedx/edx-platform/pull/14571. TASK_MAX_RETRIES=5, # .. toggle_name: BLOCK_STRUCTURES_SETTINGS['PRUNING_ACTIVE'] @@ -2849,8 +2849,8 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. toggle_use_cases: temporary # .. toggle_creation_date: 2018-03-22 # .. toggle_target_removal_date: 2018-06-22 - # .. toggle_tickets: https://github.com/edx/edx-platform/pull/14571, - # https://github.com/edx/edx-platform/pull/17760, + # .. toggle_tickets: https://github.com/openedx/edx-platform/pull/14571, + # https://github.com/openedx/edx-platform/pull/17760, # https://openedx.atlassian.net/browse/DEPR-146 PRUNING_ACTIVE=False, ) @@ -2938,7 +2938,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # - Add it to OPTIONAL_APPS below (registered if importable) # - Add it to the ADDL_INSTALLED_APPS configuration variable (acts like EXTRA_APPS in other IDAs) # - Make it a plugin (which are auto-registered) and add it to the EDXAPP_PRIVATE_REQUIREMENTS configuration variable -# (See https://github.com/edx/edx-django-utils/tree/master/edx_django_utils/plugins) +# (See https://github.com/openedx/edx-django-utils/tree/master/edx_django_utils/plugins) INSTALLED_APPS = [ # Standard ones that are always installed... 'django.contrib.auth', @@ -3230,7 +3230,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # Learning Sequence Navigation 'openedx.core.djangoapps.content.learning_sequences.apps.LearningSequencesConfig', - # Database-backed Organizations App (http://github.com/edx/edx-organizations) + # Database-backed Organizations App (http://github.com/openedx/edx-organizations) 'organizations', # Bulk User Retirement @@ -3292,7 +3292,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # is validated via RegistrationValidationView. # It's POST endpoint is rate-limited up to 30 requests per IP Address in a week by default. # It was introduced because an attacker can guess or brute force a series of names to enumerate valid users. -# .. setting_tickets: https://github.com/edx/edx-platform/pull/24664 +# .. setting_tickets: https://github.com/openedx/edx-platform/pull/24664 REGISTRATION_VALIDATION_RATELIMIT = '30/7d' # .. setting_name: REGISTRATION_RATELIMIT @@ -3300,7 +3300,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. setting_description: New users are registered on edx via RegistrationView. # It's POST end-point is rate-limited up to 60 requests per IP Address in a week by default. # Purpose of this setting is to restrict an attacker from registering numerous fake accounts. -# .. setting_tickets: https://github.com/edx/edx-platform/pull/27060 +# .. setting_tickets: https://github.com/openedx/edx-platform/pull/27060 REGISTRATION_RATELIMIT = '60/7d' SWAGGER_SETTINGS = { @@ -3508,7 +3508,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # Eligibility" section then appears for those courses in the LMS. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2015-06-17 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/8550 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/8550 FEATURES['ENABLE_CREDIT_ELIGIBILITY'] = ENABLE_CREDIT_ELIGIBILITY ############# Cross-domain requests ################# @@ -3986,7 +3986,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # edxval ('edxval', 'openedx.core.djangoapps.content.course_overviews.apps.CourseOverviewsConfig'), - # Enterprise Apps (http://github.com/edx/edx-enterprise) + # Enterprise Apps (http://github.com/openedx/edx-enterprise) ('enterprise', None), ('consent', None), ('integrated_channels.integrated_channel', None), @@ -4430,7 +4430,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # Settings for Comprehensive Theming app -# See https://github.com/edx/edx-django-sites-extensions for more info +# See https://github.com/openedx/edx-django-sites-extensions for more info # Default site to use if site matching request headers does not exist SITE_ID = 1 @@ -4715,7 +4715,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # When disabled, RATELIMIT_RATE is not applied. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2018-01-08 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/16951 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/16951 RATELIMIT_ENABLE = True # .. setting_name: RATELIMIT_RATE @@ -4726,7 +4726,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. setting_warning: RATELIMIT_ENABLE flag must also be enabled/set to True to use this RATELIMIT_RATE setting. # .. setting_use_cases: open_edx # .. setting_creation_date: 2018-01-08 -# .. setting_tickets: https://github.com/edx/edx-platform/pull/16951 +# .. setting_tickets: https://github.com/openedx/edx-platform/pull/16951 RATELIMIT_RATE = '120/m' ##### LOGISTRATION RATE LIMIT SETTINGS ##### @@ -5128,7 +5128,7 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring # .. toggle_default: False # .. toggle_description: Flag would be used to show account activation popup after the registration # .. toggle_use_cases: open_edx -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/27661 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/27661 # .. toggle_creation_date: 2021-06-10 SHOW_ACCOUNT_ACTIVATION_CTA = False diff --git a/lms/envs/devstack-experimental.yml b/lms/envs/devstack-experimental.yml index bb9ff9cdbf46..48e641135dac 100644 --- a/lms/envs/devstack-experimental.yml +++ b/lms/envs/devstack-experimental.yml @@ -15,7 +15,7 @@ # a devstack.py at all. # # This is part of the effort to move our dev tools off of Ansible and -# Paver, described here: https://github.com/edx/devstack/pull/866 +# Paver, described here: https://github.com/openedx/devstack/pull/866 # TODO: If the effort described above is abandoned, then this file should # probably be deleted. ACCOUNT_MICROFRONTEND_URL: null diff --git a/lms/envs/devstack.py b/lms/envs/devstack.py index add2ed0538c3..cdf6011eb81d 100644 --- a/lms/envs/devstack.py +++ b/lms/envs/devstack.py @@ -378,7 +378,7 @@ def should_show_debug_toolbar(request): # lint-amnesty, pylint: disable=missing 'SHOW_HEADER_LANGUAGE_SELECTOR': True, # Enable enterprise integration by default. - # See https://github.com/edx/edx-enterprise/blob/master/docs/development.rst for + # See https://github.com/openedx/edx-enterprise/blob/master/docs/development.rst for # more background on edx-enterprise. # Toggle this off if you don't want anything to do with enterprise in devstack. 'ENABLE_ENTERPRISE_INTEGRATION': True, diff --git a/lms/envs/docs/README.rst b/lms/envs/docs/README.rst index 3cacfbc6ef2b..bf48cdedf684 100644 --- a/lms/envs/docs/README.rst +++ b/lms/envs/docs/README.rst @@ -24,7 +24,7 @@ edx-platform. Therefore, they are not checked into the edx-platform repo. Rather, they are generated from the `edxapp playbook in the configuration repo`_ and available in the ``/edx/etc/`` folder on edX servers. -.. _edxapp playbook in the configuration repo: https://github.com/edx/configuration/tree/master/playbooks/roles/edxapp +.. _edxapp playbook in the configuration repo: https://github.com/openedx/configuration/tree/master/playbooks/roles/edxapp Feature Flags and Settings Guidelines diff --git a/lms/static/js/accessible_components/StatusBarAlert.jsx b/lms/static/js/accessible_components/StatusBarAlert.jsx index 6d974fb7d4fc..ab4d6f578d41 100644 --- a/lms/static/js/accessible_components/StatusBarAlert.jsx +++ b/lms/static/js/accessible_components/StatusBarAlert.jsx @@ -14,7 +14,7 @@ export class StatusAlertRenderer { if (element) { /* These props match the defaults mostly in the paragon lib: - https://github.com/edx/paragon/tree/master/src/StatusAlert + https://github.com/openedx/paragon/tree/master/src/StatusAlert but are made explicit in the case of a upstream change to defaults */ ReactDOM.render( diff --git a/lms/static/js/jwt_auth/README.rst b/lms/static/js/jwt_auth/README.rst index f83aad0700df..323d0d6e145f 100644 --- a/lms/static/js/jwt_auth/README.rst +++ b/lms/static/js/jwt_auth/README.rst @@ -1,8 +1,8 @@ Responsibilities ================ -The code in the jwt_auth folder was pulled from https://github.com/edx/frontend-platform/tree/master/src/auth +The code in the jwt_auth folder was pulled from https://github.com/openedx/frontend-platform/tree/master/src/auth -Primarily the code required to use https://github.com/edx/frontend-platform/blob/master/src/auth/AxiosJwtTokenService.js +Primarily the code required to use https://github.com/openedx/frontend-platform/blob/master/src/auth/AxiosJwtTokenService.js This code will require updates if changes are made in the AxiosJwtTokenService. diff --git a/lms/static/sass/course/ccx_coach/_dashboard.scss b/lms/static/sass/course/ccx_coach/_dashboard.scss index 729da74acd33..446dcf2c2f03 100644 --- a/lms/static/sass/course/ccx_coach/_dashboard.scss +++ b/lms/static/sass/course/ccx_coach/_dashboard.scss @@ -63,7 +63,7 @@ table.ccx-schedule { form.ccx-form { line-height: 1.5; - // inspiration was taken from https://github.com/edx/ux-pattern-library + // inspiration was taken from https://github.com/openedx/ux-pattern-library select { @include font-size(16); diff --git a/lms/static/sass/discussion/_discussion.scss b/lms/static/sass/discussion/_discussion.scss index 68643e0c9921..1b98d18b6cb6 100644 --- a/lms/static/sass/discussion/_discussion.scss +++ b/lms/static/sass/discussion/_discussion.scss @@ -130,7 +130,7 @@ section.discussion { .xblock-student_view-discussion { @extend %ui-print-excluded; // Overrides overspecific courseware CSS from: - // https://github.com/edx/edx-platform/blob/master/lms/static/sass/course/courseware/_courseware.scss#L499 + // https://github.com/openedx/edx-platform/blob/master/lms/static/sass/course/courseware/_courseware.scss#L499 padding-top: 15px !important; } diff --git a/lms/static/sass/discussion/elements/_navigation.scss b/lms/static/sass/discussion/elements/_navigation.scss index ad5daead77e0..580689cdb778 100644 --- a/lms/static/sass/discussion/elements/_navigation.scss +++ b/lms/static/sass/discussion/elements/_navigation.scss @@ -188,7 +188,7 @@ .forum-nav-thread-labels { margin: 5px 0 0; // Overrides overspecific courseware CSS from: - // https://github.com/edx/edx-platform/blob/master/lms/static/sass/course/courseware/_courseware.scss#L470 + // https://github.com/openedx/edx-platform/blob/master/lms/static/sass/course/courseware/_courseware.scss#L470 // note this should *not* be RTLed, as the rule it overrides is not RTLed padding-left: 0 !important; } @@ -391,7 +391,7 @@ &:focus { color: $forum-color-active-text; // !important overrides the one set here: - // https://github.com/edx/edx-platform/blob/master/lms/static/sass/elements/_controls.scss#L472 + // https://github.com/openedx/edx-platform/blob/master/lms/static/sass/elements/_controls.scss#L472 background-color: $forum-color-active-thread !important; } } diff --git a/lms/static/sass/shared/_alerts_pattern_library_shim.scss b/lms/static/sass/shared/_alerts_pattern_library_shim.scss index e22217d63960..8f78b0a66add 100644 --- a/lms/static/sass/shared/_alerts_pattern_library_shim.scss +++ b/lms/static/sass/shared/_alerts_pattern_library_shim.scss @@ -1,7 +1,7 @@ // lms alerts // This file contains "I want alerts that look like the pattern library" sass // and should be replaced when moving to the patter library proper -// https://github.com/edx/ux-pattern-library/blob/master/pattern-library/sass/patterns/_alerts.scss +// https://github.com/openedx/ux-pattern-library/blob/master/pattern-library/sass/patterns/_alerts.scss // ------------------------------ // edX Pattern Library: Utilities - Alerts diff --git a/lms/templates/widgets/footer-language-selector.html b/lms/templates/widgets/footer-language-selector.html index 043fbba96121..0416cbeea9ee 100644 --- a/lms/templates/widgets/footer-language-selector.html +++ b/lms/templates/widgets/footer-language-selector.html @@ -44,9 +44,9 @@ window.footerLanguageSelector = { ## ## Set the language cookie using the same settings as - ## https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/lang_pref/views.py#L26 + ## https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/lang_pref/views.py#L26 ## and - ## https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/lang_pref/middleware.py#63 + ## https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/lang_pref/middleware.py#63 ## Then refresh the page so that the language negotiation middleware can read it and re-render everything ## in the selected language. ## diff --git a/lms/urls.py b/lms/urls.py index 675d41fbd829..7526a310af9c 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -144,7 +144,7 @@ path('api/profile_images/', include('openedx.core.djangoapps.profile_images.urls')), # Video Abstraction Layer used to allow video teams to manage video assets - # independently of courseware. https://github.com/edx/edx-val + # independently of courseware. https://github.com/openedx/edx-val path('api/val/v0/', include('edxval.urls')), path( diff --git a/openedx/core/apidocs.py b/openedx/core/apidocs.py index e44c5f6e6b7c..45a61a948d95 100644 --- a/openedx/core/apidocs.py +++ b/openedx/core/apidocs.py @@ -20,7 +20,7 @@ def cursor_paginate_serializer(inner_serializer_class): Create a cursor-paginated version of a serializer. This is hacky workaround for an edx-api-doc-tools issue described here: - https://github.com/edx/api-doc-tools/issues/32 + https://github.com/openedx/api-doc-tools/issues/32 It assumes we are using cursor-style pagination and assumes a specific schema for the pages. It should be removed once we address the underlying issue. diff --git a/openedx/core/djangoapps/auth_exchange/forms.py b/openedx/core/djangoapps/auth_exchange/forms.py index ea175f910719..0f5cacf07dd8 100644 --- a/openedx/core/djangoapps/auth_exchange/forms.py +++ b/openedx/core/djangoapps/auth_exchange/forms.py @@ -174,7 +174,7 @@ def clean(self): raise OAuthValidationError( { # invalid_client isn't really the right code, but this mirrors - # https://github.com/edx/django-oauth2-provider/blob/edx/provider/oauth2/forms.py#L331 + # https://github.com/openedx/django-oauth2-provider/blob/edx/provider/oauth2/forms.py#L331 "error": "invalid_client", "error_description": f"{client_id} is not a public client", } diff --git a/openedx/core/djangoapps/catalog/tests/factories.py b/openedx/core/djangoapps/catalog/tests/factories.py index 922e237371e0..f2760edf86c9 100644 --- a/openedx/core/djangoapps/catalog/tests/factories.py +++ b/openedx/core/djangoapps/catalog/tests/factories.py @@ -102,7 +102,7 @@ class ImageFactory(ImageFactoryBase): """ For constructing dicts mirroring the catalog's serialized representation of ImageFields. - See https://github.com/edx/course-discovery/blob/master/course_discovery/apps/api/fields.py. + See https://github.com/openedx/course-discovery/blob/master/course_discovery/apps/api/fields.py. """ description = factory.Faker('sentence') src = factory.Faker('image_url') @@ -112,7 +112,7 @@ class StdImageFactory(ImageFactoryBase): """ For constructing dicts mirroring the catalog's serialized representation of StdImageFields. - See https://github.com/edx/course-discovery/blob/master/course_discovery/apps/api/fields.py. + See https://github.com/openedx/course-discovery/blob/master/course_discovery/apps/api/fields.py. """ url = factory.Faker('image_url') diff --git a/openedx/core/djangoapps/content/block_structure/config/__init__.py b/openedx/core/djangoapps/content/block_structure/config/__init__.py index 19956ff07331..194dfa9ee23c 100644 --- a/openedx/core/djangoapps/content/block_structure/config/__init__.py +++ b/openedx/core/djangoapps/content/block_structure/config/__init__.py @@ -20,8 +20,8 @@ # .. toggle_use_cases: temporary # .. toggle_creation_date: 2017-02-23 # .. toggle_target_removal_date: 2017-05-23 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/14358, -# https://github.com/edx/edx-platform/pull/14571, +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/14358, +# https://github.com/openedx/edx-platform/pull/14571, # https://openedx.atlassian.net/browse/DEPR-144 INVALIDATE_CACHE_ON_PUBLISH = WaffleSwitch( "block_structure.invalidate_cache_on_publish", __name__ @@ -41,8 +41,8 @@ # .. toggle_use_cases: temporary # .. toggle_creation_date: 2017-02-23 # .. toggle_target_removal_date: 2017-05-23 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/14512, -# https://github.com/edx/edx-platform/pull/14770, +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/14512, +# https://github.com/openedx/edx-platform/pull/14770, # https://openedx.atlassian.net/browse/DEPR-145 STORAGE_BACKING_FOR_CACHE = WaffleSwitch( "block_structure.storage_backing_for_cache", __name__ @@ -59,8 +59,8 @@ # .. toggle_use_cases: temporary # .. toggle_creation_date: 2017-02-23 # .. toggle_target_removal_date: 2017-05-23 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/14512, -# https://github.com/edx/edx-platform/pull/14770, +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/14512, +# https://github.com/openedx/edx-platform/pull/14770, # https://openedx.atlassian.net/browse/DEPR-143 RAISE_ERROR_WHEN_NOT_FOUND = WaffleSwitch( "block_structure.raise_error_when_not_found", __name__ diff --git a/openedx/core/djangoapps/content/block_structure/models.py b/openedx/core/djangoapps/content/block_structure/models.py index e2649558e376..b183bb59495d 100644 --- a/openedx/core/djangoapps/content/block_structure/models.py +++ b/openedx/core/djangoapps/content/block_structure/models.py @@ -40,7 +40,7 @@ def _directory_name(data_usage_key): # .. setting_default: '' # .. setting_description: Specifies the path in storage where block structures would be saved, # for storage-backed block structure cache. - # For more information, check https://github.com/edx/edx-platform/pull/14571. + # For more information, check https://github.com/openedx/edx-platform/pull/14571. # .. setting_warnings: Depends on `BLOCK_STRUCTURES_SETTINGS['STORAGE_CLASS']` and on # `block_structure.storage_backing_for_cache`. directory_prefix = settings.BLOCK_STRUCTURES_SETTINGS.get('DIRECTORY_PREFIX', '') @@ -73,7 +73,7 @@ def _bs_model_storage(): # .. setting_name: BLOCK_STRUCTURES_SETTINGS['STORAGE_CLASS'] # .. setting_default: None # .. setting_description: Specifies the storage used for storage-backed block structure cache. - # For more information, check https://github.com/edx/edx-platform/pull/14571. + # For more information, check https://github.com/openedx/edx-platform/pull/14571. # .. setting_warnings: Depends on `block_structure.storage_backing_for_cache`. storage_class = settings.BLOCK_STRUCTURES_SETTINGS.get('STORAGE_CLASS') @@ -81,7 +81,7 @@ def _bs_model_storage(): # .. setting_default: {} # .. setting_description: Specifies the keyword arguments needed to setup the storage, which # would be used for storage-backed block structure cache. - # For more information, check https://github.com/edx/edx-platform/pull/14571. + # For more information, check https://github.com/openedx/edx-platform/pull/14571. # .. setting_warnings: Depends on `BLOCK_STRUCTURES_SETTINGS['STORAGE_CLASS']` and on # `block_structure.storage_backing_for_cache`. storage_kwargs = settings.BLOCK_STRUCTURES_SETTINGS.get('STORAGE_KWARGS', {}) diff --git a/openedx/core/djangoapps/content/learning_sequences/api/processors/special_exams.py b/openedx/core/djangoapps/content/learning_sequences/api/processors/special_exams.py index 1fa7c97cf51c..efa0928a2238 100644 --- a/openedx/core/djangoapps/content/learning_sequences/api/processors/special_exams.py +++ b/openedx/core/djangoapps/content/learning_sequences/api/processors/special_exams.py @@ -7,7 +7,7 @@ necessary fixes in a new ticket. Please see the PR and discussion linked below for further context -https://github.com/edx/edx-platform/pull/24545#discussion_r501738511 +https://github.com/openedx/edx-platform/pull/24545#discussion_r501738511 """ import logging diff --git a/openedx/core/djangoapps/content/learning_sequences/views.py b/openedx/core/djangoapps/content/learning_sequences/views.py index 1ab79f64c971..671242fd47cb 100644 --- a/openedx/core/djangoapps/content/learning_sequences/views.py +++ b/openedx/core/djangoapps/content/learning_sequences/views.py @@ -156,7 +156,7 @@ def get(self, request, course_key_str, format=None): # lint-amnesty, pylint: di The CourseOutline, customized for a given user. TODO: Swagger docs of API. For an exemplar to imitate, see: - https://github.com/edx/edx-platform/blob/master/lms/djangoapps/program_enrollments/rest_api/v1/views.py#L792-L820 + https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/program_enrollments/rest_api/v1/views.py#L792-L820 """ # Translate input params and do course key validation (will cause HTTP # 400 error if an invalid CourseKey was entered, instead of 404). diff --git a/openedx/core/djangoapps/content_libraries/docs/decisions/0002-libraries-lti-provider.rst b/openedx/core/djangoapps/content_libraries/docs/decisions/0002-libraries-lti-provider.rst index 6f527db64995..df03671e9e53 100644 --- a/openedx/core/djangoapps/content_libraries/docs/decisions/0002-libraries-lti-provider.rst +++ b/openedx/core/djangoapps/content_libraries/docs/decisions/0002-libraries-lti-provider.rst @@ -26,10 +26,10 @@ The rest of the functionality would be similar to how the current LTI 1.1 provid .. _LTI NRPS: https://www.imsglobal.org/spec/lti-nrps/v2p0 .. _pylti1.3: https://github.com/dmitry-viskov/pylti1.3 .. _@dmitry-viskov: https://github.com/dmitry-viskov -.. _earlier PR: https://github.com/edx/edx-platform/pull/21435 +.. _earlier PR: https://github.com/openedx/edx-platform/pull/21435 .. _PyPi package: https://pypi.org/project/PyLTI1p3/ .. _my-learning-analytics: https://github.com/tl-its-umich-edu/my-learning-analytics -.. _NimbleWise (source): https://github.com/edx/edx-platform/pull/21435#issuecomment-664674601 +.. _NimbleWise (source): https://github.com/openedx/edx-platform/pull/21435#issuecomment-664674601 Consequences diff --git a/openedx/core/djangoapps/course_apps/docs/decisions/001-course-apps.rst b/openedx/core/djangoapps/course_apps/docs/decisions/001-course-apps.rst index dcc0e386afcb..1ee8555c6826 100644 --- a/openedx/core/djangoapps/course_apps/docs/decisions/001-course-apps.rst +++ b/openedx/core/djangoapps/course_apps/docs/decisions/001-course-apps.rst @@ -23,7 +23,7 @@ to automatically discover such apps and expose them via an API. This API will be used to list the installed apps that are available for a course and to enable/disable these apps using the API. -.. _Course Authoring MFE: https://github.com/edx/frontend-app-course-authoring/ +.. _Course Authoring MFE: https://github.com/openedx/frontend-app-course-authoring/ Decision @@ -40,7 +40,7 @@ need a common interface for such apps so they can be enabled/disabled using a standard common interface. To do this we can follow the example of existing plugins, [such as Course -Tabs](https://github.com/edx/edx-platform/blob/636b2ca4c5add531cfce755fdb8965599acd79e0/common/lib/xmodule/xmodule/tabs.py#L24-L243), +Tabs](https://github.com/openedx/edx-platform/blob/636b2ca4c5add531cfce755fdb8965599acd79e0/common/lib/xmodule/xmodule/tabs.py#L24-L243), which provide a specific Python class that the plugin can inherit from, or implement. The required metadata and features, can be implemented as class attributes, and methods on this class. @@ -48,7 +48,7 @@ attributes, and methods on this class. We can then discover the installed apps using the existing tooling for plugins using a subclass of PluginManager designed for this purpose. Here is an example for [Course -Tabs](https://github.com/edx/edx-platform/blob/636b2ca4c5add531cfce755fdb8965599acd79e0/openedx/core/lib/course_tabs.py#L13-L47) +Tabs](https://github.com/openedx/edx-platform/blob/636b2ca4c5add531cfce755fdb8965599acd79e0/openedx/core/lib/course_tabs.py#L13-L47) It might not always make sense for an app installed in this way to be automatically show up for use on all courses. So each app will expose a method @@ -62,7 +62,7 @@ In the context of these apps, we need to distinguish between *installed*, Let's look at an existing feature to explain those terms. The `edxnotes` app has [code that is part of the -platform](https://github.com/edx/edx-platform/tree/636b2ca4c5add531cfce755fdb8965599acd79e0/lms/djangoapps/edxnotes). +platform](https://github.com/openedx/edx-platform/tree/636b2ca4c5add531cfce755fdb8965599acd79e0/lms/djangoapps/edxnotes). This code comes preinstalled since it's part of the platform. So it is already *installed*, however no one can use it just yet, since it it needs to first be enabled globally. In the case of an external plugin, you consider it installed @@ -70,10 +70,10 @@ if it is `pip install`ed in the same environment in which edx-platform is running. To make the feature *available* for use, you need to now [enable a feature -flag](https://github.com/edx/edx-platform/blob/636b2ca4c5add531cfce755fdb8965599acd79e0/lms/envs/common.py#L531-L543). +flag](https://github.com/openedx/edx-platform/blob/636b2ca4c5add531cfce755fdb8965599acd79e0/lms/envs/common.py#L531-L543). Until this is set course authors/admins will [not even see the option of enabling this for their -course](https://github.com/edx/edx-platform/blob/636b2ca4c5add531cfce755fdb8965599acd79e0/cms/djangoapps/models/settings/course_metadata.py#L91-L93). +course](https://github.com/openedx/edx-platform/blob/636b2ca4c5add531cfce755fdb8965599acd79e0/cms/djangoapps/models/settings/course_metadata.py#L91-L93). For course apps this is where the availability check comes in. In the case of `edxnotes`, after setting the above feature flag, an option will diff --git a/openedx/core/djangoapps/course_live/docs/decisions/001-course-live.rst b/openedx/core/djangoapps/course_live/docs/decisions/001-course-live.rst index 230504ce59ce..27ee3b488482 100644 --- a/openedx/core/djangoapps/course_live/docs/decisions/001-course-live.rst +++ b/openedx/core/djangoapps/course_live/docs/decisions/001-course-live.rst @@ -20,7 +20,7 @@ The tool will be added as an LTI integration. We will currently support only added later. -.. _Course Authoring MFE: https://github.com/edx/frontend-app-course-authoring/ +.. _Course Authoring MFE: https://github.com/openedx/frontend-app-course-authoring/ Decision diff --git a/openedx/core/djangoapps/enrollments/views.py b/openedx/core/djangoapps/enrollments/views.py index 01d4b58d6229..ffd883667f60 100644 --- a/openedx/core/djangoapps/enrollments/views.py +++ b/openedx/core/djangoapps/enrollments/views.py @@ -91,7 +91,7 @@ def has_api_key_permissions(self, request): class EnrollmentUserThrottle(UserRateThrottle, ApiKeyPermissionMixIn): """Limit the number of requests users can make to the enrollment API.""" - # To see how the staff rate limit was selected, see https://github.com/edx/edx-platform/pull/18360 + # To see how the staff rate limit was selected, see https://github.com/openedx/edx-platform/pull/18360 THROTTLE_RATES = { 'user': '40/minute', 'staff': '120/minute', diff --git a/openedx/core/djangoapps/external_user_ids/docs/decisions/0001-externalid.rst b/openedx/core/djangoapps/external_user_ids/docs/decisions/0001-externalid.rst index 5f24189ec3fd..5ad889e65c8f 100644 --- a/openedx/core/djangoapps/external_user_ids/docs/decisions/0001-externalid.rst +++ b/openedx/core/djangoapps/external_user_ids/docs/decisions/0001-externalid.rst @@ -47,10 +47,10 @@ References ---------- Model definition -- https://github.com/edx/edx-platform/blob/a5ec801a2a91f928bf582ee9ba2092a5bfbe7d7e/openedx/core/djangoapps/external_user_ids/models.py#L17 +- https://github.com/openedx/edx-platform/blob/a5ec801a2a91f928bf582ee9ba2092a5bfbe7d7e/openedx/core/djangoapps/external_user_ids/models.py#L17 Anonymous User ID Table -- https://github.com/edx/edx-platform/blob/6ee2089077b76581e14f230f0c9224757dbdb652/common/djangoapps/student/models.py#L130-L140 +- https://github.com/openedx/edx-platform/blob/6ee2089077b76581e14f230f0c9224757dbdb652/common/djangoapps/student/models.py#L130-L140 Some notes on why add a type table - https://www.itprotoday.com/sql-server/trouble-type-tables diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/README.rst b/openedx/core/djangoapps/oauth_dispatch/docs/README.rst index a81be5fba76a..6aa9e344dc96 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/README.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/README.rst @@ -27,10 +27,10 @@ Provider code * The JwtBuilder_ uses the pyjwkest_ library for implementation of `JSON Web Signature (JWS)`_ and other crypto to build and sign JWT tokens. -.. _oauth_dispatch: https://github.com/edx/edx-platform/tree/master/openedx/core/djangoapps/oauth_dispatch -.. _validator module: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/dot_overrides/validators.py -.. _Access Token View: https://github.com/edx/edx-platform/blob/d21a09828072504bc97a2e05883c1241e3a35da9/openedx/core/djangoapps/oauth_dispatch/views.py#L89 -.. _JwtBuilder: https://github.com/edx/edx-platform/blob/d21a09828072504bc97a2e05883c1241e3a35da9/openedx/core/lib/token_utils.py#L15 +.. _oauth_dispatch: https://github.com/openedx/edx-platform/tree/master/openedx/core/djangoapps/oauth_dispatch +.. _validator module: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/dot_overrides/validators.py +.. _Access Token View: https://github.com/openedx/edx-platform/blob/d21a09828072504bc97a2e05883c1241e3a35da9/openedx/core/djangoapps/oauth_dispatch/views.py#L89 +.. _JwtBuilder: https://github.com/openedx/edx-platform/blob/d21a09828072504bc97a2e05883c1241e3a35da9/openedx/core/lib/token_utils.py#L15 .. _pyjwkest: https://github.com/IdentityPython/pyjwkest .. _JSON Web Signature (JWS): https://tools.ietf.org/html/draft-ietf-jose-json-web-signature-41 @@ -47,4 +47,4 @@ Authentication by REST endpoints * Open edX REST endpoints that support JWTs as access tokens use JwtAuthentication_ as implemented by the edx-drf-extensions library. .. _Django Rest Framework (DRF): https://github.com/encode/django-rest-framework -.. _JwtAuthentication: https://github.com/edx/edx-drf-extensions/blob/master/edx_rest_framework_extensions/auth/jwt/README.rst +.. _JwtAuthentication: https://github.com/openedx/edx-drf-extensions/blob/master/edx_rest_framework_extensions/auth/jwt/README.rst diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0006-enforce-scopes-in-LMS-APIs.rst b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0006-enforce-scopes-in-LMS-APIs.rst index 547d8a7427a1..57b6a102983c 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0006-enforce-scopes-in-LMS-APIs.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0006-enforce-scopes-in-LMS-APIs.rst @@ -91,10 +91,10 @@ unprotected microservices. * a `feature toggle (switch)`_ named "oauth2.enforce_jwt_scopes" is enabled. * **Note:** the toggle has since been retired with the equivalent of ``enforce_jwt_scopes`` value of True. -.. _edx-platform settings: https://github.com/edx/edx-platform/blob/master/lms/envs/docs/README.rst -.. _JwtBuilder: https://github.com/edx/edx-platform/blob/d3d64970c36f36a96d684571ec5b48ed645618d8/openedx/core/lib/token_utils.py#L15 -.. _oauth_dispatch.views.AccessTokenView.dispatch: https://github.com/edx/edx-platform/blob/d21a09828072504bc97a2e05883c1241e3a35da9/openedx/core/djangoapps/oauth_dispatch/views.py#L100 -.. _oauth_dispatch.validators: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/dot_overrides/validators.py +.. _edx-platform settings: https://github.com/openedx/edx-platform/blob/master/lms/envs/docs/README.rst +.. _JwtBuilder: https://github.com/openedx/edx-platform/blob/d3d64970c36f36a96d684571ec5b48ed645618d8/openedx/core/lib/token_utils.py#L15 +.. _oauth_dispatch.views.AccessTokenView.dispatch: https://github.com/openedx/edx-platform/blob/d21a09828072504bc97a2e05883c1241e3a35da9/openedx/core/djangoapps/oauth_dispatch/views.py#L100 +.. _oauth_dispatch.validators: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/dot_overrides/validators.py 4. Associate Available Scopes with Applications ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -189,7 +189,7 @@ See 0007-include-organizations-in-tokens_ for decisions on this. .. _function-based Django views: https://docs.djangoproject.com/en/2.0/topics/http/views/ .. _Django Rest Framework (DRF): http://www.django-rest-framework.org/ .. _Python decorator: http://www.django-rest-framework.org/tutorial/2-requests-and-responses/#wrapping-api-views -.. _JwtAuthentication: https://github.com/edx/edx-drf-extensions/blob/4569b9bf7e54a917d4acdd545b10c058c960dd1a/edx_rest_framework_extensions/auth/jwt/authentication.py#L17 +.. _JwtAuthentication: https://github.com/openedx/edx-drf-extensions/blob/4569b9bf7e54a917d4acdd545b10c058c960dd1a/edx_rest_framework_extensions/auth/jwt/authentication.py#L17 Consequences diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0007-include-organizations-in-tokens.rst b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0007-include-organizations-in-tokens.rst index 5f3e4d181c07..83436bb0ac28 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0007-include-organizations-in-tokens.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0007-include-organizations-in-tokens.rst @@ -119,8 +119,8 @@ organization information to the granting end-user. values returned in their payloads by the specified filters. .. _0006-enforce-scopes-in-LMS-APIs: 0006-enforce-scopes-in-LMS-APIs.rst -.. _Organization: https://github.com/edx/edx-organizations/blob/fa137881be9b7d330062bc32655a00c68635cfed/organizations/models.py#L14 -.. _JwtBuilder: https://github.com/edx/edx-platform/blob/d3d64970c36f36a96d684571ec5b48ed645618d8/openedx/core/lib/token_utils.py#L15 +.. _Organization: https://github.com/openedx/edx-organizations/blob/fa137881be9b7d330062bc32655a00c68635cfed/organizations/models.py#L14 +.. _JwtBuilder: https://github.com/openedx/edx-platform/blob/d3d64970c36f36a96d684571ec5b48ed645618d8/openedx/core/lib/token_utils.py#L15 3. Organization Information in Authorization Approval Form ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst index 6e66e6ebe6f7..198ac45c1658 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst @@ -23,14 +23,14 @@ But to verify that the JWT was created by the OAuth Provider, the client should sent along with the JWT. Since the secret is "symmetric" any OAuth Client that is privy to the secret could also have just as easily created the JWT (thus spoofing the OAuth Provider). -.. _`Use JWT as OAuth2 Tokens; Remove OpenID Connect`: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0003-use-jwt-as-oauth-tokens-remove-openid-connect.rst +.. _`Use JWT as OAuth2 Tokens; Remove OpenID Connect`: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0003-use-jwt-as-oauth-tokens-remove-openid-connect.rst Additionally, for clients that still use Open ID Connect, their `ID Tokens are HMACed with their own client_secret`_ (privately shared with the OAuth Provider). Although this somewhat mitigates the issue above since each OAuth Client can no longer create tokens verifiable by other Clients, it does not allow a Client to forward a verifiable token to other Clients. -.. _ID Tokens are HMACed with their own client_secret: https://github.com/edx/edx-oauth2-provider/blob/7e59e30ae0bfd9eac4d05469768d79c50a90aeb7/edx_oauth2_provider/views.py#L155-L163 +.. _ID Tokens are HMACed with their own client_secret: https://github.com/openedx/edx-oauth2-provider/blob/7e59e30ae0bfd9eac4d05469768d79c50a90aeb7/edx_oauth2_provider/views.py#L155-L163 Looking forward, we want to support Single Page Apps (a.k.a., Microfronteds), where users can seamlessly traverse from one microfronted to another and access APIs on various backends. This *Single Sign On* @@ -75,11 +75,11 @@ Additionally, **JWT_ISSUERS** is not intended to be used for key rotation. Rathe keys should be specified as a `JSON Web Key Set (JWK Set)`_ instead. Thus, there would only be a single issuer, but with (the potential of) multiple signing keys stored in a JWT Set. -.. _edx_rest_framework_extensions.settings: https://github.com/edx/edx-drf-extensions/blob/1db9f5e3e5130a1e0f43af2035489b3ed916d245/edx_rest_framework_extensions/settings.py#L73 +.. _edx_rest_framework_extensions.settings: https://github.com/openedx/edx-drf-extensions/blob/1db9f5e3e5130a1e0f43af2035489b3ed916d245/edx_rest_framework_extensions/settings.py#L73 .. _JWT standard: https://tools.ietf.org/html/rfc7519 .. _issuer: https://tools.ietf.org/html/rfc7519#section-4.1.1 .. _JSON Web Key Set (JWK Set): https://tools.ietf.org/html/draft-ietf-jose-json-web-key-36#section-5 -.. _site configuration: https://github.com/edx/edx-platform/blob/af841336c7e39d634c238cd8a11c5a3a661aa9e2/openedx/core/djangoapps/site_configuration/__init__.py +.. _site configuration: https://github.com/openedx/edx-platform/blob/af841336c7e39d634c238cd8a11c5a3a661aa9e2/openedx/core/djangoapps/site_configuration/__init__.py Example Code ------------ diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0009-jwt-in-session-cookie.rst b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0009-jwt-in-session-cookie.rst index dc949cf70eb7..3ada2210a8ea 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0009-jwt-in-session-cookie.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0009-jwt-in-session-cookie.rst @@ -33,8 +33,8 @@ believe any decisions in this record will neither affect the current authenticat apps nor impact forward compatibility when/if mobile apps are consolidated to use a similar (if not the same) authentication mechanism as outlined here for web apps. -.. _Use JWT as OAuth2 Tokens: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0003-use-jwt-as-oauth-tokens-remove-openid-connect.rst -.. _Use Asymmetric JWTs: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst +.. _Use JWT as OAuth2 Tokens: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0003-use-jwt-as-oauth-tokens-remove-openid-connect.rst +.. _Use Asymmetric JWTs: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst .. _Decoupled Frontend Architecture: https://openedx.atlassian.net/wiki/spaces/FEDX/pages/790692200/Decoupled+Frontend+Architecture .. _microfrontend: https://micro-frontends.org/ @@ -92,8 +92,8 @@ Login -> Cookie -> API .. _JWT_AUTH_COOKIE: https://github.com/GetBlimp/django-rest-framework-jwt/blob/master/docs/index.md#jwt_auth_cookie .. _JSONWebTokenAuthentication: https://github.com/GetBlimp/django-rest-framework-jwt/blob/0a0bd402ec21fd6b9a5f715d114411836fbb2923/rest_framework_jwt/authentication.py#L71 .. _automatically extracts the JWT from the cookie: https://github.com/GetBlimp/django-rest-framework-jwt/blob/0a0bd402ec21fd6b9a5f715d114411836fbb2923/rest_framework_jwt/authentication.py#L86-L87 -.. _JwtRedirectToLoginIfUnauthenticatedMiddleware: https://github.com/edx/edx-drf-extensions/blob/0351010f1836e4cebd6bdc757d477b2f56265b17/edx_rest_framework_extensions/auth/jwt/middleware.py#L76 -.. _LoginRedirectIfUnauthenticated: https://github.com/edx/edx-drf-extensions/blob/0351010f1836e4cebd6bdc757d477b2f56265b17/edx_rest_framework_extensions/permissions.py#L147 +.. _JwtRedirectToLoginIfUnauthenticatedMiddleware: https://github.com/openedx/edx-drf-extensions/blob/0351010f1836e4cebd6bdc757d477b2f56265b17/edx_rest_framework_extensions/auth/jwt/middleware.py#L76 +.. _LoginRedirectIfUnauthenticated: https://github.com/openedx/edx-drf-extensions/blob/0351010f1836e4cebd6bdc757d477b2f56265b17/edx_rest_framework_extensions/permissions.py#L147 JWT Cookie Lifetime @@ -124,7 +124,7 @@ JWT Cookie Lifetime which will remove them from the user's browser cookie jar. Thus, the user will be logged out of all the microfrontends. -.. _`current open edX session cookies that may have no expiration`: https://github.com/edx/edx-platform/blob/92030ea15216a6641c83dd7bb38a9b65112bf31a/common/djangoapps/student/cookies.py#L25-L27 +.. _`current open edX session cookies that may have no expiration`: https://github.com/openedx/edx-platform/blob/92030ea15216a6641c83dd7bb38a9b65112bf31a/common/djangoapps/student/cookies.py#L25-L27 .. _JWT blacklist: https://auth0.com/blog/blacklist-json-web-token-api-keys/ .. _`JWT ID (jti)`: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#jtiDef @@ -148,7 +148,7 @@ JWT Cookie Content .. _HTTP Cookie RFC standard: https://tools.ietf.org/html/rfc6265 .. _up to 4096 bytes: https://tools.ietf.org/html/rfc6265#section-6.1 .. _Modern browsers have treated this requirement as a maximum: http://browsercookielimits.squawky.net/ -.. _currently embedded in the JWT: https://github.com/edx/edx-platform/blob/92030ea15216a6641c83dd7bb38a9b65112bf31a/openedx/core/lib/token_utils.py#L13 +.. _currently embedded in the JWT: https://github.com/openedx/edx-platform/blob/92030ea15216a6641c83dd7bb38a9b65112bf31a/openedx/core/lib/token_utils.py#L13 JWT Cookie Security @@ -208,7 +208,7 @@ Consequences .. _at least 4096 bytes: http://browsercookielimits.squawky.net/ .. _JWT sessionStorage and localStorage Security: https://stormpath. com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage#so-whats-the-difference -.. _JS-accessible user-info cookie: https://github.com/edx/edx-platform/blob/70d1ca474012b89e4c7184d25499eb87b3135409/common/djangoapps/student/cookies.py#L151 +.. _JS-accessible user-info cookie: https://github.com/openedx/edx-platform/blob/70d1ca474012b89e4c7184d25499eb87b3135409/common/djangoapps/student/cookies.py#L151 References ---------- diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0010-csrf-protection.rst b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0010-csrf-protection.rst index 95ad71aeb771..5782313b384b 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0010-csrf-protection.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0010-csrf-protection.rst @@ -23,7 +23,7 @@ Each backend service uses a unique SECRET_KEY to produce the CSRF token, so a CS be valid for another service. Therefore, frontend apps served by different subdomains will not have access to these CSRF token cookies. -.. _Transport JWT in HTTP Cookies: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0009-jwt-in-session-cookie.rst +.. _Transport JWT in HTTP Cookies: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0009-jwt-in-session-cookie.rst .. _Django CSRF Protection: https://docs.djangoproject.com/en/2.1/ref/csrf/ Decisions @@ -43,8 +43,8 @@ Decisions Endpoint described above to obtain a valid CSRF token for the given backend service for which a request is being made. -.. _edx-drf-extensions: https://github.com/edx/edx-drf-extensions -.. _@edx/frontend-auth: https://github.com/edx/frontend-auth +.. _edx-drf-extensions: https://github.com/openedx/edx-drf-extensions +.. _@edx/frontend-auth: https://github.com/openedx/frontend-auth Rejected Alternatives --------------------- diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0011-scope-filter-support.rst b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0011-scope-filter-support.rst index ad33460705b9..05fa3fdcf37e 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0011-scope-filter-support.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0011-scope-filter-support.rst @@ -48,6 +48,6 @@ This would result in a JWT that contains the following, assuming these two scope Note: Every JWT access token created using a given OAuth Application will include **all filters** defined for that application. This was also true as of the initial introduction of filters. -.. _EdxOAuth2AuthorizationView: https://github.com/edx/edx-platform/blob/9cf2f9f298e5e8be3b3abcaadaf0b7a96d0de0df/openedx/core/djangoapps/oauth_dispatch/dot_overrides/views.py#L16 +.. _EdxOAuth2AuthorizationView: https://github.com/openedx/edx-platform/blob/9cf2f9f298e5e8be3b3abcaadaf0b7a96d0de0df/openedx/core/djangoapps/oauth_dispatch/dot_overrides/views.py#L16 .. _BOM-1291: https://openedx.atlassian.net/browse/BOM-1291 .. _Transport JWT in HTTP Cookies: 0007-include-organizations-in-tokens.rst diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0012-scope-and-filter-for-third-party-auth.rst b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0012-scope-and-filter-for-third-party-auth.rst index 5fdb7933ec96..d00cf87bbd0d 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0012-scope-and-filter-for-third-party-auth.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0012-scope-and-filter-for-third-party-auth.rst @@ -34,7 +34,7 @@ The scope can be protected using the already existing `JwtHasScope`_ DRF permiss The new filter permission class, ``JwtHasTpaProviderFilterForRequestedProvider``, will be implemented in edx-platform to start because it is only used by an edx-platform view, ``UserMappingView``. Additionally, the permission class is used in conjunction with other legacy permissions and it is simpler to keep all the tests together. .. _More General Scope Filter Support: 0011-scope-filter-support.rst -.. _JwtHasScope: https://github.com/edx/edx-drf-extensions/blob/64f831d715d14dc2db5a1046201ff14e92fa7c9f/edx_rest_framework_extensions/permissions.py#L70 +.. _JwtHasScope: https://github.com/openedx/edx-drf-extensions/blob/64f831d715d14dc2db5a1046201ff14e92fa7c9f/edx_rest_framework_extensions/permissions.py#L70 Consequences ------------ @@ -43,4 +43,4 @@ Consequences * The complicated method of handling compound permissions, like `JWT_RESTRICTED_APPLICATION_OR_USER_ACCESS`_ from edx-drf-extensions, needs to be duplicated in edx-platform to properly handle Restricted Applications and ``JwtHasTpaProviderFilterForRequestedProvider``. Simplifying this design is being left to a later decision. -.. _JWT_RESTRICTED_APPLICATION_OR_USER_ACCESS: https://github.com/edx/edx-drf-extensions/blob/64f831d715d14dc2db5a1046201ff14e92fa7c9f/edx_rest_framework_extensions/permissions.py#L171 +.. _JWT_RESTRICTED_APPLICATION_OR_USER_ACCESS: https://github.com/openedx/edx-drf-extensions/blob/64f831d715d14dc2db5a1046201ff14e92fa7c9f/edx_rest_framework_extensions/permissions.py#L171 diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0013-mobile-migration-to-jwt.rst b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0013-mobile-migration-to-jwt.rst index 8ee297ff8c48..ecc0747e1f09 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0013-mobile-migration-to-jwt.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0013-mobile-migration-to-jwt.rst @@ -58,4 +58,4 @@ For migrating the mobile authentication flow from opaque Bearer access tokens to * We need to check if the JWT was asymmetrically signed by the LMS. We want to ensure that a symmetrically signed JWT, created (signed) by another IDA, could not be compromised and used by an attacker to exchange for a session cookie, which would allow for full compromise of the user. * Implementation will involve adding a method to ``edx-drf-extensions`` like ``get_decoded_jwt_from_auth``, but that will decode only asymmetric JWTs. -.. _ADR to add grant type in JWT payload: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0014-add-grant-type-in-jwt-payload.rst +.. _ADR to add grant type in JWT payload: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0014-add-grant-type-in-jwt-payload.rst diff --git a/openedx/core/djangoapps/oauth_dispatch/docs/how_tos/testing_manually.rst b/openedx/core/djangoapps/oauth_dispatch/docs/how_tos/testing_manually.rst index 038d00b820c8..8d275232abe2 100644 --- a/openedx/core/djangoapps/oauth_dispatch/docs/how_tos/testing_manually.rst +++ b/openedx/core/djangoapps/oauth_dispatch/docs/how_tos/testing_manually.rst @@ -120,5 +120,5 @@ to test other grant types if they are substituted in the appropriate places. .. _OAuth2 standard: https://tools.ietf.org/html/rfc6749 .. _Google's OAuth2 Playground: https://developers.google.com/oauthplayground .. _Authorization Code grant type: https://tools.ietf.org/html/rfc6749#section-4.1 -.. _Restricted Application: https://github.com/edx/edx-platform/blob/dd136b457bc8a25892445fc4362ce02838179472/openedx/core/djangoapps/oauth_dispatch/models.py#L12 +.. _Restricted Application: https://github.com/openedx/edx-platform/blob/dd136b457bc8a25892445fc4362ce02838179472/openedx/core/djangoapps/oauth_dispatch/models.py#L12 .. _localtunnel: https://localtunnel.github.io/www/ diff --git a/openedx/core/djangoapps/oauth_dispatch/management/commands/generate_jwt_signing_key.py b/openedx/core/djangoapps/oauth_dispatch/management/commands/generate_jwt_signing_key.py index 944eec839a51..cca094bf8228 100644 --- a/openedx/core/djangoapps/oauth_dispatch/management/commands/generate_jwt_signing_key.py +++ b/openedx/core/djangoapps/oauth_dispatch/management/commands/generate_jwt_signing_key.py @@ -35,7 +35,7 @@ class Command(BaseCommand): length 'key-id-size' (unless you explicitly provide a "kid" of your own via the 'key-id' option). - See https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst + See https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst ''' def create_parser(self, *args, **kwargs): # pylint: disable=arguments-differ @@ -144,7 +144,7 @@ def _output_public_keys(self, jwk_key, add_previous, strip_prefix): print(" # The following is the string representation of a JSON Web Key Set (JWK set)") print(" # containing all active public keys for verifying JWT signatures.") print( - " # See https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/" + " # See https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/" "docs/decisions/0008-use-asymmetric-jwts.rst" ) print(" ") @@ -172,7 +172,7 @@ def _output_private_keys(self, jwk_key, strip_prefix): print(" # The following is the string representation of a JSON Web Key (JWK)") print(" # containing the single active private key for signing JSON Web Tokens (JWTs).") print( - " # See https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/" + " # See https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/" "docs/decisions/0008-use-asymmetric-jwts.rst" ) print(" ") diff --git a/openedx/core/djangoapps/oauth_dispatch/migrations/0009_delete_enable_scopes_waffle_switch.py b/openedx/core/djangoapps/oauth_dispatch/migrations/0009_delete_enable_scopes_waffle_switch.py index bd4cef97b166..da841ad0392a 100644 --- a/openedx/core/djangoapps/oauth_dispatch/migrations/0009_delete_enable_scopes_waffle_switch.py +++ b/openedx/core/djangoapps/oauth_dispatch/migrations/0009_delete_enable_scopes_waffle_switch.py @@ -3,7 +3,7 @@ """ Deletes the ENFORCE_JWT_SCOPES waffle switch that has already been deprecated and removed. -See https://github.com/edx/edx-platform/pull/23188 for the removal +See https://github.com/openedx/edx-platform/pull/23188 for the removal """ from django.db import migrations diff --git a/openedx/core/djangoapps/olx_rest_api/apps.py b/openedx/core/djangoapps/olx_rest_api/apps.py index 0aa921017c99..e5c67d751d7d 100644 --- a/openedx/core/djangoapps/olx_rest_api/apps.py +++ b/openedx/core/djangoapps/olx_rest_api/apps.py @@ -10,7 +10,7 @@ class OlxRestApiAppConfig(AppConfig): """ Configuration for the olx_rest_api Django plugin application. - See: https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/plugins/README.rst + See: https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/plugins/README.rst """ name = 'openedx.core.djangoapps.olx_rest_api' diff --git a/openedx/core/djangoapps/plugins/README.rst b/openedx/core/djangoapps/plugins/README.rst index 74269d69e920..27f6bdfc4293 100644 --- a/openedx/core/djangoapps/plugins/README.rst +++ b/openedx/core/djangoapps/plugins/README.rst @@ -5,4 +5,4 @@ This app provides edx-platform specific constants and support for the Django Plu It enables you to add a plugin to LMS or CMS, including ensuring Django signals work correctly between edx-platform and installed plugins. -.. _edx_django_utils/plugins: https://github.com/edx/edx-django-utils/tree/master/edx_django_utils/plugins \ No newline at end of file +.. _edx_django_utils/plugins: https://github.com/openedx/edx-django-utils/tree/master/edx_django_utils/plugins \ No newline at end of file diff --git a/openedx/core/djangoapps/plugins/constants.py b/openedx/core/djangoapps/plugins/constants.py index d7e2c1b22237..17f559b103d5 100644 --- a/openedx/core/djangoapps/plugins/constants.py +++ b/openedx/core/djangoapps/plugins/constants.py @@ -29,7 +29,7 @@ class SettingsType(): values (in addition to ProjectType) to declare explicitly which settings (in the specified project) they are extending. - See https://github.com/edx/edx-platform/master/lms/envs/docs/README.rst for + See https://github.com/openedx/edx-platform/master/lms/envs/docs/README.rst for further information on each Settings Type. """ diff --git a/openedx/core/djangoapps/plugins/docs/decisions/0002-extract-plugins-infrastructure.rst b/openedx/core/djangoapps/plugins/docs/decisions/0002-extract-plugins-infrastructure.rst index 593249dab4ad..af3607943c1f 100644 --- a/openedx/core/djangoapps/plugins/docs/decisions/0002-extract-plugins-infrastructure.rst +++ b/openedx/core/djangoapps/plugins/docs/decisions/0002-extract-plugins-infrastructure.rst @@ -12,4 +12,4 @@ Decision It was decided to extract this plugin infrastructure to make it reusable. More info on this extraction can be found in `extraction decision doc`_ in edx-django-utils repository. -.. _extraction decision doc: https://github.com/edx/edx-django-utils/blob/master/docs/decisions/0002-extract-plugins-infrastructure-from-edx-platform.rst \ No newline at end of file +.. _extraction decision doc: https://github.com/openedx/edx-django-utils/blob/master/docs/decisions/0002-extract-plugins-infrastructure-from-edx-platform.rst \ No newline at end of file diff --git a/openedx/core/djangoapps/safe_sessions/middleware.py b/openedx/core/djangoapps/safe_sessions/middleware.py index e5b36000a4cf..5f4449d93c42 100644 --- a/openedx/core/djangoapps/safe_sessions/middleware.py +++ b/openedx/core/djangoapps/safe_sessions/middleware.py @@ -123,7 +123,7 @@ # .. toggle_warning: Logging headers of subsequent requests following a mismatch will only work if # LOG_REQUEST_USER_CHANGES is enabled and ENFORCE_SAFE_SESSIONS is disabled; otherwise, only headers of the inital # mismatch will be logged. Also, SAFE_SESSIONS_DEBUG_PUBLIC_KEY must be set. See -# https://github.com/edx/edx-platform/blob/master/common/djangoapps/util/log_sensitive.py +# https://github.com/openedx/edx-platform/blob/master/common/djangoapps/util/log_sensitive.py # for instructions. # .. toggle_use_cases: opt_in # .. toggle_creation_date: 2021-12-22 diff --git a/openedx/core/djangoapps/user_api/partition_schemes.py b/openedx/core/djangoapps/user_api/partition_schemes.py index d58c91e549b7..caa305387ac5 100644 --- a/openedx/core/djangoapps/user_api/partition_schemes.py +++ b/openedx/core/djangoapps/user_api/partition_schemes.py @@ -38,7 +38,7 @@ class ReturnGroup1PartitionScheme: def get_group_for_user(cls, course_key, user, user_partition, assign=True): # pylint: disable=unused-argument """ The previous "allow" definition for verification was defined as 1, so return that. - Details at https://github.com/edx/edx-platform/pull/14913/files#diff-feff1466ec4d1b8c38894310d8342a80 + Details at https://github.com/openedx/edx-platform/pull/14913/files#diff-feff1466ec4d1b8c38894310d8342a80 """ return user_partition.get_group(1) diff --git a/openedx/core/djangoapps/user_authn/cookies.py b/openedx/core/djangoapps/user_authn/cookies.py index c430fdc27824..d56958b808a0 100644 --- a/openedx/core/djangoapps/user_authn/cookies.py +++ b/openedx/core/djangoapps/user_authn/cookies.py @@ -286,7 +286,7 @@ def _create_and_set_jwt_cookies(response, request, cookie_settings, user=None): # Skip setting JWT cookies for most unit tests, since it raises errors when # a login oauth client cannot be found in the database in ``_get_login_oauth_client``. - # This solution is not ideal, but see https://github.com/edx/edx-platform/pull/19180#issue-226706355 + # This solution is not ideal, but see https://github.com/openedx/edx-platform/pull/19180#issue-226706355 # for a discussion of alternative solutions that did not work or were halted. if settings.FEATURES.get('DISABLE_SET_JWT_COOKIES_FOR_TESTS', False): return diff --git a/openedx/core/djangoapps/util/waffle.py b/openedx/core/djangoapps/util/waffle.py index 6c7402a01618..0528724de361 100644 --- a/openedx/core/djangoapps/util/waffle.py +++ b/openedx/core/djangoapps/util/waffle.py @@ -11,7 +11,7 @@ # .. toggle_description: Displays the maintenance warning, when active. # .. toggle_use_cases: opt_in # .. toggle_creation_date: 2018-03-20 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/17735 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/17735 DISPLAY_MAINTENANCE_WARNING = WaffleSwitch( 'open_edx_util.display_maintenance_warning', __name__ ) diff --git a/openedx/core/djangoapps/video_config/models.py b/openedx/core/djangoapps/video_config/models.py index 0a2c3c8dade4..9ea7f8f44d2d 100644 --- a/openedx/core/djangoapps/video_config/models.py +++ b/openedx/core/djangoapps/video_config/models.py @@ -27,7 +27,7 @@ class HLSPlaybackEnabledFlag(ConfigurationModel): .. toggle_description: Add the "hls" profile to all displayed videos on the platform. .. toggle_use_cases: open_edx .. toggle_creation_date: 2017-04-19 - .. toggle_tickets: https://github.com/edx/edx-platform/pull/14924 + .. toggle_tickets: https://github.com/openedx/edx-platform/pull/14924 """ # this field overrides course-specific settings enabled_for_all_courses = BooleanField(default=False) @@ -76,7 +76,7 @@ class CourseHLSPlaybackEnabledFlag(ConfigurationModel): .. toggle_description: Add the "hls" profile to all displayed videos for a single course. .. toggle_use_cases: open_edx .. toggle_creation_date: 2017-04-19 - .. toggle_tickets: https://github.com/edx/edx-platform/pull/14924 + .. toggle_tickets: https://github.com/openedx/edx-platform/pull/14924 """ KEY_FIELDS = ('course_id',) diff --git a/openedx/core/djangoapps/video_pipeline/config/waffle.py b/openedx/core/djangoapps/video_pipeline/config/waffle.py index 15c4933797f5..fb11634b23ea 100644 --- a/openedx/core/djangoapps/video_pipeline/config/waffle.py +++ b/openedx/core/djangoapps/video_pipeline/config/waffle.py @@ -18,7 +18,7 @@ # to YouTube as part of the video pipeline. # .. toggle_use_cases: open_edx # .. toggle_creation_date: 2018-08-03 -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/18765 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/18765 DEPRECATE_YOUTUBE = CourseWaffleFlag(f'{WAFFLE_NAMESPACE}.deprecate_youtube', __name__, LOG_PREFIX) # .. toggle_name: videos.enable_devstack_video_uploads @@ -31,7 +31,7 @@ # .. toggle_creation_date: 2020-03-12 # .. toggle_warning: Enabling this feature requires that the ROLE_ARN, MFA_SERIAL_NUMBER, MFA_TOKEN settings are # properly defined. -# .. toggle_tickets: https://github.com/edx/edx-platform/pull/23375 +# .. toggle_tickets: https://github.com/openedx/edx-platform/pull/23375 ENABLE_DEVSTACK_VIDEO_UPLOADS = WaffleFlag(f'{WAFFLE_NAMESPACE}.enable_devstack_video_uploads', __name__, LOG_PREFIX) ENABLE_VEM_PIPELINE = CourseWaffleFlag( # lint-amnesty, pylint: disable=toggle-missing-annotation diff --git a/openedx/core/djangoapps/video_pipeline/models.py b/openedx/core/djangoapps/video_pipeline/models.py index d58a958eb16a..1e21c19feef3 100644 --- a/openedx/core/djangoapps/video_pipeline/models.py +++ b/openedx/core/djangoapps/video_pipeline/models.py @@ -23,7 +23,7 @@ class VEMPipelineIntegration(ConfigurationModel): video pipeline. .. toggle_use_cases: open_edx .. toggle_creation_date: 2020-06-04 - .. toggle_tickets: https://github.com/edx/edx-platform/pull/24093 + .. toggle_tickets: https://github.com/openedx/edx-platform/pull/24093 """ client_name = models.CharField( max_length=100, @@ -64,7 +64,7 @@ class VideoUploadsEnabledByDefault(ConfigurationModel): enables the "Video Uploads" menu in the CMS. .. toggle_use_cases: open_edx .. toggle_creation_date: 2017-11-10 - .. toggle_tickets: https://github.com/edx/edx-platform/pull/16536 + .. toggle_tickets: https://github.com/openedx/edx-platform/pull/16536 """ # this field overrides course-specific settings enabled_for_all_courses = models.BooleanField(default=False) @@ -114,7 +114,7 @@ class CourseVideoUploadsEnabledByDefault(ConfigurationModel): "Video Uploads" menu in the CMS. .. toggle_use_cases: open_edx .. toggle_creation_date: 2017-11-10 - .. toggle_tickets: https://github.com/edx/edx-platform/pull/16536 + .. toggle_tickets: https://github.com/openedx/edx-platform/pull/16536 """ KEY_FIELDS = ('course_id',) diff --git a/openedx/core/djangoapps/waffle_utils/docs/decisions/0002-waffle-utils-extraction.rst b/openedx/core/djangoapps/waffle_utils/docs/decisions/0002-waffle-utils-extraction.rst index 9674ef94f556..a7185d1f643c 100644 --- a/openedx/core/djangoapps/waffle_utils/docs/decisions/0002-waffle-utils-extraction.rst +++ b/openedx/core/djangoapps/waffle_utils/docs/decisions/0002-waffle-utils-extraction.rst @@ -16,7 +16,7 @@ Decision These utilities will be be moved to `edx/edx-toggles`_ so that they can be used by other IDAs. Additionally, the shared library will use the module name ``toggles``, rather than ``waffle_utils``, so it can more generally include non-waffle based toggle utilities as well. -.. _edx/edx-toggles: https://github.com/edx/edx-toggles +.. _edx/edx-toggles: https://github.com/openedx/edx-toggles Consequences ============ @@ -31,5 +31,5 @@ Consequences * The helper `get_instance_module_name`_ should probably move to `edx_django_utils/monitoring/code_owner`_. It could be considered hacky, but is quite useful. It needs to work whether the class definition is in a library or an IDA, and whether the instance declaration is in a library or an IDA. -.. _get_instance_module_name: https://github.com/edx/edx-platform/blob/a8c3413a32510dc45301d0c462bf706a5f7ba487/openedx/core/djangoapps/waffle_utils/__init__.py#L521 -.. _edx_django_utils/monitoring/code_owner: https://github.com/edx/edx-django-utils/tree/master/edx_django_utils/monitoring/code_owner +.. _get_instance_module_name: https://github.com/openedx/edx-platform/blob/a8c3413a32510dc45301d0c462bf706a5f7ba487/openedx/core/djangoapps/waffle_utils/__init__.py#L521 +.. _edx_django_utils/monitoring/code_owner: https://github.com/openedx/edx-django-utils/tree/master/edx_django_utils/monitoring/code_owner diff --git a/openedx/core/djangoapps/waffle_utils/docs/decisions/0004-waffle-util-namespacing.rst b/openedx/core/djangoapps/waffle_utils/docs/decisions/0004-waffle-util-namespacing.rst index d430ba1f4782..3d3cb00224f6 100644 --- a/openedx/core/djangoapps/waffle_utils/docs/decisions/0004-waffle-util-namespacing.rst +++ b/openedx/core/djangoapps/waffle_utils/docs/decisions/0004-waffle-util-namespacing.rst @@ -17,7 +17,7 @@ Additionally, the fully qualified waffle name, including the namespace, is requi Lastly, the namespace classes contain a lot of logic, but in effect, they only are used to ensure the flag name has a prefix like '.'. -.. _example switch in ecommerce: https://github.com/edx/ecommerce/blob/e899c78325ac492d0a2b1ea0aab4d5e230262b8f/ecommerce/extensions/dashboard/users/views.py#L21 +.. _example switch in ecommerce: https://github.com/openedx/ecommerce/blob/e899c78325ac492d0a2b1ea0aab4d5e230262b8f/ecommerce/extensions/dashboard/users/views.py#L21 Decision ======== diff --git a/openedx/core/djangoapps/xblock/rest_api/views.py b/openedx/core/djangoapps/xblock/rest_api/views.py index aa08de51ed12..bf138e3e5a26 100644 --- a/openedx/core/djangoapps/xblock/rest_api/views.py +++ b/openedx/core/djangoapps/xblock/rest_api/views.py @@ -129,8 +129,8 @@ def get_handler_url(request, usage_key_str, handler_name): # We cannot use DRF for this endpoint because its Request object is incompatible # with the API expected by XBlock handlers. -# See https://github.com/edx/edx-platform/pull/19253 -# and https://github.com/edx/XBlock/pull/383 for context. +# See https://github.com/openedx/edx-platform/pull/19253 +# and https://github.com/openedx/XBlock/pull/383 for context. @csrf_exempt @xframe_options_exempt def xblock_handler(request, user_id, secure_token, usage_key_str, handler_name, suffix=None): diff --git a/openedx/features/announcements/settings/common.py b/openedx/features/announcements/settings/common.py index 11a075fb5e9e..1a1a5ca497ab 100644 --- a/openedx/features/announcements/settings/common.py +++ b/openedx/features/announcements/settings/common.py @@ -14,7 +14,7 @@ def plugin_settings(settings): .. toggle_warning: TinyMCE is needed to show an editor in the studio. .. toggle_use_cases: open_edx .. toggle_creation_date: 2017-11-08 - .. toggle_tickets: https://github.com/edx/edx-platform/pull/16496 + .. toggle_tickets: https://github.com/openedx/edx-platform/pull/16496 """ settings.FEATURES['ENABLE_ANNOUNCEMENTS'] = False # Configure number of announcements to show per page diff --git a/openedx/features/course_experience/README.rst b/openedx/features/course_experience/README.rst index 6e159287b4b6..99e032eecfbf 100644 --- a/openedx/features/course_experience/README.rst +++ b/openedx/features/course_experience/README.rst @@ -59,4 +59,4 @@ The course experience consists of a number of views: A number of the features in the course experience are controlled via Waffle flags. For documentation, see `Waffle flag definitions`_. -.. _Waffle flag definitions: https://github.com/edx/edx-platform/blob/master/openedx/features/course_experience/__init__.py +.. _Waffle flag definitions: https://github.com/openedx/edx-platform/blob/master/openedx/features/course_experience/__init__.py diff --git a/openedx/features/discounts/docs/decisions/0001-determining-discount-location.rst b/openedx/features/discounts/docs/decisions/0001-determining-discount-location.rst index 38a7c28bfb97..be67abc56f16 100644 --- a/openedx/features/discounts/docs/decisions/0001-determining-discount-location.rst +++ b/openedx/features/discounts/docs/decisions/0001-determining-discount-location.rst @@ -65,7 +65,7 @@ Decisions c. We do not want to make a synchronous call from the Ecommerce backend to the LMS every time the basket page is loaded. See this decision record link for more information: - https://github.com/edx/Ecommerce/blob/master/docs/decisions/0002-no-synchronous-calls.rst However, + https://github.com/openedx/Ecommerce/blob/master/docs/decisions/0002-no-synchronous-calls.rst However, we are happy to make an ajax call from the front-end. The basket page needs this information for two reasons: 1) So that the correct price is shown to the user, and the user is informed that they are recieving a discount. 2) So that the correct price is charged to diff --git a/openedx/features/enterprise_support/README.rst b/openedx/features/enterprise_support/README.rst index 0a34a6ac64a0..97e8fb9ffdb4 100644 --- a/openedx/features/enterprise_support/README.rst +++ b/openedx/features/enterprise_support/README.rst @@ -4,4 +4,4 @@ Enterprise Support This directory contains a Django application to support usage of enterprise features within edx-platform. The majority of the capabilities are provided through the external edx-enterprise library that can be found -here: `https://github.com/edx/edx-enterprise`_. +here: `https://github.com/openedx/edx-enterprise`_. diff --git a/openedx/features/name_affirmation_api/README.rst b/openedx/features/name_affirmation_api/README.rst index 8cb928f47f25..c1bf573a1164 100644 --- a/openedx/features/name_affirmation_api/README.rst +++ b/openedx/features/name_affirmation_api/README.rst @@ -3,4 +3,4 @@ Name Affirmation API This directory contains a passthrough for the edx-name-affirmation plugin, in order to enable support in other plugins/packages such as edx-proctoring. -See here: `https://github.com/edx/edx-name-affirmation`_. +See here: `https://github.com/openedx/edx-name-affirmation`_. diff --git a/openedx/features/name_affirmation_api/utils.py b/openedx/features/name_affirmation_api/utils.py index b9f4ee8d9c6f..7bd41f3bdefd 100644 --- a/openedx/features/name_affirmation_api/utils.py +++ b/openedx/features/name_affirmation_api/utils.py @@ -1,6 +1,6 @@ """ Utility functions for integration with Name Affirmation plugin -(https://github.com/edx/edx-name-affirmation) +(https://github.com/openedx/edx-name-affirmation) """ from edx_django_utils.plugins import PluginError, PluginManager diff --git a/openedx/tests/xblock_integration/test_external_xblocks.py b/openedx/tests/xblock_integration/test_external_xblocks.py index e4bc93888480..c4fc4b74e397 100644 --- a/openedx/tests/xblock_integration/test_external_xblocks.py +++ b/openedx/tests/xblock_integration/test_external_xblocks.py @@ -20,7 +20,7 @@ class name for a test. In most cases, this means you have two versions either case, it'd be nice to resolve (likely by renaming tests as they come in, hopefully still being careful to catch collisions which might effect deployed XBlocks. See discussion at: - https://github.com/edx/edx-platform/pull/11032#discussion_r48097392). + https://github.com/openedx/edx-platform/pull/11032#discussion_r48097392). ''' pass # lint-amnesty, pylint: disable=unnecessary-pass @@ -47,7 +47,7 @@ class InvalidTestName(Exception): # This should never happen, but while we're testing for class name # validity, we figured it was okay to be a little overly defensive. # See discussion at: - # https://github.com/edx/edx-platform/pull/11032#discussion_r48097392 + # https://github.com/openedx/edx-platform/pull/11032#discussion_r48097392 if not classname.replace("_", "").isalnum(): raise InvalidTestName("Python variables should be letters, numbers, and underscores: " + classname) globals()[classname] = plugin diff --git a/package.json b/package.json index 97740991aadf..1fc59dcd205d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "edx", "version": "0.1.0", - "repository": "https://github.com/edx/edx-platform", + "repository": "https://github.com/openedx/edx-platform", "dependencies": { "@babel/core": "7.17.8", "@babel/plugin-proposal-object-rest-spread": "^7.0.0", diff --git a/pavelib/prereqs.py b/pavelib/prereqs.py index eb732b5b3f17..89a53a885dae 100644 --- a/pavelib/prereqs.py +++ b/pavelib/prereqs.py @@ -356,5 +356,5 @@ def print_devstack_warning(): # lint-amnesty, pylint: disable=missing-function- print("* WARNING: Mac users should run this from both the lms and studio shells") print("* in docker devstack to avoid startup errors that kill your CPU.") print("* For more details, see:") - print("* https://github.com/edx/devstack#docker-is-using-lots-of-cpu-time-when-it-should-be-idle") + print("* https://github.com/openedx/devstack#docker-is-using-lots-of-cpu-time-when-it-should-be-idle") print("********************************************************************************") diff --git a/requirements/README.rst b/requirements/README.rst index b5ac08d18763..618a3c4c25ee 100644 --- a/requirements/README.rst +++ b/requirements/README.rst @@ -10,7 +10,7 @@ These directories specify the Python (and system) dependencies for the LMS and S (In a normal `OEP-18`_-compliant repository, the ``*.in`` and ``*.txt`` files would be directly in the requirements directory.) -.. _OEP-18: https://github.com/edx/open-edx-proposals/blob/master/oeps/oep-0018-bp-python-dependencies.rst +.. _OEP-18: https://github.com/openedx/open-edx-proposals/blob/master/oeps/oep-0018-bp-python-dependencies.rst Upgrading/downgrading just one dependency ----------------------------------------- diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index c69c77fa0ff0..ad3ae4393cd7 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -6,17 +6,17 @@ # -e git+https://github.com/openedx/blockstore.git@1.2.1#egg=blockstore==1.2.1 # via -r requirements/edx/github.in --e git+https://github.com/edx/codejail.git@3.1.3#egg=codejail==3.1.3 +-e git+https://github.com/openedx/codejail.git@3.1.3#egg=codejail==3.1.3 # via -r requirements/edx/github.in --e git+https://github.com/edx/django-wiki.git@1.1.1#egg=django-wiki +-e git+https://github.com/openedx/django-wiki.git@1.1.1#egg=django-wiki # via -r requirements/edx/github.in -e git+https://github.com/openedx/olxcleaner.git@2f0d6c7f126cbd69c9724b7b57a0b2565330a297#egg=olxcleaner # via -r requirements/edx/github.in -e . # via -r requirements/edx/local.in --e git+https://github.com/edx/RateXBlock.git@2.0.1#egg=rate-xblock +-e git+https://github.com/openedx/RateXBlock.git@2.0.1#egg=rate-xblock # via -r requirements/edx/github.in --e git+https://github.com/edx-solutions/xblock-google-drive.git@2d176468e33c0713c911b563f8f65f7cf232f5b6#egg=xblock-google-drive +-e git+https://github.com/openedx-solutions/xblock-google-drive.git@2d176468e33c0713c911b563f8f65f7cf232f5b6#egg=xblock-google-drive # via -r requirements/edx/github.in acid-xblock==0.2.1 # via -r requirements/edx/base.in @@ -342,7 +342,7 @@ django-pyfs==3.2.0 # via -r requirements/edx/base.in django-ratelimit==3.0.1 # via -r requirements/edx/base.in -django-require @ git+https://github.com/edx/django-require.git@0c54adb167142383b26ea6b3edecc3211822a776 +django-require @ git+https://github.com/openedx/django-require.git@0c54adb167142383b26ea6b3edecc3211822a776 # via -r requirements/edx/github.in django-sekizai==4.0.0 # via @@ -720,7 +720,7 @@ mock==4.0.3 # -r requirements/edx/paver.txt # xblock-drag-and-drop-v2 # xblock-poll -mongodbproxy @ git+https://github.com/edx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a +mongodbproxy @ git+https://github.com/openedx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a # via -r requirements/edx/github.in mongoengine==0.24.2 # via -r requirements/edx/base.in @@ -1175,7 +1175,7 @@ xblock==1.6.1 # xblock-google-drive # xblock-poll # xblock-utils -xblock-drag-and-drop-v2 @ git+https://github.com/edx-solutions/xblock-drag-and-drop-v2@v2.3.5 +xblock-drag-and-drop-v2 @ git+https://github.com/openedx-solutions/xblock-drag-and-drop-v2@v2.3.5 # via -r requirements/edx/github.in xblock-poll @ git+https://github.com/open-craft/xblock-poll@v1.12.0 # via -r requirements/edx/github.in diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index a3646ded600d..c87d40342877 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -6,17 +6,17 @@ # -e git+https://github.com/openedx/blockstore.git@1.2.1#egg=blockstore==1.2.1 # via -r requirements/edx/testing.txt --e git+https://github.com/edx/codejail.git@3.1.3#egg=codejail==3.1.3 +-e git+https://github.com/openedx/codejail.git@3.1.3#egg=codejail==3.1.3 # via -r requirements/edx/testing.txt --e git+https://github.com/edx/django-wiki.git@1.1.1#egg=django-wiki +-e git+https://github.com/openedx/django-wiki.git@1.1.1#egg=django-wiki # via -r requirements/edx/testing.txt -e git+https://github.com/openedx/olxcleaner.git@2f0d6c7f126cbd69c9724b7b57a0b2565330a297#egg=olxcleaner # via -r requirements/edx/testing.txt -e . # via -r requirements/edx/testing.txt --e git+https://github.com/edx/RateXBlock.git@2.0.1#egg=rate-xblock +-e git+https://github.com/openedx/RateXBlock.git@2.0.1#egg=rate-xblock # via -r requirements/edx/testing.txt --e git+https://github.com/edx-solutions/xblock-google-drive.git@2d176468e33c0713c911b563f8f65f7cf232f5b6#egg=xblock-google-drive +-e git+https://github.com/openedx-solutions/xblock-google-drive.git@2d176468e33c0713c911b563f8f65f7cf232f5b6#egg=xblock-google-drive # via -r requirements/edx/testing.txt acid-xblock==0.2.1 # via -r requirements/edx/testing.txt @@ -445,7 +445,7 @@ django-pyfs==3.2.0 # via -r requirements/edx/testing.txt django-ratelimit==3.0.1 # via -r requirements/edx/testing.txt -django-require @ git+https://github.com/edx/django-require.git@0c54adb167142383b26ea6b3edecc3211822a776 +django-require @ git+https://github.com/openedx/django-require.git@0c54adb167142383b26ea6b3edecc3211822a776 # via -r requirements/edx/testing.txt django-sekizai==4.0.0 # via @@ -938,7 +938,7 @@ mock==4.0.3 # -r requirements/edx/testing.txt # xblock-drag-and-drop-v2 # xblock-poll -mongodbproxy @ git+https://github.com/edx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a +mongodbproxy @ git+https://github.com/openedx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a # via -r requirements/edx/testing.txt mongoengine==0.24.2 # via -r requirements/edx/testing.txt @@ -1659,7 +1659,7 @@ xblock==1.6.1 # xblock-google-drive # xblock-poll # xblock-utils -xblock-drag-and-drop-v2 @ git+https://github.com/edx-solutions/xblock-drag-and-drop-v2@v2.3.5 +xblock-drag-and-drop-v2 @ git+https://github.com/openedx-solutions/xblock-drag-and-drop-v2@v2.3.5 # via -r requirements/edx/testing.txt xblock-poll @ git+https://github.com/open-craft/xblock-poll@v1.12.0 # via -r requirements/edx/testing.txt diff --git a/requirements/edx/github.in b/requirements/edx/github.in index d7504641101f..25dc34edb682 100644 --- a/requirements/edx/github.in +++ b/requirements/edx/github.in @@ -17,7 +17,7 @@ # # For example: # -# git+https://github.com/edx/edx-lint.git@v0.3.2#egg=edx_lint==0.3.2 +# git+https://github.com/openedx/edx-lint.git@v0.3.2#egg=edx_lint==0.3.2 # # where: # @@ -54,20 +54,20 @@ # Python libraries to install directly from github # Third-party: --e git+https://github.com/edx/django-wiki.git@1.1.1#egg=django-wiki +-e git+https://github.com/openedx/django-wiki.git@1.1.1#egg=django-wiki -e git+https://github.com/openedx/olxcleaner.git@2f0d6c7f126cbd69c9724b7b57a0b2565330a297#egg=olxcleaner -git+https://github.com/edx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a#egg=MongoDBProxy==0.1.0+edx.2 +git+https://github.com/openedx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a#egg=MongoDBProxy==0.1.0+edx.2 # original repo is not maintained any more. -git+https://github.com/edx/django-require.git@0c54adb167142383b26ea6b3edecc3211822a776#egg=django-require==1.0.12 +git+https://github.com/openedx/django-require.git@0c54adb167142383b26ea6b3edecc3211822a776#egg=django-require==1.0.12 # Our libraries: -e git+https://github.com/openedx/blockstore.git@1.2.1#egg=blockstore==1.2.1 # Note: Blockstore 1.2.2 is failing. --e git+https://github.com/edx/codejail.git@3.1.3#egg=codejail==3.1.3 --e git+https://github.com/edx/RateXBlock.git@2.0.1#egg=rate-xblock --e git+https://github.com/edx-solutions/xblock-google-drive.git@2d176468e33c0713c911b563f8f65f7cf232f5b6#egg=xblock-google-drive +-e git+https://github.com/openedx/codejail.git@3.1.3#egg=codejail==3.1.3 +-e git+https://github.com/openedx/RateXBlock.git@2.0.1#egg=rate-xblock +-e git+https://github.com/openedx-solutions/xblock-google-drive.git@2d176468e33c0713c911b563f8f65f7cf232f5b6#egg=xblock-google-drive # Third Party XBlocks git+https://github.com/open-craft/xblock-poll@v1.12.0#egg=xblock-poll==1.12.0 -git+https://github.com/edx-solutions/xblock-drag-and-drop-v2@v2.3.5#egg=xblock-drag-and-drop-v2==2.3.5 +git+https://github.com/openedx-solutions/xblock-drag-and-drop-v2@v2.3.5#egg=xblock-drag-and-drop-v2==2.3.5 diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 5cf9fcb26002..4c9dc53a4a8c 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -6,17 +6,17 @@ # -e git+https://github.com/openedx/blockstore.git@1.2.1#egg=blockstore==1.2.1 # via -r requirements/edx/base.txt --e git+https://github.com/edx/codejail.git@3.1.3#egg=codejail==3.1.3 +-e git+https://github.com/openedx/codejail.git@3.1.3#egg=codejail==3.1.3 # via -r requirements/edx/base.txt --e git+https://github.com/edx/django-wiki.git@1.1.1#egg=django-wiki +-e git+https://github.com/openedx/django-wiki.git@1.1.1#egg=django-wiki # via -r requirements/edx/base.txt -e git+https://github.com/openedx/olxcleaner.git@2f0d6c7f126cbd69c9724b7b57a0b2565330a297#egg=olxcleaner # via -r requirements/edx/base.txt -e . # via -r requirements/edx/base.txt --e git+https://github.com/edx/RateXBlock.git@2.0.1#egg=rate-xblock +-e git+https://github.com/openedx/RateXBlock.git@2.0.1#egg=rate-xblock # via -r requirements/edx/base.txt --e git+https://github.com/edx-solutions/xblock-google-drive.git@2d176468e33c0713c911b563f8f65f7cf232f5b6#egg=xblock-google-drive +-e git+https://github.com/openedx-solutions/xblock-google-drive.git@2d176468e33c0713c911b563f8f65f7cf232f5b6#egg=xblock-google-drive # via -r requirements/edx/base.txt acid-xblock==0.2.1 # via -r requirements/edx/base.txt @@ -427,7 +427,7 @@ django-pyfs==3.2.0 # via -r requirements/edx/base.txt django-ratelimit==3.0.1 # via -r requirements/edx/base.txt -django-require @ git+https://github.com/edx/django-require.git@0c54adb167142383b26ea6b3edecc3211822a776 +django-require @ git+https://github.com/openedx/django-require.git@0c54adb167142383b26ea6b3edecc3211822a776 # via -r requirements/edx/base.txt django-sekizai==4.0.0 # via @@ -894,7 +894,7 @@ mock==4.0.3 # -r requirements/edx/base.txt # xblock-drag-and-drop-v2 # xblock-poll -mongodbproxy @ git+https://github.com/edx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a +mongodbproxy @ git+https://github.com/openedx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a # via -r requirements/edx/base.txt mongoengine==0.24.2 # via -r requirements/edx/base.txt @@ -1539,7 +1539,7 @@ xblock==1.6.1 # xblock-google-drive # xblock-poll # xblock-utils -xblock-drag-and-drop-v2 @ git+https://github.com/edx-solutions/xblock-drag-and-drop-v2@v2.3.5 +xblock-drag-and-drop-v2 @ git+https://github.com/openedx-solutions/xblock-drag-and-drop-v2@v2.3.5 # via -r requirements/edx/base.txt xblock-poll @ git+https://github.com/open-craft/xblock-poll@v1.12.0 # via -r requirements/edx/base.txt diff --git a/scripts/ci-runner.Dockerfile b/scripts/ci-runner.Dockerfile index 8d3c85699f9e..f6e4c26e899c 100644 --- a/scripts/ci-runner.Dockerfile +++ b/scripts/ci-runner.Dockerfile @@ -8,7 +8,7 @@ RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install --yes \ build-essential git language-pack-en libmysqlclient-dev libssl-dev libxml2-dev \ libxmlsec1-dev libxslt1-dev \ - # lynx: Required by https://github.com/edx/edx-platform/blob/b489a4ecb122/openedx/core/lib/html_to_text.py#L16 + # lynx: Required by https://github.com/openedx/edx-platform/blob/b489a4ecb122/openedx/core/lib/html_to_text.py#L16 lynx xvfb pkg-config \ python3-dev python3-venv \ && rm -rf /var/lib/apt/lists/* diff --git a/scripts/provision-demo-course.sh b/scripts/provision-demo-course.sh index 17e97d4b0d34..e455c704382b 100755 --- a/scripts/provision-demo-course.sh +++ b/scripts/provision-demo-course.sh @@ -7,10 +7,10 @@ # # This file is an experimental re-implementation of demo course provisioning # process defined in this Ansible role: -# https://github.com/edx/configuration/tree/master/playbooks/roles/demo +# https://github.com/openedx/configuration/tree/master/playbooks/roles/demo # # It was written as part of the effort to move our dev tools off of Ansible and -# Paver, described here: https://github.com/edx/devstack/pull/866 +# Paver, described here: https://github.com/openedx/devstack/pull/866 # TODO: If the effort described above is abandoned, then this script should # probably be deleted. @@ -23,7 +23,7 @@ mkdir -p /edx/app/demo ( cd /edx/app/demo && rm -rf edx-demo-course && - git clone https://github.com/edx/edx-demo-course.git --depth 1 + git clone https://github.com/openedx/edx-demo-course.git --depth 1 ) # Import the course. diff --git a/scripts/provision-demo-users.sh b/scripts/provision-demo-users.sh index 150c275ce436..3aa51eeeb1a1 100755 --- a/scripts/provision-demo-users.sh +++ b/scripts/provision-demo-users.sh @@ -7,7 +7,7 @@ # # This file is an experimental re-implementation of demo user provisioning # process defined in this Ansible role: -# https://github.com/edx/configuration/tree/master/playbooks/roles/demo +# https://github.com/openedx/configuration/tree/master/playbooks/roles/demo # # It provisions five users: # * edx (global superuser) @@ -18,7 +18,7 @@ # Each of which has {username}@example.com as their email and 'edx' as their password. # # It was written as part of the effort to move our dev tools off of Ansible and -# Paver, described here: https://github.com/edx/devstack/pull/866 +# Paver, described here: https://github.com/openedx/devstack/pull/866 # TODO: If the effort described above is abandoned, then this script should # probably be deleted. diff --git a/scripts/update-assets-dev.sh b/scripts/update-assets-dev.sh index f5c28626887a..317edb4c0a82 100755 --- a/scripts/update-assets-dev.sh +++ b/scripts/update-assets-dev.sh @@ -7,12 +7,12 @@ # # This file is an experimental re-implementation of the asset complation process # defined by the pavelib.assets:update_assets task in -# https://github.com/edx/edx-platform/blob/master/pavelib/assets.py. +# https://github.com/openedx/edx-platform/blob/master/pavelib/assets.py. # As the script name implies, it is only suited to compile assets for usage # in a development environment, NOT for production. # # It was written as part of the effort to move our dev tools off of Ansible and -# Paver, described here: https://github.com/edx/devstack/pull/866 +# Paver, described here: https://github.com/openedx/devstack/pull/866 # TODO: If the effort described above is abandoned, then this script should # probably be deleted. diff --git a/scripts/xdist/prepare_xdist_nodes.sh b/scripts/xdist/prepare_xdist_nodes.sh index c0bade993602..5eddab8c7690 100644 --- a/scripts/xdist/prepare_xdist_nodes.sh +++ b/scripts/xdist/prepare_xdist_nodes.sh @@ -19,7 +19,7 @@ ip_list=$( 1) && this.isYoutubeType() diff --git a/xmodule/lti_module.py b/xmodule/lti_module.py index 71be6d6b75bd..49e28cd741a4 100644 --- a/xmodule/lti_module.py +++ b/xmodule/lti_module.py @@ -1,5 +1,5 @@ """ -THIS MODULE IS DEPRECATED IN FAVOR OF https://github.com/edx/xblock-lti-consumer +THIS MODULE IS DEPRECATED IN FAVOR OF https://github.com/openedx/xblock-lti-consumer Learning Tools Interoperability (LTI) module. @@ -289,7 +289,7 @@ class LTIBlock( XModuleMixin, ): # pylint: disable=abstract-method """ - THIS MODULE IS DEPRECATED IN FAVOR OF https://github.com/edx/xblock-lti-consumer + THIS MODULE IS DEPRECATED IN FAVOR OF https://github.com/openedx/xblock-lti-consumer Module provides LTI integration to course. diff --git a/xmodule/modulestore/split_mongo/mongo_connection.py b/xmodule/modulestore/split_mongo/mongo_connection.py index 68b905a1d120..b632e3df06d6 100644 --- a/xmodule/modulestore/split_mongo/mongo_connection.py +++ b/xmodule/modulestore/split_mongo/mongo_connection.py @@ -703,7 +703,7 @@ def update_course_index(self, course_index, from_index=None, course_context=None """ # "last_update not only tells us when this course was last updated but also helps prevent collisions" # This code is just copying the behavior of the existing MongoPersistenceBackend - # See https://github.com/edx/edx-platform/pull/5200 for context + # See https://github.com/openedx/edx-platform/pull/5200 for context RequestCache(namespace="course_index_cache").clear() course_index['last_update'] = datetime.datetime.now(pytz.utc) # Find the SplitModulestoreCourseIndex entry that we'll be updating: diff --git a/xmodule/video_module/video_module.py b/xmodule/video_module/video_module.py index 82549ff40e70..4527907102c4 100644 --- a/xmodule/video_module/video_module.py +++ b/xmodule/video_module/video_module.py @@ -66,7 +66,7 @@ # edxval is a proper XBlock Runtime Service. # # Here's the deal: the VideoBlock should be able to take advantage of edx-val -# (https://github.com/edx/edx-val) to figure out what URL to give for video +# (https://github.com/openedx/edx-val) to figure out what URL to give for video # resources that have an edx_video_id specified. edx-val is a Django app, and # including it causes tests to fail because we run common/lib tests standalone # without Django dependencies. The alternatives seem to be: