From e15c10757066f6db80f74aafe695de04dd029e0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Behmo?= Date: Sun, 24 Apr 2022 12:50:34 +0200 Subject: [PATCH 1/4] ci: attempt to fix github release CI Github release CI was running on ubuntu 18.04 withh python 3.6. Installing tomli==2.0.1, which is required in dev, triggers a failure in python 3.6 because it is no longer available. --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f68978b..8c0b3e2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: include: - - os: ubuntu-18.04 + - os: ubuntu-latest locale: C.UTF-8 - os: macos-10.15 locale: en_US.UTF-8 @@ -23,7 +23,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v2 with: - python-version: 3.6 + python-version: 3.7 - name: Upgrade pip run: python -m pip install --upgrade pip setuptools==44.0.0 - name: Print info about the current python installation From 51e93941e0e5747584025850e5ae26cf77158e17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Behmo?= Date: Sun, 24 Apr 2022 14:59:42 +0200 Subject: [PATCH 2/4] fix: v1 plugins in binary bundle --- tutor.spec | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/tutor.spec b/tutor.spec index 8b0e40f..f68c7c0 100644 --- a/tutor.spec +++ b/tutor.spec @@ -9,20 +9,21 @@ datas = [("./tutor/templates", "./tutor/templates")] hidden_imports = [] # Auto-discover plugins and include patches & templates folders -for entrypoint in pkg_resources.iter_entry_points("tutor.plugin.v0"): - plugin_name = entrypoint.name - try: - plugin = entrypoint.load() - except Exception as e: - print(f"ERROR Failed to load plugin {plugin_name}: {e}") - continue - plugin_root = os.path.dirname(plugin.__file__) - plugin_root_module_name = os.path.basename(plugin_root) - hidden_imports.append(entrypoint.module_name) - for folder in ["patches", "templates"]: - path = os.path.join(plugin_root, folder) - if os.path.exists(path): - datas.append((path, os.path.join(plugin_root_module_name, folder))) +for entrypoint_version in ["tutor.plugin.v0", "tutor.plugin.v1"]: + for entrypoint in pkg_resources.iter_entry_points(entrypoint_version): + plugin_name = entrypoint.name + try: + plugin = entrypoint.load() + except Exception as e: + print(f"ERROR Failed to load plugin {plugin_name}: {e}") + continue + plugin_root = os.path.dirname(plugin.__file__) + plugin_root_module_name = os.path.basename(plugin_root) + hidden_imports.append(entrypoint.module_name) + for folder in ["patches", "templates"]: + path = os.path.join(plugin_root, folder) + if os.path.exists(path): + datas.append((path, os.path.join(plugin_root_module_name, folder))) # Fix license import: if we don't declare some modules, pyinstaller does not find them hidden_imports.append("tutorlts.__about__") hidden_imports.append("Crypto.Cipher.AES") From d3e079320bfd752e46b38facf0afabbba27f4507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Behmo?= Date: Sun, 24 Apr 2022 15:07:52 +0200 Subject: [PATCH 3/4] ci: fix release description format --- docs/_release_description.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_release_description.md b/docs/_release_description.md index 57c8f7a..01573cf 100644 --- a/docs/_release_description.md +++ b/docs/_release_description.md @@ -1,8 +1,8 @@ -Install this version from pip with:: +Install this version from pip with: pip install "tutor[full]==TUTOR_VERSION" -Or download the compiled binaries:: +Or download the compiled binaries: sudo curl -L "https://github.com/overhangio/tutor/releases/download/TUTOR_VERSION/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor sudo chmod 0755 /usr/local/bin/tutor From db455a1379352247e043cb0eeaa4d32592f40aaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Behmo?= Date: Sun, 24 Apr 2022 11:30:34 +0200 Subject: [PATCH 4/4] v13.2.0 (2022-04-24) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - [Improvement] Add the `COMPOSE_PROJECT_STARTED` action and run `dev stop` on `local start` (and vice versa). - [Feature] Introduce `local/dev copyfrom` command to copy contents from a container. - [Bugfix] Fix a race condition that could prevent a newly provisioned LMS container from starting due to a `FileExistsError` when creating data folders. - [Deprecation] Mark `tutor dev runserver` as deprecated in favor of `tutor dev start`. Since `start` now supports bind-mounting and breakpoint debugging, `runserver` is redundant and will be removed in a future release. - [Improvement] Allow breakpoint debugging when attached to a service via `tutor dev start SERVICE`. - [Security] Apply rate limiting security fix (see [commit](https://github.com/overhangio/edx-platform/commit/b5723e416e628cac4fa84392ca13e1b72817674f)). - [Feature] Introduce the ``-m/--mount`` option in ``local`` and ``dev`` commands to auto-magically bind-mount folders from the host. - [Feature] Add `tutor dev quickstart` command, which is similar to `tutor local quickstart`, except that it uses dev containers instead of local production ones and includes some other small differences for the convience of Open edX developers. This should remove some friction from the Open edX development setup process, which previously required that users provision using local producation containers (`tutor local quickstart`) but then stop them and switch to dev containers (`tutor local stop && tutor dev start -d`). - 💥[Improvement] Make it possible to run `tutor k8s exec ` (#636). As a consequence, it is no longer possible to run quoted commands: `tutor k8s exec ""`. Instead, you should remove the quotes: `tutor k8s exec `. - 💥[Deprecation] Drop support for the `TUTOR_EDX_PLATFORM_SETTINGS` environment variable. It is now recommended to create a plugin instead. - 💥[Improvement] Complete overhaul of the plugin extension mechanism. Tutor now has a hook-based Python API: actions can be triggered at different points of the application life cycle and data can be modified thanks to custom filters. The v0 plugin API is still supported, for backward compatibility, but plugin developers are encouraged to migrate their plugins to the new API. See the new plugin tutorial for more information. - [Improvement] Improved the output of `tutor plugins list`. - [Feature] Add `tutor [dev|local|k8s] status` command, which provides basic information about the platform's status. --- CHANGELOG.md | 2 ++ tutor/__about__.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 376da6f..d6a887c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ Note: Breaking changes between versions are indicated by "💥". ## Unreleased +## v13.2.0 (2022-04-24) + - [Improvement] Add the `COMPOSE_PROJECT_STARTED` action and run `dev stop` on `local start` (and vice versa). - [Feature] Introduce `local/dev copyfrom` command to copy contents from a container. - [Bugfix] Fix a race condition that could prevent a newly provisioned LMS container from starting due to a `FileExistsError` when creating data folders. diff --git a/tutor/__about__.py b/tutor/__about__.py index 5b878fc..1ec297d 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__ = "13.1.11" +__version__ = "13.2.0" # 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