Commit Graph

65143 Commits

Author SHA1 Message Date
Feanil Patel
f308b5ec3d Merge pull request #34714 from openedx/feanil/upgrade-aiohttp-d8aab3f
feat: Upgrade Python dependency aiohttp
2024-05-07 13:50:20 -04:00
Feanil Patel
f9b7dfd07b Merge pull request #34713 from openedx/feanil/fix_one_upgrade
Feanil/fix one upgrade
2024-05-07 13:36:12 -04:00
Yusuf Musleh
a3924f687b feat: Tag sections, subsections, and the whole course (#34690)
(In the legacy UI, if the 'new_studio_mfe.use_tagging_taxonomy_list_page' waffle flag is enabled)
2024-05-07 10:29:35 -07:00
Feanil Patel
88336c78d6 Merge pull request #34712 from openedx/feanil/upgrade-acid-xblock-d8aab3f
feat: Upgrade Python dependency acid-xblock
2024-05-07 13:07:12 -04:00
feanil
6b88d2db35 feat: Upgrade Python dependency aiohttp
Routine requirement upgrade.  Doing it individually because there are too many changes in `make upgrade`.

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/feanil/fix_one_upgrade`
2024-05-07 16:55:37 +00:00
Feanil Patel
c66f28dcee fix: Add a trailing wildcard because we don't use an exact path.
We were seeing the following error:

```
  /usr/bin/git add -- requirements scripts/**/requirements
  fatal: pathspec 'scripts/**/requirements' did not match any files
```

Once we introduce wildcards, the whole path needs to be valid so adding
a trailing wildcard to catch all the relevant directories and files.
2024-05-07 12:32:40 -04:00
feanil
1dea3e78d4 feat: Upgrade Python dependency acid-xblock
Routine requirement upgrade.  Doing it individually because there are too many changes in `make upgrade`.

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/feanil/fix_one_upgrade`
2024-05-07 15:50:54 +00:00
David Ormsbee
d8aab3f72c fix: remove modulestore init to avoid pymongo deadlocks
Prior to this commit, the LMS would log the following error in tutor
production:

  pymongo/topology.py:175: UserWarning: MongoClient opened before fork.
  Create MongoClient only after forking. See PyMongo's documentation for
  details:
  https://pymongo.readthedocs.io/en/stable/faq.html#is-pymongo-fork-safe

Quoting from that page:

> PyMongo is not fork-safe. Care must be taken when using instances of
> MongoClient with fork(). Specifically, instances of MongoClient must
> not be copied from a parent process to a child process. Instead, the
> parent process and each child process must create their own instances
> of MongoClient. Instances of MongoClient copied from the parent
> process have a high probability of deadlock in the child process due
> to the inherent incompatibilities between fork(), threads, and locks
> described below. PyMongo will attempt to issue a warning if there is a
> chance of this deadlock occurring.

For edx-platform, the MongoClient connection is initalized with the
modulestore() invocation. That call creates and caches a global variable
that Studio or the LMS will reuse across the life of the worker process.

That initialization was put into lms/wsgi.py in 7c758ec9, but originated
in lms/startup.py with 51d0dd1. The original reason for it is because at
that time (2013), we still supported the XML Modulestore, which stored
courses on disk as directories of OLX files and static assets. The XML
Modulestore would then read the entirety of those courses into memory at
startup. This meant that the startup process was *extremely* expensive,
so we needed to have it happen before the workers started serving
requests to users, instead of having the system lazily read them in when
the first user request arrived.

Loading course content in this form hasn't been supported since 2016,
meaning that modulestore initialization is no longer the performance
time bomb that it once was. The fact that this code remained here is
likely an oversight, which was considered harmless until @ztraboo
reported these pymongo log messages during the course of investigating
performance issues:

https://discuss.openedx.org/t/atlas-mongodb-performance-issues-un-indexed-queries/12803/16

Two potential followups that should be explored after this:

1. Tutor should probably be forking earlier than this, before we load
   Django settings and initialize database and cache connections.
2. It's possible that the caching mechanism for modulestore should be
   revisited to operate at the request cache level. The performance
   benefit of keeping it around may not be worth the potential memory
   leaks. Anything we do here would have to be very carefully monitored
   though, since connection costs may add up.
2024-05-07 11:20:20 -04:00
Feanil Patel
468a30e2d5 Merge pull request #34693 from openedx/feanil/remove-sqlparse-dependency
Update sqlparse dependency
2024-05-07 11:07:16 -04:00
Kyle D. McCormick
b1393ac3eb fix: fall back to settings.COMPREHENSIVE_THEME_DIRS correctly
There was a logical error in the compile_sass management command:
instead of falling back to settings.COMPREHENSIVE_THEME_DIRS when
--theme-dirs was *None or missing*, we only fell back to it when
--theme-dirs was *missing*.

This caused theme compilation to be skipped when COMREHENSIVE_THEME_DIRS
*is not set* in the environment, even though
settings.COMPREHENSIVE_THEME_DIRS *is set* in Django settings, which
is currently the case for edx.org.
2024-05-07 08:40:40 -04:00
Kyle D. McCormick
21a1235a28 revert: revert: build: finish replacing paver assets
This reverts commit 4c0284b87d.
2024-05-07 08:40:40 -04:00
Muhammad Ammar
37bcb767b0 Merge pull request #34707 from openedx/ammar/upgrade-edx-enterprise-to-4.17.1
chore: upgrade edx-enterprise to 4.17.1
2024-05-07 15:03:06 +05:00
muhammad-ammar
ba56109498 chore: upgrade edx-enterprise to 4.17.1 2024-05-07 14:27:49 +05:00
Muhammad Adeel Tajamul
a454da9ca6 feat: added daily and weekly email digest (#34539)
* feat: added daily and weekly email digest
2024-05-07 12:15:03 +05:00
Feanil Patel
96f210559b Merge pull request #34697 from openedx/feanil/upgrade-faker-5cff751
feat: Upgrade Python dependency faker
2024-05-06 18:10:34 -04:00
Feanil Patel
28927da6da Merge pull request #34698 from openedx/feanil/script_requirements
fix: Include script requirements in upgrade.
2024-05-06 16:46:40 -04:00
feanil
5ce580e2f6 feat: Upgrade Python dependency faker
Routine requirement upgrade.  Doing it individually because there are too many changes in `make upgrade`.

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`
2024-05-06 14:51:50 -04:00
Feanil Patel
25ecaa8f76 chore: Run package=sqlparse make upgrade-package 2024-05-06 14:44:13 -04:00
Feanil Patel
324a2ae88a chore: Run make compile-requirements 2024-05-06 14:44:13 -04:00
Feanil Patel
321d40bf92 build: Remove sqlparse from kernel dependencies 2024-05-06 14:44:13 -04:00
Feanil Patel
b9623833c8 fix: Ensure depedency checks run on script requirements as well. 2024-05-06 14:43:17 -04:00
Feanil Patel
1d23fc1089 fix: Include script requirements in upgrade.
The `upgrade-one-python-dependency` workflow would fail if there were
changes in the scripts directory because they wouldn't get added to the
PR.  Update the list of `add-paths` for the workflow so that it doesn't
fail like this in the future.
2024-05-06 14:43:17 -04:00
Kyle McCormick
e6610f5ece test: only run Mongo 4.4 tests on xmodule directory (#34683)
Cuts the number of unit test checks from 64 down to 34

Also, we rename test contexts so that they're easier to read in GHA.
2024-05-06 14:37:38 -04:00
Kyle McCormick
4c0284b87d Revert "build: finish replacing paver assets (#34554)" (#34700)
Reverts #34554, which causes compilation of edX.org's
legacy comprehensive theme to be skipped in their deployment pipeline.
We have not determined the precise cause yet, but it seems like the
compile_sass management command is not correctly getting the
list of comprehensive theme directories from Django settings.
2024-05-06 12:57:51 -04:00
Troy Sankey
08323ccb18 Merge pull request #34686 from openedx/pwnage101/ENT-8766
fix: remove setting toggle which might be causing bug with future course redirects
2024-05-06 09:52:01 -07:00
Maria Grimaldi
b792222772 fix: add support to Group Configuration view for Teams partitions (#34643) 2024-05-06 11:46:02 -04:00
Rodrigo Martin
61b2870dff feat(AU-1950): Match video CC to unit translation language (#34667)
* feat(AU-1950): Match video CC to unit translation language

* feat(AU-1950): Update doc string

* fix: make dest_lang optional param
2024-05-06 11:32:55 -03:00
Ivan Niedielnitsev
333f1ff2c2 feat: [FC-0056] Add waffle flags for navigation and auxiliary (discussion and notification) sidebars (#34650)
Add waffle flags for navigation and auxiliary (discussion and notification) sidebars.
---------

Co-authored-by: Glib Glugovskiy <glib.glugovskiy@raccoongang.com>
Co-authored-by: Glib Glugovskiy <glugov1998@gmail.com>
Co-authored-by: Adolfo R. Brandes <arbrandes@arbrand.es>
2024-05-06 11:04:51 -03:00
Feanil Patel
5cff751986 Merge pull request #34694 from farhan/farhan/move-geoipupdate-script-2
Put the geolite database workflow to cron
2024-05-06 09:28:28 -04:00
Navin Karkera
8077719b8e fix: enroll users when added to a forum role (#32436) 2024-05-06 09:00:31 -04:00
Kyle McCormick
3f0f7ce705 build: finish replacing paver assets (#34554)
Together, these changes make it so that all features of the Paver-based
asset compilation system are supported with drop-in Paver-free
replacements. The remaining Paver asset functions are trivial wrappers,
which can be comfortably deleted before Sumac.

* Turn `./manage.py ... compile_sass` into a simple wrapper around `npm
  run compile-sass`
* Turn `paver webpack` into a simple wrapper around `npm run webpack`
* Turn `pavelib.assets:collect_assets` into a simple wrapper around
  `./manage.py ... collectstatic`
* Add/improve deprecation warnings for all Paver asset commands.
* Load defaults for asset-related Django settings from environment
  variables. This allows the build to work without Python. For the
  settings which will be removed in Sumac, I've added deprecation
  warnings.
* Change EDX_PLATFORM_THEME_DIRS env var to COMPREHENSIVE_THEME_DIRS.
  This simplifies the migration instructions, because all the new env
  vars now match their corresponding Django settings. This amends an
  ADR, but it should not be a breaking change because the  env var was
  recently added (since Quince) and nobody should be using it yet.
* Future-proof the static assets ADR with links. The linked pages will
  be kept up-to-date even if the ADR isn't.

Part of: https://github.com/openedx/edx-platform/issues/34467
2024-05-06 08:29:45 -04:00
Feanil Patel
fc68d34d12 chore: Upgrade the lti-consumer-xblock to unpin lxml.
Upgrade just the ltx-consumer-xblock to pickup an unpin of lxml.
2024-05-06 08:03:10 -04:00
Ahtisham Shahid
f2067ad700 fix: updated ora and pref version (#34696) 2024-05-06 14:29:24 +05:00
farhan
9777e3a7cf chore: put the geolite database workflow to cron
- Run the workflow on 1st of every month
2024-05-05 12:00:41 +05:00
Troy Sankey
2cb35cb24b fix: remove setting toggle which might be causing bug with future course redirects
We've long rolled out the
`COURSEWARE_COURSE_NOT_STARTED_ENTERPRISE_LEARNER_ERROR` setting toggle so
it should be safe to remove.

I'm completely at a loss as to why course access checks are not
returning the `course_not_started_enterprise_learner` error code when it
should, but it does in stage/local, so this PR is grasping at straws.

ENT-8766
2024-05-03 11:15:59 -07:00
Feanil Patel
5a2db5052c chore: Upgrade the lti-consumer-xblock to unpin lxml. 2024-05-03 13:07:01 -04:00
XnpioChV
b9da8969e6 fix: Update tag counts when changes are saved in the tag drawer
* fix: courseAuthoringUrl on message listener
2024-05-03 11:26:47 -04:00
Feanil Patel
5f44c2ceb2 Merge pull request #34679 from farhan/farhan/remove-reviewer-from-update-geolite-worflow
Remove reviewer from update-geolite workflow to fix issue
2024-05-02 15:09:04 -04:00
farhan
4db6082539 fix: remove reviewer from update-geolite workflow to fix issue 2024-05-02 19:40:07 +05:00
Kyle McCormick
d39bd32768 docs: improve 'bare metal' docs and add static assets reference (#34678) 2024-05-02 10:10:52 -04:00
Feanil Patel
8f4cbeadc4 Merge pull request #34576 from farhan/farhan/move-geoipupdate-script
Adds geoip maxmind database upgrade github workflow
2024-05-02 10:05:44 -04:00
Feanil Patel
c19aca1452 Merge pull request #34374 from openedx/feanil/test_on_3.11
feanil/test on 3.11
2024-05-02 08:50:21 -04:00
farhan
6eacf3a5b1 chore: Address PR change requests 2024-05-02 12:34:25 +05:00
farhan
70af2048d4 feat: Move geoipupdate script from ecommerce-scripts repo
* Ticket: https://github.com/openedx/axim-engineering/issues/1046
2024-05-02 12:34:24 +05:00
Syed Sajjad Hussain Shah
2ce25b3eb6 feat: autogenerate username on registration (#34562)
* feat: autogenerate username on registration

---------

Co-authored-by: Attiya Ishaque <atiya.ishaq@arbisoft.com>
Co-authored-by: Blue <ahtesham-quraish@users.noreply.github.com>
2024-05-02 08:58:37 +05:00
Feanil Patel
325a7b91b2 build: Update more workflows to test on Python 3.11 2024-05-01 10:23:34 -04:00
Feanil Patel
e9d716375f build: Update to allow tests to run on python 3.11
* Update so tox will allow running on the new version.
* Update so the hosted runner actually respects the python version in
  the matrix
2024-05-01 10:23:34 -04:00
Feanil Patel
85db730cef build: Run tests on python 3.11 as well as 3.8 2024-05-01 10:03:42 -04:00
Feanil Patel
1d485ca2b8 build: Don't require the backports.zoneinfo package for newer python.
We do this so that we can build requirements files that could work to
`pip install` on both the old (3.8) and new (3.11) versions of python.
2024-05-01 10:03:42 -04:00
Feanil Patel
fb727c101e feat!: Upgrade numpy to be python 3.8 and 3.12 compatible.
BREAKING CHANGE: Because numpy is available in the codejail sandbox, the
update from 1.22.4 to 1.24.4 does have completed deprecations, and more
details can be found in the Numpy Release Notes:
https://numpy.org/doc/stable/release/1.23.0-notes.html#expired-deprecations
2024-05-01 10:03:42 -04:00