Repository navigation
Conversation
Regenerated via `make upgrade-package package=openedx-core`. Picks up openedx/openedx-core#900 (one root criteria group per competency, enforced in the database by migration openedx_learning 0017, openedx/openedx-core#872), first released in 1.19.0, and openedx/openedx-core#911 (`course_keys` scoping on the criteria-groups read endpoint, openedx/openedx-core#682), released in 1.20.0, so the Competency-Based Education (CBE) work can go to QA. Related to openedx/openedx-core#872 and openedx/openedx-core#682 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Thanks for the pull request, @alezconsultant! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
Description
Bumps
openedx-corefrom 1.18.0 to 1.20.0. The change is limited to the pinned version inuv.lock,requirements/edx/base.txtandrequirements/edx/development.txt, regenerated withmake upgrade-package package=openedx-core. The set ofopenedx-coredependencies is unchanged, so no other package moves.uv.lockalso gains themanylinux2014wheel entries PyPI now lists forgrimp3.18, which is already pinned at that version.The two new releases bring three changes in
openedx-core:CompetencyCriteriaGroupper competency. The model gains a derivedscope_codecolumn with a unique constraint, set on root groups only, so a second root for the same competency fails on insert instead of relying on a row lock in the API layer. A group'stag,parentandcourseare immutable after creation. Ships migrationopenedx_learning.0017_criteria_group_scope_code, which first checks for competencies with more than one root group (live or archived) and raisesDuplicateRootCriteriaGroupsErrornaming each one before it changes the schema, then adds the column, backfills existing roots, and adds the constraints.GET /api/cbe/v1/competencies/<tag_id>/criteria-groups/accepts an optionalcourse_keysquery parameter, a comma-separated list of up to 100 course run keys. When present, the response holds the groups above any course (such as the root) plus the complete subtree of each named course run, in the order requested. The response also gainscriteria_count(criteria returned) andtotal_criteria_count(all non-archived criteria for the competency before scoping). Omitting the parameter returns the same groups as before plus the two counts. Studio already mountsopenedx_learning.urlsunderapi/, so the parameter is available in Studio with no change here.AGENTS.mdwith repository guidelines for LLM coding agents. This is documentation only, with no code change.User roles affected: Course Author (competency criteria authoring). Operators run one new migration.
Supporting information
Testing instructions
uv sync, orpip install -r requirements/edx/development.txt)../manage.py cms migrate openedx_learning. It applies0017_criteria_group_scope_code, and./manage.py cms showmigrations openedx_learninglists it as applied.POST /api/cbe/v1/competencies/<tag_id>/criteria/.GET /api/cbe/v1/competencies/<tag_id>/criteria-groups/with no query string. The response has both course runs' groups and criteria, andcriteria_countequalstotal_criteria_count.?course_keys=<course run A key>. Only the groups above any course and course run A's subtree come back, nothing from course run B appears ingroupsorcriteria, andtotal_criteria_countstill reports the full count.?course_keys=not-a-course-key. The response is a 400../manage.py cms shell), create a second root group for a competency that already has one:CompetencyCriteriaGroup.objects.create(tag=<that tag>). It raisesIntegrityErroron thescope_codeunique constraint.Deadline
None.
Other information
openedx_learning.0017_criteria_group_scope_code. On a database that already holds more than one root group for a competency,migratestops withDuplicateRootCriteriaGroupsErrorlisting the tag and group ids before any schema change, so a rerun after removing the extra root is clean. Only deployments that trackmasterwith existing competency criteria data can have such rows; no named release installsopenedx_learningyet.uv.lockis at lock revision 5, which uv 0.13.x writes. Regenerating with an older uv (for example 0.10.x) rewrites marker ordering across the whole file, so use a current uv for the next bump.Related to openedx/openedx-core#872 and openedx/openedx-core#682
🤖 Generated with Claude Code