Skip to content

Releases: overhangio/tutor

v18.0.0

20 Jun 08:46
617a2a8
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==18.0.0"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v18.0.0/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

  • 💥[Feature] Upgrade to Redwood (by @DawoudSheraz)

  • [Bugfix] Wrap Django5 warning imports in try-except block to avoid failures in django3 that's still in use in edx-platform's master branch (by @mariajgrimaldi).

  • 💥[Feature] Pull translations via atlas during Docker build. This breaks the openedx-i18n custom locale Tutor feature in favor of OEP-58 in favor of https://github.com/openedx/openedx-translations. (by @OmarIthawi)

  • 💥[Feature] The openedx-assets command is replaced with npm run subcommands. This will slightly reduce the build time for edx-platform assets and comprehensive themes. It will also open up the door for more significant build time reductions in the future. Here is a migration guide, where each command is to be run in the lms or cms container:

    Before After
    openedx-assets build --env=prod ARGS npm run build -- ARGS
    openedx-assets build --env=dev ARGS npm run build-dev -- ARGS
    openedx-assets common --env=prod ARGS npm run compile-sass -- --skip-themes ARGS
    openedx-assets common --env=dev ARGS npm run compile-sass-dev -- --skip-themes ARGS
    openedx-assets webpack --env=prod ARGS npm run webpack -- ARGS
    openedx-assets webpack --env=dev ARGS npm run webpack-dev -- ARGS
    openedx-assets npm npm run postinstall (npm clean-install runs this automatically)
    openedx-assets xmodule (no longer necessary)
    openedx-assets collect ARGS ./manage.py lms collectstatic --noinput ARGS && ./manage.py cms collectstatic ARGS
    openedx-assets watch-themes ARGS npm run watch-themes -- ARGS

For more details, see the deprecation notice for paver
and the static assets reference
in edx-platform.

  • 💥[Feature] Update MongoDB to v7.0.7 (by @DawoudSheraz) MongoDB is upgraded from version 4.4 to 7.0. Since there have been major releases since 4.4, the upgrade will need to go through them before running Mongo 7. MongoDB would need to follow 4.4 --> 5.0 --> 6.0 --> 7.0 upgrade path to work correctly. The container will keep on restarting with featureCompatibility error if the upgrade path is not followed. To upgrade mongo, run the following command based in the appropriate environment:

    tutor <dev|local|k8s> upgrade --from=quince

For k8s only, the above command will not perform the upgrade automatically. Instead, the command will output a series of commands that would need to be run manually to carry out the upgrade.

  • [Improvement] Upgrade Nodejs from 16.14.0 to 18.20.1 in edx-platform. (by @regisb)
  • [Improvement] Auto-detect bind mounts of openedx-learning for edx-platform (by @bradenmacdonald)
  • [Feature] Upgrade Open edX image to use Python 3.11 (by @DawoudSheraz)
  • [Bugfix] Remove CORS_ALLOW_HEADERS setting from the LMS/Studio config template. This setting, which holds site-agnostic application logic, is now consistently set to a reasonable value upstream by LMS and CMS config. Using the upstream values fixes a bug where course import in Studio using the new Course Authoring MFE was broken in Tutor deployments because it required additional headers to be allowed (content-range and content-disposition) (by @ormsbee)
  • [Improvement] Made Docker cache hits more frequent during the openedx image build via BuildKit's COPY --link feature (by @kdmccormick).
  • 💥[Improvement] Upgrade MySQL to 8.4.0. The upgrade should be automatic for most users. However, if you are running a third-party MySQL (i.e., RUN_MYSQL=false), you are expected to upgrade manually. Please refer to the third-party provider's documentation for detailed upgrade instructions. Ensuring that your MySQL version is up-to-date is crucial for maintaining compatibility and security. (by @rohansaeed)
  • 💥[Improvement] Ensure that the edx-platform repository git checkout is cached by Docker during image build. This means that the cache will automatically be cleared any time there is an upstream change. Thus, it is no longer necessary to run tutor images build --no-cache just to fetch the latest edx-platform changes. For this to work, any GitHub repository referenced by EDX_PLATFORM_REPOSITORY needs to end with ".git". Make sure that this is the case if you have modified the value of this setting in the past. (by @regisb)

