6
0
mirror of https://github.com/ChristianLight/tutor.git synced 2024-09-29 04:39:01 +00:00
Commit Graph

162 Commits

Author SHA1 Message Date
Syed Muhammad Dawoud Sheraz Ali
0e37449f40
fix: ensure mounted installable packages are installed as expected
Close #1016.
2024-03-21 09:58:36 +01:00
Régis Behmo
3401a71b18 fix: merge conflicts due to edx-platform patches in nightly
When building the nightly images, some patches fail because they come
from the master branch. To address this, we apply certain patches only
if we are not in nightly mode.
2024-02-22 11:49:31 +01:00
Régis Behmo
59b1987ff1 fix: infinite cache growth
See the discussion here: https://github.com/overhangio/tutor/pull/984
And the upstream PR here: https://github.com/openedx/edx-platform/pull/34210

The tl;dr is that the Redis course structure cache was growing without
bounds. While the upstream fix should resolve that issue, we decided
that Tutor should have a maxmemory limit and an eviction policy set for
operational safety.

Thus, Redis now has a 4gb maxmemory. If you need more memory on your
instance, you should implement the "redis-conf" patch.

To manually expire existing keys, run:

    tutor local run cms ./manage.py cms shell -c "from django.core.cache import caches; c = caches['course_structure_cache']; [c.expire(key, 604800) for key in c.keys('*')]"
2024-02-19 09:43:40 +01:00
Régis Behmo
f103f056cd v17.0.2 2024-02-09 23:06:25 +01:00
Régis Behmo
439b7d08f0 feat: upgrade to quince.2 2024-02-09 22:16:15 +01:00
Abdul-Muqadim-Arbisoft
d99b2feeb3 fix: remove pkg_resources for python 3.12 compatibility
pkg_resources is available in python 3.12 only if setuptools is
explicitely installed, which is not always the case. We fix that by
replacing all usage of pkg_resources with importlib_resources and
importlib_metadata.

Close #966
2024-02-09 22:06:30 +01:00
Kyle D. McCormick
4a30c4ab35 feat: enhance importdemocourse ; add importdemolibraries 2024-02-08 10:38:27 -05:00
Régis Behmo
487ca89885 chore: add missing test fixture and changelog entry
We somehow forgot to include these files in a previous commit...
2024-02-08 11:21:30 +01:00
Kshitij Sobti
2924b92cea fixup!: Apply review feedback 2024-01-30 09:47:32 +01:00
Régis Behmo
07cbd69ce3 v17.0.1 2024-01-25 16:55:26 +01:00
ravikhetani
b832f519ca
fix: correctly render .webp and .otf files in env
This partially addresses #985.

---------

Co-authored-by: Ravi Khetani <r.khetani@institute.global>
2024-01-22 13:18:29 +01:00
Régis Behmo
efd8df600d security: fix JWT scopes in XBlock callbacks
See:
https://github.com/openedx/edx-platform/security/advisories/GHSA-qx8m-mqx3-j9fm
https://github.com/openedx/edx-platform/pull/34047
2024-01-22 10:39:15 +01:00
Régis Behmo
68203f47be fix: RsaKey.dq attribute error
Running `tutor config save` with an outdated version of pycryptodome was
failing with the following error:

    Error: Missing configuration value: 'Crypto.PublicKey.RSA.RsaKey object' has no attribute 'dq'

This is because the "dq" attribute was only introduced in pycryptodome
3.17.0: https://www.pycryptodome.org/src/changelog#january-2023

To resolve this issue we bump the minimum requirements.

Close #962
2023-12-19 09:32:19 +01:00
Alejandro Cardenas
afb85aaab6
feat: add CONFIG INTERACTIVE action
New hook Action that allows tutor plugins to interact with the configuration at the time of the interactive questionnaire that happens during `tutor local/dev launch`.
2023-12-15 10:31:35 +01:00
Régis Behmo
0ccf48690a feat: upgrade to quince 2023-12-11 20:41:32 +01:00
Overhang.IO
71e469174f Merge remote-tracking branch 'origin/master' into nightly 2023-12-10 22:19:14 +00:00
Régis Behmo
ada5b36a62 v16.1.8 2023-12-10 22:59:03 +01:00
Régis Behmo
0d997c9479 feat: auto-mount edx-platform python requirements
These changes make to possible to run:

    tutor mounts add /path/to/my-xblock

