- Mar 10, 2021
-
-
M. Zulqarnain authored
* refactor: pyupgrade in common/lib/xmodule Co-authored-by:
Usama Sadiq <usama.sadiq@arbisoft.com>
-
M. Zulqarnain authored
* refactor: pyupgrade on common/lib Co-authored-by:
Usama Sadiq <usama.sadiq@arbisoft.com>
-
M. Zulqarnain authored
-
M. Zulqarnain authored
-
Awais Qureshi authored
pyupgrade in calendar-sync.
-
edX cache uploader bot authored
-
- Mar 09, 2021
-
-
David Ormsbee authored
= IMPORTANT WARNING = This can be a VERY EXPENSIVE MIGRATION which may take hours or days to run depending on the size of the courseware_studentmodule table on your site. Depending on your database, it may also lock this table, causing courseware to be non-functional during that time. If you want to run this migration manually in a more controlled way (separate from your release pipeline), the SQL needed is: CREATE INDEX `courseware_stats` ON `courseware_studentmodule` (`module_id`, `grade`, `student_id`); You can then fake the migration: https://docs.djangoproject.com/en/2.2/ref/django-admin/#cmdoption-migrate-fake = Motivation and Background = TLDR: This adds an index that will speed up reports like the Problem Grade Report. This fixes a performance regression that was unintentionally introduced in 25da206c. I'm capturing the entire saga below, in case Open edX operators need to dig into it. The tale begins in November of 2012 (yes, seriously). We had an inline analytics feature that would display a histogram to course staff by each problem in the LMS, detailing how students did on that problem (e.g. 80% got 2 points, 10% got 1 point, 10% got 0 points). The courseware_studentmodule table already had an index on the module_id (a.k.a. module_state_key), but because there were 100K+ students that had student state for some problems, the generation of those histograms was still extremely expensive. During U.S. Thanksgiving weekend in late November of 2012, that load started causing operational failures on edx.org. As an emergency measure, I manually added a composite index for (module_id, grade, student_id) on courseware_studentmodule in order to stabilize the courseware on edx.org. I did _not_ follow up properly and add it in a migration file. Later on, the inline analytics feature was removed entirely, so the index was considered redundant (but again, it was not properly cleaned up). Various reports were created over the years, some of which relied on having an index for module_id. These ran fine because there had long been an index for that field specifically. In 2018, the courseware_studentmodule table for edx.org ran into the 2 TB size limit that our old RDS instance had. We had a fair amount of monitoring for various limits that we thought we might run into, but the per-table limit took us by surprise. The Devops/ SRE person fielding that issue needed to free up space in a hurry in order to make the courseware functional again. Examining the database itself, he noticed that we had a module_id index that was technically redundant because the composite index of (module_id, grade, student_id) would cover queries that would otherwise use it. Again, as an emergency measure, he dropped the index on module_id in order to free up a little space and buy enough time to do a proper move of the database to Aurora. Devops-of-2018 being more disciplined than me-of-2012, the index on module_id was removed in 25da206c. The intention was to make it so that the state of the code would match what was live on edx.org. But because the composite index was added in an ad hoc way, what that really meant was that now queries involving module_id were _only_ indexed by the (module_id, grade, student_id) composite index that existed only on edx.org and no other Open edX instances. We didn't realize this issue until months later. @blarghmatey created an index to re-add the index for module_id: https://github.com/edx/edx-platform/pull/20885 The reason why we didn't accept this immediately is because migrations for this table are very operationally risky and take days to run. Faking this migration would have put edx.org even more out of sync with the Open edX repo. Complicating this somewhat was the fact that some folks still seem to be running a variant of the inline analytics on their fork. So in the end, we're going forward with this migration that brings the code fully into sync with indexes on edx.org and covers the obscure inline analytics histogram use case, while still covering the module_id index needed for the fast generation of certain reports that focus on a single problem. Sorry folks.
-
adeel khan authored
Fix button/title text
-
Adeel Khan authored
1) Account activation email. 2) Password reset email. 3) Password reset success. VAN-272
-
Nadeem Shahzad authored
Pin diff-cover to fix tests on Ubuntu 20.04
-
Christie Rice authored
-
nadeemshahzad authored
-
Christie Rice authored
-
Kyle McCormick authored
In commit 9b37e7d0, the logic of `streak_celebration_is_active` was accidentally changed such that it no longer checks the Progress Milestones waffle flag. This commit fixes that. Note: This also adds in a transitive check to `courseware_mfe_is_active`, which makes sense for Streak Celebration and should not have any functional impact.
-
Usman Khalid authored
-
Usman Khalid authored
-
Ahtisham Shahid authored
Updated drag and drop version
-
David Ormsbee authored
* Adds the backfill_course_outlines management command to contentstore * Adds a read-only Django admin interface to learning_sequences for the support team and debugging. * Adds two new functions to the learning_sequences public API: key_supports_outlines and get_course_keys_with_outlines The learning_sequences app isn't supposed to know about contentstore or modulestore, as it's intended to be extracted out of edx-platform in the long term. Therefore, the backfill_course_outlines command is in contentstore, and not learning_sequences. This work was tracked in TNL-7983, but it also fixes a bug where we were trying to generate course outlines for libraries (TNL-7981). All Open edX instances upgrading to Lilac should run the backfill_course_outlines command as part of their upgrade process.
-
David Ormsbee authored
We weren't properly catching the CourseOutlineData.DoesNotExist error before this commit. TNL-7979
-
Jawayria authored
BOM-2352: Removed unused imports from lms/djangoapps/{grades, instruc…
-
Awais Qureshi authored
Run Pyupgrade on edxmako.
-
M. Zulqarnain authored
-
Awais Qureshi authored
BOM-2375-student-part1
-
Jawayria authored
-
Jawayria authored
BOM-2352: Removed unused imports from lms/djangoapps/{instructor_anal…
-
M. Zulqarnain authored
-
Ali Akbar authored
fix override error message
-
Usama Sadiq authored
-
edX cache uploader bot authored
-
Usama Sadiq authored
-
Usama Sadiq authored
ran pyupgrade on course_Wiki, coursewarehistoryextended
-
edX requirements bot authored
-
- Mar 08, 2021
-
-
Matthew Piatetsky authored
[AA-461] Change course metadata export to be a celery task
-
Kyle McCormick authored
Centralize the logic for choosing between MFE and Legacy-frontend courseware within three new functions: * courseware_mfe_is_active * courseware_mfe_is_visible * courseware_legacy_is_visible This allows us to create another new function: * get_courseware_url which can be called anywhere in LMS/Studio to get the canonical URL to courseware content (whether it be MFE or Legacy). In future commits we we begin using get_courseware_url throughout the platform. TNL-7796
-
Felipe Montoya authored
feat: Changed username max_length to the specified by django
-
Matthew Piatetsky authored
The terraform policy for the export is already attached to the worker role AA-461
-
Alex Dusenbery authored
feat: Upgrade edx-enterprise to 3.17.48 | Adds a mgmt command to update all SystemWideEnterpriseUserRoleAssignment records in a way that makes them more explicitly defined. ENT-4099.
-
Kyle McCormick authored
The setting overrides should've been cleaned up in a previous commit, but I missed them. This change is a no-op.
-
Bianca Severino authored
Upgrade edx-proctoring to 3.7.8
-
Bianca Severino authored
-