v17.0.6

13 Jun 09:13
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==17.0.6"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v17.0.6/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

  • [Feature] Introduces the IS_FILE_RENDERED Filter, which allows developers to specify files that should be copied directly without rendering. This update empowers developers to manage special file types, ensuring that they are transferred intact without undergoing template processing. (by @Abdul-Muqadim-Arbisoft)

  • [Improvement] Remove the obsolete version property from all Docker Compose files and remove the DOCKER_COMPOSE_VERSION config setting. This addresses the deprecation warning from docker-compose (version 1.27 and above) regarding version being obsolete. (by @jasonmokk)

  • [Bugfix] Fix permissions error on windows when running tutor dev start (by @Danyal-Faheem)

v17.0.5

23 May 18:11
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==17.0.5"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v17.0.5/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

  • [Feature] Introduces the CONFIG_USER Filter. Used to declare unique key:value pairs in config.yml that will be overwritten when running tutor config save. Useful for injecting secrets from an external secrets manager into edx, or other values that may change over time that you need to programmatically fetch. (by @abonnell)

  • [Improvement] Add ability to patch proxy configuration for Caddy (by @ravikhetani)

  • [Security] Add Upstream "Privilege re-escalation in Studio after staff access removed" git security patch in Open edX Image(by @DawoudSheraz)

v17.0.4

11 Apr 09:57
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==17.0.4"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v17.0.4/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

v17.0.3

26 Mar 14:00
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==17.0.3"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v17.0.3/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

  • 💥[Bugfix] Prevent infinite growth of course structure cache in Redis. (by @regisb)
    • Redis is now configured with a maximum memory size of 4GB. If this is too low for your platform, you should increase this value using the new "redis-conf" patch.
    • Make sure that course structure cache keys have an actual timeout.
  • [Feature] Introduce the "redis-conf" patch. (by @regisb)
  • [Bugfix] Fix merge conflicts in nightly when trying to apply patches from the master branch. (by @regisb)
  • [Bugfix] Ensure mounted installable packages are installed as expected upon initialization. (by @DawoudSheraz)

v17.0.2

09 Feb 22:14
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==17.0.2"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v17.0.2/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

  • [Feature] Several enhancements to the Demo Course (by @kdmccormick):
    • The Open edX Demo Course has been re-built from scratch with up-to-date instruction-focused content. Its directory structure has changed.
    • In order to support both the old and new structures of the Demo Course's repository, the command tutor local do importdemocourse will now auto-determine the course root based on the location of course.xml. Use the --repo-dir argument to override this behavior.
    • The new command tutor local do importdemolibraries will import any content libraries defined within the Demo Course repository. At the moment, that is just the "Respiratory System Question Bank", which is an optional but helpful extension to the new Demo Course.
    • To try out the new Demo Course now, run: tutor local do importdemocourse --version master.
    • To try out the demo Respiratory System Question Bank now, run: tutor local do importdemolibraries --version master.
    • To revert back to an older Demo Course version at any point, run: tutor local do importdemocourse --version open-release/quince.2, replacing quince.2 with your preferred course version.
  • [Bugfix] Remove duplicate volume declarations that cause docker compose v2.24.1 to fail.
  • [Bugfix] Actually update the environment on tutor plugins enable .... (by @regisb)
  • [Feature] Introduce a tutor.hooks.lru_cache decorator that is automatically cleared whenever a plugin is loaded or unloaded. This is useful, in particular when a plugin implements a costly function that depends on tutor hooks. (by @regisb)
  • [Bugfix] Fix compatibility with Python 3.12 by replacing pkg_resources with importlib_metadata and importlib_resources. (by @Danyal-Faheem)
  • [Improvement] Upgrade base release to open-release/quince.2. (by @regisb)

v17.0.1

