From 63c8f8ec58793e68b9121e884a1d8ff7164b6079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Behmo?= Date: Fri, 23 Jun 2023 17:04:58 +0200 Subject: [PATCH 1/4] feat: add support for http/3 It was observed that waiting time was cut in half after http/3 was enabled. Plus, supporting http/3 is super easy :) Close #845 --- changelog.d/20230623_170336_regis_http3.md | 1 + docs/tutorials/proxy.rst | 1 + tutor/templates/k8s/services.yml | 5 +++++ tutor/templates/local/docker-compose.prod.yml | 6 +++++- 4 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 changelog.d/20230623_170336_regis_http3.md diff --git a/changelog.d/20230623_170336_regis_http3.md b/changelog.d/20230623_170336_regis_http3.md new file mode 100644 index 0000000..6f3aef4 --- /dev/null +++ b/changelog.d/20230623_170336_regis_http3.md @@ -0,0 +1 @@ +- [Feature] Add support for HTTP/3, which considerably improves performance for Open edX. (by @regisb and @ghassanmas) diff --git a/docs/tutorials/proxy.rst b/docs/tutorials/proxy.rst index b1bfc62..6112266 100644 --- a/docs/tutorials/proxy.rst +++ b/docs/tutorials/proxy.rst @@ -26,6 +26,7 @@ It is then your responsibility to configure the web proxy on the host. There are - Forward http traffic to https. - Set the following headers appropriately: ``X-Forwarded-Proto``, ``X-Forwarded-Port``. - Forward all traffic to ``localhost:81`` (or whatever port indicated by CADDY_HTTP_PORT, see above). +- If possible, add support for `HTTP/3 `__, which considerably improves performance for Open edX (see `this comment `__). .. note:: If you want to run Open edX at ``https://...`` urls (as you probably do in production) it is *crucial* that the ``ENABLE_HTTPS`` flag is set to ``true``. If not, the web services will be configured to run at ``http://...`` URLs, and all sorts of trouble will happen. Therefore, make sure to continue answering ``y`` ("yes") to the quickstart dialogue question "Activate SSL/TLS certificates for HTTPS access?". diff --git a/tutor/templates/k8s/services.yml b/tutor/templates/k8s/services.yml index aaaa9b6..c34d225 100644 --- a/tutor/templates/k8s/services.yml +++ b/tutor/templates/k8s/services.yml @@ -14,7 +14,12 @@ spec: name: http {%- if ENABLE_HTTPS %} - port: 443 + protocol: TCP name: https + # include support for http/3 + - port: 443 + protocol: UDP + name: http3 {%- endif %} selector: app.kubernetes.io/name: caddy diff --git a/tutor/templates/local/docker-compose.prod.yml b/tutor/templates/local/docker-compose.prod.yml index b803b41..552fa44 100644 --- a/tutor/templates/local/docker-compose.prod.yml +++ b/tutor/templates/local/docker-compose.prod.yml @@ -6,7 +6,11 @@ services: restart: unless-stopped ports: - "{{ CADDY_HTTP_PORT }}:80" - {% if ENABLE_HTTPS and ENABLE_WEB_PROXY %}- "443:443"{% endif %} + {% if ENABLE_HTTPS and ENABLE_WEB_PROXY %} + - "443:443" + # include support for http/3 + - "443:443/udp" + {% endif %} environment: default_site_port: "{% if not ENABLE_HTTPS or not ENABLE_WEB_PROXY %}:80{% endif %}" volumes: From 8414200262c8796a9ec0a57d0c578531aee18ab1 Mon Sep 17 00:00:00 2001 From: Emad Rad Date: Thu, 3 Aug 2023 12:38:35 +0330 Subject: [PATCH 2/4] fix: remove references to the wizard edition --- README.rst | 1 - changelog.d/20230801_201804_codewithemad_remove_wizard.md | 1 + docs/faq.rst | 2 +- docs/plugins/intro.rst | 5 ++--- tutor/commands/plugins.py | 4 ++-- tutor/plugins/indexes.py | 1 - 6 files changed, 6 insertions(+), 8 deletions(-) create mode 100644 changelog.d/20230801_201804_codewithemad_remove_wizard.md diff --git a/README.rst b/README.rst index d3c0df7..71cfe34 100644 --- a/README.rst +++ b/README.rst @@ -51,7 +51,6 @@ Features * Comes with batteries included: `theming `__, `SCORM `__, `HTTPS `__, `web-based administration interface `__, `mobile app `__, `custom translations `__... * Extensible architecture with `plugins `__ * Works with `Kubernetes `__ -* Amazing premium plugins available in the `Tutor Wizard Edition `__, including `Cairn `__ the next-generation analytics solution for Open edX. * No technical skill required with the `zero-click Tutor AWS image `__ .. _readme_intro_end: diff --git a/changelog.d/20230801_201804_codewithemad_remove_wizard.md b/changelog.d/20230801_201804_codewithemad_remove_wizard.md new file mode 100644 index 0000000..d007de9 --- /dev/null +++ b/changelog.d/20230801_201804_codewithemad_remove_wizard.md @@ -0,0 +1 @@ + - [Improvement] Wizard references removed. (by @CodeWithEmad) \ No newline at end of file diff --git a/docs/faq.rst b/docs/faq.rst index a2fc8d1..b8a169f 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -45,7 +45,7 @@ What features are missing from Tutor? Tutor tries very hard to support all major Open edX features, notably in the form of :ref:`plugins `. If you are interested in sponsoring the development of a new plugin, please `get in touch `__! -It should be noted that the `Insights `__ stack is currently unsupported, because of its complexity, lack of support, and extensibility. To replace it, Overhang.IO developed `Cairn `__ the next-generation analytics solution for Open edX, part of the `Tutor Wizard Edition `__. You should check it out 😉 +It should be noted that the `Insights `__ stack is currently unsupported, because of its complexity, lack of support, and extensibility. To replace it, Overhang.IO developed `Cairn `__ the next-generation analytics solution for Open edX. You should check it out 😉 Are there people already running this in production? ---------------------------------------------------- diff --git a/docs/plugins/intro.rst b/docs/plugins/intro.rst index bc55b0a..cb75f63 100644 --- a/docs/plugins/intro.rst +++ b/docs/plugins/intro.rst @@ -45,13 +45,12 @@ Many plugins are available from plugin indexes. These indexes are lists of plugi tutor plugins update tutor plugins search -More plugins can be downloaded from the "contrib" and "wizard" indexes:: +More plugins can be downloaded from the "contrib" index:: tutor plugins index add contrib - tutor plugins index add wizard tutor plugins search -The "main", "contrib" and "wizard" indexes include a curated list of plugins that are well maintained and introduce useful features to Open edX. These indexes are maintained by `Overhang.IO `__. For more information about these indexes, refer to the official `overhangio/tpi `__ repository. +The "main" and "contrib" indexes include a curated list of plugins that are well maintained and introduce useful features to Open edX. These indexes are maintained by `Overhang.IO `__. For more information about these indexes, refer to the official `overhangio/tpi `__ repository. Thanks to these indexes, it is very easy to download and upgrade plugins. For instance, to install the `notes plugin `__:: diff --git a/tutor/commands/plugins.py b/tutor/commands/plugins.py index 0ed848e..e80b6fc 100644 --- a/tutor/commands/plugins.py +++ b/tutor/commands/plugins.py @@ -382,8 +382,8 @@ def index_add(context: Context, url: str) -> None: The index URL will be appended with '{version}/plugins.yml'. The index path can be either an http(s) url or a local file path. - For official indexes, there is no need to pass a full URL. Instead, use "main", - "contrib" or "wizard". + For official indexes, there is no need to pass a full URL. Instead, use "main" or + "contrib". """ config = tutor_config.load_minimal(context.root) if indexes.add(url, config): diff --git a/tutor/plugins/indexes.py b/tutor/plugins/indexes.py index 2123b0e..c32d111 100644 --- a/tutor/plugins/indexes.py +++ b/tutor/plugins/indexes.py @@ -31,7 +31,6 @@ def _get_index_url_from_alias(url: str) -> str: known_aliases = { "main": "https://overhang.io/tutor/main", "contrib": "https://overhang.io/tutor/contrib", - "wizard": "https://overhang.io/tutor/wizard", } return known_aliases.get(url, url) From 8de5edfab735d077fab7b2694d668354caeeead7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Behmo?= Date: Thu, 3 Aug 2023 11:13:45 +0200 Subject: [PATCH 3/4] chore: upgrade cryptography in dev See: https://github.com/overhangio/tutor/security/dependabot/18 --- requirements/dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev.txt b/requirements/dev.txt index 42829e5..c2400af 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -44,7 +44,7 @@ click-log==0.4.0 # via scriv coverage==7.2.7 # via -r requirements/dev.in -cryptography==41.0.2 +cryptography==41.0.3 # via secretstorage dill==0.3.6 # via pylint From bb23afcc60b981128a9dc2c6ad511ac6a031d597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Behmo?= Date: Thu, 3 Aug 2023 11:19:17 +0200 Subject: [PATCH 4/4] v16.0.4 --- CHANGELOG.md | 7 +++++++ changelog.d/20230623_170336_regis_http3.md | 1 - changelog.d/20230731_155418_regis_fix_discussion_units.md | 1 - changelog.d/20230801_201804_codewithemad_remove_wizard.md | 1 - tutor/__about__.py | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) delete mode 100644 changelog.d/20230623_170336_regis_http3.md delete mode 100644 changelog.d/20230731_155418_regis_fix_discussion_units.md delete mode 100644 changelog.d/20230801_201804_codewithemad_remove_wizard.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c044d0..deda386 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,13 @@ instructions, because git commits are used to generate release notes: + +## v16.0.4 (2023-08-03) + +- [Feature] Add support for HTTP/3, which considerably improves performance for Open edX. (by @regisb and @ghassanmas) +- [Bugfix] Do not display discussion units when the forum is not enabled. (by @regisb) +- [Improvement] Remove references to the wizard edition. (by @CodeWithEmad) + ## v16.0.3 (2023-07-28) diff --git a/changelog.d/20230623_170336_regis_http3.md b/changelog.d/20230623_170336_regis_http3.md deleted file mode 100644 index 6f3aef4..0000000 --- a/changelog.d/20230623_170336_regis_http3.md +++ /dev/null @@ -1 +0,0 @@ -- [Feature] Add support for HTTP/3, which considerably improves performance for Open edX. (by @regisb and @ghassanmas) diff --git a/changelog.d/20230731_155418_regis_fix_discussion_units.md b/changelog.d/20230731_155418_regis_fix_discussion_units.md deleted file mode 100644 index 55ad284..0000000 --- a/changelog.d/20230731_155418_regis_fix_discussion_units.md +++ /dev/null @@ -1 +0,0 @@ -- [Bugfix] Do not display discussion units when the forum is not enabled. (by @regisb) diff --git a/changelog.d/20230801_201804_codewithemad_remove_wizard.md b/changelog.d/20230801_201804_codewithemad_remove_wizard.md deleted file mode 100644 index d007de9..0000000 --- a/changelog.d/20230801_201804_codewithemad_remove_wizard.md +++ /dev/null @@ -1 +0,0 @@ - - [Improvement] Wizard references removed. (by @CodeWithEmad) \ No newline at end of file diff --git a/tutor/__about__.py b/tutor/__about__.py index 31820ca..194be8a 100644 --- a/tutor/__about__.py +++ b/tutor/__about__.py @@ -2,7 +2,7 @@ import os # Increment this version number to trigger a new release. See # docs/tutor.html#versioning for information on the versioning scheme. -__version__ = "16.0.3" +__version__ = "16.0.4" # The version suffix will be appended to the actual version, separated by a # dash. Use this suffix to differentiate between the actual released version and