The xblock directory with then be auto-magically bind-mounted in the
"openedx" image at build time, and the lms*/cms* containers at run time.

This makes it effectively possible to work as a developer on
edx-platform requirements.

We take the opportunity to move some openedx-specific code to a
dedicated module.

Close https://github.com/openedx/wg-developer-experience/issues/177
2023-12-10 22:57:08 +01:00
Régis Behmo
6da97d22f4 feat: local.overhang.io -> local.edly.io
The new domain name points to 127.0.0.1, just like the previous one. We
keep the local.overhang.io domain names for backward compatibility. In
the future, we hope to migrate to "*.openedx.io" but that will not
happen before Redwood.

Close #945
2023-12-09 15:51:31 +01:00
Emad Rad
61d37b436d fix: save configs by enable/disable plugins.
before this, after enabling/disabling any plugins we should re-generate all files with tutor config save.
2023-12-08 12:47:34 +01:00
Overhang.IO
0c4b82f80c Merge remote-tracking branch 'origin/master' into nightly 2023-12-05 11:30:38 +00:00
Régis Behmo
d3aa7d9a52 docs: docs.tutor.overhang.io -> docs.tutor.edly.io
See: https://github.com/overhangio/tutor/issues/945
2023-12-05 11:46:56 +01:00
Régis Behmo
8d815bc317 Merge branch 'master' into nightly 2023-11-29 11:21:51 +01:00
Régis Behmo
ff8091bef2 feat: simplify nightly management
Bumping the `OPENEDX_COMMON_VERSION` in the master branch usually
creates a conflict when we merge the change in the nightly branch. To
avoid this conflict, we add some logic to the `OPENEDX_COMMON_VERSION`.

This change should be invisible for most users.

This partially addresses issue #936.
2023-11-29 10:49:53 +01:00
Régis Behmo
913a1adae4 Merge branch 'master' into nightly 2023-11-23 12:58:04 +01:00
Omar Al-Ithawi
65ba0d2de2 fix: fix ulimits error for elasticsearch in Docker rootless mode
disable `ulimits` in rootless docker mode by setting them to zero
2023-11-23 12:36:07 +01:00
Overhang.IO
c4cc7279fc Merge remote-tracking branch 'origin/master' into nightly 2023-11-23 09:02:05 +00:00
Florian Haas
8fdb6f52d9 fix: Reduce MySQL binlog expiry from 30 days to 3
MySQL 8 defaults to a binlog expiry period of 2592000 seconds
(30 days), which for Tutor/Open edX purposes can be considered
excessive.

On the one hand, it is unlikely that a MySQL server configured for
Tutor uses MySQL replication at all (considering that up until Tutor
15 and MySQL 5.7, the binlog was disabled by default, rendering
replication impossible). Even if it does, a replica lagging more than
two days behind the primary server would be unacceptable.

Likewise, it is unlikely that an Open edX database is backed up less
than once a day, thus is is unlikely that Open edX admins would
benefit from the ability to do point-in-time restore over a 30-day
period.

On the other hand, having a 30-day binlog expiry period can
considerably increase the storage space requirements for the MySQL
container, particularly on busy Open edX platforms. When left
unchecked, this can even cause the MySQL container to run into "No
space left on device" situations, disabling the MySQL database
altogether. Thus, the MySQL default settings are likely to be a net
disadvantage for Open edX admins.

Finally, all of the above considerations apply only if the Open edX
administrator has chosen to run their own MySQL and not opted for a
DBaaS solution like AWS RDS.

Thus, it should be acceptable to run with a reduced binlog expiry
period of 3 days (rather than 30) by default.

Therefore, inject the --binlog-expire-logs-seconds=259200 argument
into the Tutor-generated command to start mysqld.