25 Jan 16:24
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==17.0.1"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v17.0.1/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

  • [Bugfix] Error "'Crypto.PublicKey.RSA.RsaKey object' has no attribute 'dq'" during tutor config save was caused by outdated minimum version of the pycryptodome package. To resolve this issue, run pip install --upgrade pycryptodome. (by @regisb)
  • [Feature] add CONFIG_INTERACTIVE action that allows tutor plugins to interact with the configuration at the time of the interactive questionnaire that happens during tutor local launch. (by @Alec4r).
  • [Improvement] Add .webp and. .otf extensions to list of binary extensions to ignore when rendering templates.
  • [Security] Fix JWT scopes in XBlock callbacks. (by @regisb)

v17.0.0

11 Dec 23:38
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==17.0.0"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v17.0.0/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

  • 💥[Feature] Upgrade to Quince. (by @regisb)
  • 💥[Feature] Replace ".local.overhang.io" hostnames by ".local.edly.io". (by @regisb)
  • 💥[Feature] Enable the Indigo theme by default, if no other theme is set. (by @regisb)
  • 💥[Deprecation] Tutor no longer supports the legacy Docker builder, which was previously available by setting DOCKER_BUILDKIT=0 in the host environment. Going forward, Tutor will always use BuildKit (a.k.a. docker buildx in Docker v19-v22, or just docker build in Docker v23). This transition will improve build performance and should be seamless for Tutor users who are running a supported Docker version (by @kdmccormick).
  • 💥[Deprecation] The template variable is_buildkit_enabled, which now always returns True, is deprecated. Plugin authors should assume BuildKit is enabled and remove the variable from their templates (by @kdmccormick).
  • 💥[Deprecation] Adding Python packages to edx-platform via private.txt is no longer supported. Instead, users should bind-mount their requirement directories with tutor mounts add .... (by @regisb)
  • [Bugfix] Updated how the Tutor setting JWT_RSA_PRIVATE_KEY is rendered into the LMS Django setting JWT_AUTH['JWT_PRIVATE_SIGNING_JWK'] as required by a recent breaking upstream change. The new representation of the JWT_PRIVATE_SIGNING_JWK simply adds the dq, dp, and qi parameters. Without this fix, LMS would encounter an InvalidKeyError on all logins. (by @kdmccormick)
  • [Improvement] You don't have to run tutor config save every time you enable or disable a plugin anymore. (by @CodeWithEmad)

v16.1.8

11 Dec 08:28
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==16.1.8"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v16.1.8/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

  • [Feature] Make it easy to work on 3rd-party edx-platform Python packages with tutor mounts add /path/to/my/package. (by @regisb)
  • [Improvement] When configured with RUN_MYSQL: true, run mysqld with binlog expiry set to 3 days (rather than the default of 30).
  • [Improvement] Fix ulimits error for elasticsearch in Docker rootless mode (by @OmarIthawi)
  • [Improvement] Do not hardcode OPENEDX_COMMON_VERSION = master in the nightly branch. This removes git conflicts whenever we bump the common version in the master branch. (by @regisb)
  • [Improvement] The iter_mounts template function can now take multiple image names as argument. This should concern only very advanced users. (by @regisb)

v16.1.7

17 Nov 17:25
Compare
Choose a tag to compare

Install this version from pip with:

pip install "tutor[full]==16.1.7"

Or download the compiled binaries:

sudo curl -L "https://github.com/overhangio/tutor/releases/download/v16.1.7/tutor-$(uname -s)_$(uname -m)" -o /usr/local/bin/tutor
sudo chmod 0755 /usr/local/bin/tutor

See the installation docs for more installation options and instructions.

Changes

  • [Feature] Upgrade to open-release/palm.4. It is strongly recommended to upgrade to this release for as long as possible before upgrading to Quince. Otherwise, many users will be logged out after the Quince upgrade and will have to log in again -- see the Quince release notes. (by @regisb)
  • [Bugfix] Fix installation of tutor due to missing dev.txt file in Python package. (by @regisb)