Call into the exam service instead of the edx-proctoring plugin on course publish if the course_apps.exams_ida course waffle flag is enabled. This is an early step in moving away from edx-proctoring
I would expect the post-pip-compile steps in `make upgrade`
to have taken care of chaninging `-e file://...`
into `-e .`, but it didn't for some reason.
Normally I would debug this, but
https://github.com/openedx/edx-platform/pull/30890
is going to merge in a week or two and it
will remove `-e .` from the requirement pins
entirely, so I'm just going to fix it manually for now.
We update github.in to use the proper git-based depencency
format specified in the file comment. This format installs
a package as a pre-built wheel:
git+https://github.com/...
instead of a development-mode editable requirement:
-e https://github.com/...
Installing packages in editable mode increases the amount of time
it takes to install edx-platform dependencies, increases the
resulting virtual environment's size, and installs packages in a
way that has several subtle differences compared to the way
wheels are installed:
https://setuptools.pypa.io/en/latest/userguide/development_mode.html#limitations
They give the impression that, for example,
third-party XBlocks belong in github.in.
In reality, GitHub-hosted requirements should be avoided
in all circumstances. Third-party XBlocks are best
added to base.in as a PyPI-hosted dependency.
Furthermore, the existing section headers are not
even being followed.
As part of the implementation of this ADR, we determined that we needed
to make some of the endpoints that return JWTs able to produce
asymmetric JWTs as needed, since asymmetric JWTs are a requirement
in certain cases. This ADR update notes this additional consequence.
This commit removes code that was used to copy Old Mongo courses into
new Split Mongo courses. This includes both the migrate_to_split
management command, as well as the backend code that would be invoked
to re-run Old Mongo courses as Split courses using Studio (the UI for
this was already removed in b429e55c).
This is a part of the Old Mongo removal effort tracked in:
https://github.com/openedx/public-engineering/issues/62
The new mechanism for marking that a unit has discussions is to use the
discussion_enabled flag instead of adding a discussion block. This change
adds code that is run during the course rerun process to mark any existing
units that have a discussion block as discussible using the new mechanism.
It doesn't touch the existing discussion blocks.
If the new discussions configuration experience is globally enabled, this
will also switch from the legacy provider to the new provider. It analyses
the course for any discussion blocks that have been added to graded
subsections, and if that is the case, it also automatically enables
discussions in graded subsections (which are otherwise disabled for new
courses by default).
version 5.3.0
Commands:
write FILENAME
Write a local copy of FILENAME using FILENAME_tweaks for local tweaks.
check [FILENAME ...]
Check that FILENAME has not been edited since writing.
If FILENAME is omitted, all existing files are checked.
list
List the files that edx_lint can provide.
update
Re-write any edx_lint-written files that exists on disk.
update with the current version of the repo.
[APER-1968]
We don't have a good way to understand if grade data in Credentials is out of sync with the LMS. Grades are sent to Credentials via a REST API call originating from an asynchronous Celery task on the LMS side. This PR updates our Celery task `send_grade_to_credentials` to include sending the `modified` DateTime value of a grade record to the Credentials IDA. Updates will be made on the Credentials side to accept and store this data as part of the UserGrade instance.
* Updates the `send_grade_to_credentials` task to include passing the grade's `modified` DateTime info as part of the request data to Credentials
* Updates the `CourseGradeBase` class to include an optional `last_updated` field. This will store the `modified` date of a PersistentCourseGrade instance when a grade is read through the CourseGradeFactory.
* Update existing log statement to use format strings where possible.
This removes user-facing Studio edit support for Old Mongo courses
(courses that have a CourseKey of the format {org}/{course}/{run}).
This does not affect our normal courses, which have CourseKeys
starting with "course-v1:".
After this commit:
* Old Mongo courses will continue to appear on the Studio course
listing page, but are not clickable.
* Any attempt to directly access an Old Mongo course in Studio via URL
fail with a 404 error.
* Course certificates will still be available for Old Mongo courses.
* Old Mongo courses will continue to be returned by CourseOverviews
and get_course_summaries() calls.
We decided against removing Old Mongo courses from the listing entirely
because that would require very expensive CourseOverviews query to
filter them out. Making that query more efficient would involve a
database migration to add appropriate indexing, which is something else
that we are looking to avoid. CourseOverviews are used everywhere in
the system, so we want to avoid changing how they work so that we can
minimize risk.
This is part of the Old Mongo Modulestore deprecation effort:
https://github.com/openedx/public-engineering/issues/62
In the past, safe_lxml was located at ./common/lib/safe_lxml/safe_lxml,
and was imported as so:
import safe_lxml
Now, safe_lxml is located at ./openedx/core/lib/safe_lxml, and is
imported as so:
import openedx.core.lib.safe_lxml
We added in a temporary backwards-compatibility hack, in the form
of the module ./safe_lxml/__init__.py, to support the old import
format (with a warning written to the logs).
Enough time has passed that it we feel it is safe to
remove that compatibility hack. After this commit, imports in
the form `import safe_lxml` will raise an ImportError.
The existing `package-lock.json` included `fsevents` which is a macOS specific package.
This was causing errors when running a clean install (`npm ci`) on Linux hosts.
By deleting the existing `package-lock.json` and rebuilding it using `npm install --legacy-peer-deps`
on a Linux host machine, the `fsevents` error is resolved. This has the side-effect of updating
all of the pinned package versions to the latest versions that satisfy our `package.json` requirements.
Packages can be added to package-lock.json that will fail to
install on certain systems. For example, the `fsevents` NPM
package, which only works on macOS, was listed as a requirement
in the file.
`npm install` will happily skip over such packages.
`npm clean-install`, however, will exit with a fatal error.
Throughout several doc pages, we have recently been encouraging
folks to use `clean-install` instead of `install`, because its
strictness makes it more reproducible. To ensure that `clean-install`
is working reliably at any given time, we should use `clean-install`
in our CI pipeline.
* feat: get course provider info
* feat: get grade data
* feat: get course provider for entitlements
* style: run black
Co-authored-by: nsprenkle <nsprenkle@2u.com>