Reference:
https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_expire_logs_seconds
2023-11-23 09:39:55 +01:00
Régis Behmo
2b490e59a7 Merge branch 'master' into nightly 2023-11-20 16:33:20 +01:00
Régis Behmo
e02d4274ee v16.1.7 2023-11-17 10:34:21 +01:00
Régis Behmo
66fce06e44 fix: missing dev.txt file in pypi package
Close #943.
2023-11-17 10:32:53 +01:00
Régis Behmo
01971f572b v16.1.6 2023-11-16 22:38:10 +01:00
Régis Behmo
a0c66ca650 feat: upgrade to palm.4 2023-11-16 22:36:32 +01:00
Overhang.IO
d21635ee55 Merge remote-tracking branch 'origin/master' into nightly 2023-11-07 06:07:08 +00:00
Emad Rad
5050bf69f9 feat: dev added to extras_require
we can use this to install tutor development packages inside ci jobs, with one line.
2023-11-07 06:01:09 +00:00
Overhang.IO
ebb79f03b8 Merge remote-tracking branch 'origin/master' into nightly 2023-10-30 17:47:00 +00:00
Régis Behmo
10c988127d v16.1.5 2023-10-30 18:26:17 +01:00
Kyle McCormick
c273e7f105
feat!: assume BuildKit is available 2023-10-27 10:54:23 +02:00
Kyle D. McCormick
7f47c3c8af fix: include full-complement paramters in `JWT_PRIVATE_SIGNING_JWK`
Addresses the breaking upstream change in this commit:
92731be0dc

See Changelog entry for details.
2023-10-23 11:15:40 +02:00
Fateme Khodayari
34bb401da5
fix: ora2 uploads in cms 2023-10-16 18:34:28 +02:00
Régis Behmo
a7dd62bc77 v16.1.4 2023-10-13 16:56:25 +02:00
Régis Behmo
9cba06595e feat: upgrade to open-release/palm.3 2023-10-13 16:54:45 +02:00
Emad Rad
f4dc508c19
fix: 600GB openedx-dev image on macOS
On macOS, building the "openedx-dev" Docker image resulted in an image that required more than 600 GB of disk space. This was due to the `adduser` command which was called with a user ID of 2x10⁹ (on macOS only). This resulted in a very large /var/log/faillog file, hence the image size.

Related upstream discussion: https://github.com/moby/moby/issues/5419
Close https://github.com/openedx/wg-developer-experience/issues/178
2023-10-11 10:02:03 +02:00
Régis Behmo
0a73b8857d v16.1.3 2023-10-10 11:40:43 +02:00
Régis Behmo
575a56b767 fix: build error caused by removed py2neo package
On Oct. 10, py2neo package was abruptly removed from pypi, GitHub, and
the py2neo website now displays just a super funny meme: https://py2neo.org/

Yes, we should get rid of that dependency, but we are still supposed to
support existing users. So we install py2neo from our fork.
2023-10-10 11:37:40 +02:00
David Ormsbee
b3cde02330 fix: override CMS_BASE setting in Studio for dev
The LMS was overriding CMS_BASE properly, but Studio (CMS) configuration
was not. That meant that Studio's CMS_BASE in dev mode was using the
devstack default of localhost:18010 (because this is what's defined in
edx-platform). This in turn broke parts of Studio that use this value,
such as the XBlock v2 API (/api/xblock/v2).

This commit derives the value of the CMS_BASE Django setting from
Tutor's CMS_HOST config value, in the same way that the LMS does it.
2023-10-05 09:06:28 +02:00
Paulo Viadanna
06ad1978a4 fix: adds mongodb connect=False
Adding connect=False to the LMS and CMS' MongoDB connection to prevent
ServerSelectionError after a cluster failover.
2023-10-04 09:48:08 +02:00
Régis Behmo
2bdd170601 v16.1.2 2023-10-02 11:15:51 +02:00
Régis Behmo
d6e26c614c fix: file upload in open response assessments (ora2)
For some reason, the ora2 cache configuration had disappeared in the
upgrade to Palm.

This issue was initially raised here:
https://discuss.openedx.org/t/palm-2-ora-file-upload-failure/11332

Close #907.
2023-10-02 11:13:11 +02:00
Emad Rad
4eb2085023
feat: add CONFIG_LOADED action
By utilizing CONFIG LOADED, we can now verify if PREVIEW_LMS_HOST is a subdomain of LMS_HOST and display a warning message to the user if it is not.
2023-10-02 09:08:07 +02:00