Migrates final 6 entry point groups from setup.py (user_partition_scheme,
ace.policy, call_to_action, learning_context, dynamic_partition_generator,
console_scripts).
Simplifies setup.py to just call setup() with no arguments - all entry
points now defined in pyproject.toml.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Migrates 14 cms.djangoapp entry points from setup.py. Preserves
important comment explaining why discussion app (from LMS) is
imported into Studio process.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Migrates 1 xblock_asides.v1 entry point from setup.py. Removes
XBLOCKS_ASIDES constant as it's no longer needed.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Migrates 30 xblock.v1 entry points from setup.py. Removes XBLOCKS
constant as it's no longer needed.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Migrates package metadata from setup.py including version, dependencies,
and package definitions.
Changes package name from "Open edX" to "openedx-platform" to comply
with PEP 508 (no spaces allowed). This is safe as the package is not
published and dependents rely on entry points, not the package name.
Simplifies setup.py to contain only entry_points, which will be migrated
in subsequent commits.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds initial pyproject.toml with build system configuration using
setuptools>=61.0 (PEP 621 compatible). No functional changes yet -
setup.py remains fully functional.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
djangorestframework-stubs==3.16.8 dropped types-requests as a
transitive dependency. Since edx-platform uses the requests library
directly, we need to pin types-requests explicitly so that mypy can
type-check our code correctly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The latest version of pylint pins back astroid to an older version. This
hold back is not caught in the docs requirements file and since both the
docs and testing file are required in the development.in file, we fail
to compile development.txt because of conflicting dependencies.
Holding astroid back until pylint releases a new version that works with
the latest version of astroid.
Created https://github.com/openedx/openedx-platform/issues/38066 to undo
this.
We want to support a flow for SSO-enabled Enterprise customers who have
agreed off-platform that none of their learners will opt-in to marketing emails
or sharing research data. This change proposes to do so by
adding an optional field that, when enabled, disables the presence of
the two checkboxes on this registration form and sets their values to false.
ENT-11401
BREAKING CHANGE: The `pdf` XBlock is now built into the platform core and
installed by default. If you previously installed a third-party pdf
implementation such as https://github.com/open-craft/xblock-pdf, then the
built-in implementation will likely work as a drop-in replacement, so you can
uninstall the third-party implementation. However, if you’d rather continue
using a third-party pdf implementation, then use the `xblock.v1.overrides`
entrypoint. In either case, the third-party implementation must be removed from
the `xblock.v1` entrypoint, otherwise you will see an AmbiguousPluginError.
Co-Authored-By: Kyle McCormick <kyle@axim.org>
The static-assets-check workflow was setting DJANGO_SETTINGS_MODULE=lms.envs.production
globally, but then running both LMS and CMS collectstatic. Because manage.py doesn't
override DJANGO_SETTINGS_MODULE when it's already set (and --settings isn't passed),
CMS was running with LMS settings instead of CMS settings.
This meant CMS-specific RequireJS builds (cms/static/cms/js/build.js) were never being
tested, allowing issues like missing modules to slip through to sandbox deployments.
Fix by setting DJANGO_SETTINGS_MODULE explicitly for each service.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The legacy video uploads page in Studio has been replaced with a new
view in the Authoring MFE. The legacy page has not been available for
some time, so it's all dead code. This PR removes it.
Please note that there's a waffle flag which enables the MFE version
of the video uploads page: `contentstore.new_studio_mfe.use_new_video_uploads_page`.
Unlike the other Studio MFE waffles, we're NOT going to remove this one now,
because the video uploads page has always been broken for sites other
than edx.org (or sites that have reverse-engineered their video pipeline) so
we'd like to keep the flag until it's either fixed for the community or
removed (https://github.com/openedx/openedx-platform/issues/37972).
This work is part of https://github.com/openedx/edx-platform/issues/36108
Co-Authored-By: Kyle McCormick <kyle@axim.org>
BREAKING CHANGE: this forces course IDs in modulestore to be unique (case insensitive). This was always supposed to be the case, but it wasn't working properly on MySQL. Upgrading past this commit may cause a migration failure if you have conflicting course IDs - see the migration 0004 docstring for details.
refactor: remove some 'max_length=255' to be more DRY
feat: example of making an OpaqueKeyField case_sensitive (modulestore_migrator)
test: update test now that we're using case-insensitive collation on SQLite
Update our calls to the openedx_content API to reflect 0.35.0's shift
in terminology from "contents" to "media".
---------
Co-authored-by: Kyle McCormick <kyle@axim.org>
build!: Switch to openedx-core (renamed from openedx-learning)
Instead of installing openedx-learning==0.32.0, we install openedx-core==0.34.1.
We update various class names, function names, docstrings, and comments to
represent the rename:
* We say "openedx-core" when referring to the whole repo or PyPI project
* or occasionally "Open edX Core" if we want it to look nice in the docs.
* We say "openedx_content" to refer to the Content API within openedx-core,
which is actually the thing we have been calling "Learning Core" all along.
* In snake-case code, it's `*_openedx_content_*`.
* In camel-case code, it's `*OpenedXContent*`
For consistency's sake we avoid anything else like oex_core, OeXCore,
OpenEdXCore, OexContent, openedx-content, OpenEdxContent, etc.
There should be no more references to learning_core, learning-core, Learning Core,
Learning-Core, LC, openedx-learning, openedx_learning, etc.
BREAKING CHANGE: for openedx-learning/openedx-core developers:
You may need to uninstall openedx-learning and re-install openedx-core
from your venv. If running tutor, you may need to un-mount openedx-learning,
rename the directory to openedx-core, re-mount it, and re-build.
The code APIs themselves are fully backwards-compatible.
Part of: https://github.com/openedx/openedx-core/issues/470
- Styles to make component cards selectable.
- Action to select a component and send a message to the parent of the iframe
- Handler for a "deselect all" message and for selecting a specific component
- Change the `i18n` service declaration from `wants` to `needs`, since the
runtime must provide it for the block to function correctly.
- Update the `public_view` webpack JS reference from `VideoBlockMain` to
`VideoBlockDisplay`, as all VideoBlock JS files are bundled into
`VideoBlockDisplay` and `VideoBlockMain` is not referring to anything
or no longer exists in the repository.