* feat: use new version of openedx-core
* feat: Use openedx_catalog app, backfill it with all known courses
* feat: properly set "created" timestamp on course runs during backfill
* fix: better normalization of language codes
* feat: keep courses in sync with CourseRun/CatalogCourse
* feat: delete CourseRun/CatalogCourse when deleting a course
* refactor: course_id -> course_key, run -> run_code, display_name -> title
* fix: don't use SplitModulestoreCourseIndex for getting list of all courses
* feat: add ruff and configure it to match current pycodestyle rules
Adds ruff to testing requirements and configures it in pyproject.toml
to enforce the same E/W rules that pycodestyle 2.8.x was enforcing.
Two additional rules (E714, E721) that pycodestyle 2.8.x did not enforce
are explicitly ignored for now and can be cleaned up in a follow-up.
Part of the migration from pycodestyle → ruff.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: add ruff Makefile target
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: add ruff to quality CI workflow alongside pycodestyle
Runs ruff alongside pycodestyle so we can validate parity before
removing pycodestyle in the next commit.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: remove pycodestyle, replaced by ruff
- Remove pycodestyle from requirements
- Remove pycodestyle version constraint (pinned to <2.9.0 due to a
false positive E275 bug that is no longer relevant)
- Remove [pycodestyle] config from setup.cfg (config now lives in
pyproject.toml under [tool.ruff])
- Remove pycodestyle Makefile target
- Remove make pycodestyle from quality CI workflow
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* style: Apply suggestions from code review
Remove unnecessary ignores.
Co-authored-by: Braden MacDonald <braden@opencraft.com>
* style: Fix a style isusue and remove ignores.
Most of these ignores are unnecessary as we're passing them now and we
want to check them in the future. E714 only had one fixable violation so
we just fixed it.
* style: Update ruff config and workflows
* Update the call to `ruff` so that it outputs in a github friendly
manner.
* Remove ruff exclusions that are already covered by .gitignore which
ruff respects.
* chore: Recompile requirements.
Update the requirements to drop pycodestyle and add ruff.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Braden MacDonald <braden@opencraft.com>
Migrates complete importlinter configuration from setup.cfg, preserving
all 4 contracts, ignore_imports with explanatory comments, and GitHub
issue references.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Migrates pytest configuration from setup.cfg, preserving all settings
and comments including warning filters and test discovery patterns.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>