Cbe assessment criteria versioning adr#476
Cbe assessment criteria versioning adr#476mgwozdz-unicon wants to merge 7 commits intoopenedx:mainfrom
Conversation
|
Thanks for the pull request, @mgwozdz-unicon! 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. |
|
If we're not going fully versioned (via |
This is a great idea. I updated the ADR accordingly. |
|
|
||
| Typically, only one person would be responsible for entering competency achievement criteria rules in Studio for each course, though this person may change over time. However, entire programs could have many different Course Authors or Platform Administrators with this responsibility. | ||
|
|
||
| Typically, institutions and instructional designers do not change the mastery requirements (competency achievement criteria) for their competencies frequently over time. However, the ability to do historical audit logging of changes within Studio can be a valuable feature to those who have mistakenly made changes and want to revert or those who want to experiment with new approaches. |
There was a problem hiding this comment.
FWIW, one of the issues that comes up around grading from time to time is the principle that someone should keep the grade that they saw themselves get, regardless of what changes the course team makes, unless that change was necessary to correct a bug (and often not even then). So the equivalent in competencies might be to make sure that by default we don't remove someone's competency because an author made some changes to how those competencies are earned.
Is it safe to assume that just preserving the timestamp they earned the competency would be sufficient to later reconstruct the state of the how the assessment criteria/grouping was defined at that point?
There was a problem hiding this comment.
I realized that my Decision description wasn't very specific or detailed, so I updated it to explicitly state which tables would have django-simple-history applied to them to enable reconstruction of the state of how learner statuses were determined previously if needed.
|
|
||
| Typically, institutions and instructional designers do not change the mastery requirements (competency achievement criteria) for their competencies frequently over time. However, the ability to do historical audit logging of changes within Studio can be a valuable feature to those who have mistakenly made changes and want to revert or those who want to experiment with new approaches. | ||
|
|
||
| Currently, Open edX always displays the latest edited version of content in the Studio UI and always shows the latest published version of content in the LMS UI, despite having more robust version tracking on the backend (Publishable Entities). Publishable Entities for Libraries is currently inefficient for large nested structures because all children are copied any time an update is made to a parent. |
There was a problem hiding this comment.
| Currently, Open edX always displays the latest edited version of content in the Studio UI and always shows the latest published version of content in the LMS UI, despite having more robust version tracking on the backend (Publishable Entities). Publishable Entities for Libraries is currently inefficient for large nested structures because all children are copied any time an update is made to a parent. | |
| Currently, Open edX always displays the latest edited version of content in the Studio UI and always shows the latest published version of content in the LMS UI, despite having more robust version tracking on the backend (Publishable Entities). |
We do represent container structures more efficiently now, so that each subtree can change without forcing a new version of the parent to be made. I don't think this is an important point to make here, but I just think we should remove this line as it's no longer accurate.
| - `oel_competency_criteria_group` | ||
| - `oel_competency_criteria` | ||
| - `oel_competency_rule_profile` |
There was a problem hiding this comment.
As with the last PR, it's probably easier to just list the models, rather than worrying about Django conventions for translating that to tables.
| 1. Defer competency achievement criteria versioning for the initial implementation. Store only the latest authored criteria and expose the latest published state in the LMS, consistent with current Studio/LMS behavior. | ||
| - Pros: | ||
| - Keeps the initial implementation lightweight | ||
| - Avoids the publishable framework's known inefficiencies for large nested structures |
There was a problem hiding this comment.
| - Avoids the publishable framework's known inefficiencies for large nested structures |
| - Cons: | ||
| - Requires custom conventions for versioning across related tables and nested groups | ||
| - Lacks shared draft/publish APIs and immutable version objects that other authoring apps can reuse | ||
| - Not necessarily consistent with existing patterns in the codebase (though these are already not overly consistent). |
There was a problem hiding this comment.
(though these are already not overly consistent)
😆
| - First-class draft/published semantics with immutable historical versions | ||
| - Consistent APIs and patterns shared across other authoring apps | ||
| - Cons: | ||
| - Inefficient for large nested structures because all children are copied for each new parent version |
There was a problem hiding this comment.
| - Inefficient for large nested structures because all children are copied for each new parent version |
No description provided.