How to downgrade Tutor version?


Yesterday I used tutor local quickstart command for updating the image but after command finished the version of openedx upgrade to maple.1 How can I downgrade to lilac.3? When I try to build image with lilac version I got the error in bellow.

Failed to load entrypoint 'notes = tutornotes.plugin' from distribution tutor-notes 13.0.0: PyYAML 5.3.1 is installed but pyyaml>=5.4.1 is required by {'kubernetes'}
Building image overhangio/openedx:12.1.7
docker build -t overhangio/openedx:12.1.7 /home/ubuntu/.local/share/tutor/env/build/openedx
Sending build context to Docker daemon  10.78MB
Step 1/101 : FROM as minimal
 ---> ba6acccedd29
Step 2/101 : MAINTAINER <>
 ---> Using cache
 ---> 54b873367cd0
Step 3/101 : ENV DEBIAN_FRONTEND=noninteractive
 ---> Using cache
 ---> 32fdba9c8c6d
Step 4/101 : RUN apt update &&     apt install -y build-essential curl git language-pack-en
 ---> Using cache
 ---> d124def5efc4
Step 5/101 : ENV LC_ALL en_US.UTF-8
 ---> Using cache
 ---> a1450dbe1941
Step 6/101 : FROM minimal as python
 ---> a1450dbe1941
Step 7/101 : RUN apt update &&     apt install -y libssl-dev zlib1g-dev libbz2-dev     libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev     xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
 ---> Using cache
 ---> 8a85075607a3
Step 8/101 : ARG PYTHON_VERSION=3.8.12
 ---> Using cache
 ---> 5832b0cfa988
Step 9/101 : ENV PYENV_ROOT /opt/pyenv
 ---> Using cache
 ---> aa99ed4f708d
Step 10/101 : RUN git clone $PYENV_ROOT --branch v2.2.2 --depth 1
 ---> Using cache
 ---> 951d6fea772b
Step 11/101 : RUN $PYENV_ROOT/bin/pyenv install $PYTHON_VERSION
 ---> Using cache
 ---> 271410879ef6
Step 12/101 : RUN $PYENV_ROOT/versions/$PYTHON_VERSION/bin/python -m venv /openedx/venv
 ---> Using cache
 ---> f5dab876a897
Step 13/101 : FROM minimal as dockerize
 ---> a1450dbe1941
Step 14/101 : ARG DOCKERIZE_VERSION=v0.6.1
 ---> Using cache
 ---> 8e8dcc78b0e9
Step 15/101 : RUN curl -L -o /tmp/dockerize.tar.gz$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz     && tar -C /usr/local/bin -xzvf /tmp/dockerize.tar.gz     && rm /tmp/dockerize.tar.gz
 ---> Using cache
 ---> 8ef7789e017d
Step 16/101 : FROM minimal as code
 ---> a1450dbe1941
 ---> Using cache
 ---> 084bbdefbede
Step 18/101 : ARG EDX_PLATFORM_VERSION=open-release/lilac.3
 ---> Running in 8826f1b619e5
Removing intermediate container 8826f1b619e5
 ---> 4fbc52dc2a6f
Step 19/101 : RUN mkdir -p /openedx/edx-platform &&     git clone $EDX_PLATFORM_REPOSITORY --branch $EDX_PLATFORM_VERSION --depth 1 /openedx/edx-platform
 ---> Running in 52a2ad3014a0
Cloning into '/openedx/edx-platform'...
Note: switching to 'f69c46024e4368da03bcd096ed7aa91e3354d246'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

Updating files: 100% (10868/10868), done.
Removing intermediate container 52a2ad3014a0
 ---> f5552aa6f969
Step 20/101 : WORKDIR /openedx/edx-platform
 ---> Running in 2301770d9222
Removing intermediate container 2301770d9222
 ---> 20d9f33ddc16
Step 21/101 : RUN git config --global ""   && git config --global "Tutor"
 ---> Running in 20b53236d590
Removing intermediate container 20b53236d590
 ---> 89a3944550d0
Step 22/101 : RUN git fetch --depth=2 51e0ec3b97ae5badbf947d53ac07bd5496c10cde && git cherry-pick 51e0ec3b97ae5badbf947d53ac07bd5496c10cde
 ---> Running in 954482d70c9d
 * branch            51e0ec3b97ae5badbf947d53ac07bd5496c10cde -> FETCH_HEAD
Auto-merging openedx/core/djangoapps/lang_pref/
CONFLICT (content): Merge conflict in openedx/core/djangoapps/lang_pref/
Auto-merging openedx/core/djangoapps/lang_pref/tests/
Auto-merging openedx/core/djangoapps/lang_pref/
CONFLICT (content): Merge conflict in openedx/core/djangoapps/lang_pref/
Auto-merging openedx/core/djangoapps/dark_lang/
CONFLICT (content): Merge conflict in openedx/core/djangoapps/dark_lang/
error: could not apply 51e0ec3... fix: language cookie "samesite" attribute
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
The command '/bin/sh -c git fetch --depth=2 51e0ec3b97ae5badbf947d53ac07bd5496c10cde && git cherry-pick 51e0ec3b97ae5badbf947d53ac07bd5496c10cde' returned a non-zero code: 1
Error: Command failed with status 1: docker build -t overhangio/openedx:12.1.7 /home/ubuntu/.local/share/tutor/env/build/openedx

Is there anyone who can help me with this problem?

Best Regards,


1 Like


It’s not necessary anymore. My Tutor version got updated by itself. I was using version 12.1.7 before, but now it’s 13.0.2. I downgrade version Tutor and build openedx image with my lilac fork and it’s downgraded to lilac. But after that, I got some errors about some fields that are missing. I think that fields were removed by maple. And also ElasticSearch not working after the downgrade. After all these errors I exported all data I have and reinstall the Tutor from the lilac version from scratch. Then import all data. Now the system is working.

It’s been a hard day after trying to solve that issue. Now I’m wondering why Tutor upgrade itself to 13.0.2. If anyone has an idea about please inform me to avoid such a situation again.


You cannot downgrade from tutor v13 to tutor v12 because Open edX itself cannot be downgraded.

The reason why tutor was upgraded really depends on how you installed tutor in the first place, but it’s very likely that you run either:

pip install --upgrade tutor


pip install tutor-someplugin, which installed the latest version of that plugin, which depended on tutor v13, and thus tutor was upgraded.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.