Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: upgrade to quince #920

Merged
merged 118 commits into from
Dec 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
be1e169
fix: tutor nightly version suffix
regisb Dec 15, 2022
c0d7e26
fix(config): use master branch instead of olive.1
ARMBouhali Dec 28, 2022
5a3b762
fix(patches): remove openedx backport from nightly
ARMBouhali Dec 28, 2022
d5f17dd
Merge remote-tracking branch 'origin/master' into nightly
Jan 3, 2023
95182ab
Merge remote-tracking branch 'origin/master' into nightly
Jan 5, 2023
c866885
Merge remote-tracking branch 'origin/master' into nightly
Jan 6, 2023
e987db4
Merge remote-tracking branch 'origin/master' into nightly
Jan 9, 2023
9b22498
Merge remote-tracking branch 'origin/master' into nightly
Jan 17, 2023
4da32ab
refactor: annotation with __future__.annotations
Jan 17, 2023
0f67506
Merge branch 'master' into nightly
regisb Jan 18, 2023
cad1e03
Merge remote-tracking branch 'origin/master' into nightly
Jan 19, 2023
13d6fc2
Merge remote-tracking branch 'origin/master' into nightly
Jan 31, 2023
45addca
Merge remote-tracking branch 'origin/master' into nightly
Jan 31, 2023
86bf655
docs: fix typos in hooks changelog entry
kdmccormick Jan 31, 2023
0594677
Merge remote-tracking branch 'origin/master' into nightly
Jan 31, 2023
bbab35e
Merge remote-tracking branch 'origin/master' into nightly
Feb 2, 2023
928859c
Merge remote-tracking branch 'origin/master' into nightly
Feb 7, 2023
d385c44
Merge branch 'master' into nightly
regisb Feb 9, 2023
d247c28
Merge remote-tracking branch 'origin/master' into nightly
Feb 9, 2023
cbf4caf
Merge remote-tracking branch 'origin/master' into nightly
Feb 10, 2023
5f7188a
Merge branch 'master' into nightly
regisb Feb 10, 2023
eb4f0e9
Merge remote-tracking branch 'origin/master' into nightly
Feb 22, 2023
c669565
Merge remote-tracking branch 'origin/master' into nightly
Feb 27, 2023
7076b7c
Merge remote-tracking branch 'origin/master' into nightly
Feb 28, 2023
9cde932
Merge branch 'master' into nightly
regisb Mar 7, 2023
3ffecf5
Merge remote-tracking branch 'origin/master' into nightly
Mar 9, 2023
b4c58ed
Merge remote-tracking branch 'origin/master' into nightly
Mar 10, 2023
a966663
Merge remote-tracking branch 'origin/master' into nightly
Mar 13, 2023
540e53e
Merge remote-tracking branch 'origin/master' into nightly
Mar 14, 2023
5e237ee
Merge remote-tracking branch 'origin/master' into nightly
Mar 14, 2023
ddd6987
Merge remote-tracking branch 'origin/master' into nightly
Mar 15, 2023
ea1ed85
Merge remote-tracking branch 'origin/master' into nightly
Mar 15, 2023
465d807
Merge remote-tracking branch 'origin/master' into nightly
Mar 20, 2023
c9cdf29
Merge remote-tracking branch 'origin/master' into nightly
Mar 20, 2023
c3da9c5
Merge remote-tracking branch 'origin/master' into nightly
Mar 22, 2023
1c093d7
Merge remote-tracking branch 'origin/master' into nightly
Apr 12, 2023
de2ae94
Merge branch 'master' into nightly
regisb Apr 13, 2023
5326882
Merge remote-tracking branch 'origin/master' into nightly
Apr 13, 2023
e223417
Merge remote-tracking branch 'origin/master' into nightly
Apr 13, 2023
a1b1945
Merge remote-tracking branch 'origin/master' into nightly
Apr 26, 2023
a6ac7fe
Merge remote-tracking branch 'origin/master' into nightly
Apr 28, 2023
c8aff67
Merge remote-tracking branch 'origin/master' into nightly
Apr 28, 2023
cadc8c0
Merge remote-tracking branch 'origin/master' into nightly
Apr 28, 2023
ca69eb3
Merge remote-tracking branch 'origin/master' into nightly
May 3, 2023
91bdcb8
Merge remote-tracking branch 'origin/master' into nightly
May 16, 2023
e7f7d5b
Merge remote-tracking branch 'origin/master' into nightly
May 17, 2023
35743eb
Merge branch 'master' into nightly
regisb May 23, 2023
d6ae056
Merge remote-tracking branch 'origin/master' into nightly
May 26, 2023
6d62660
Merge remote-tracking branch 'origin/master' into nightly
May 29, 2023
af997db
Merge remote-tracking branch 'origin/master' into nightly
May 29, 2023
1d3a215
feat: Add support for loading in-cluster config when running inside a…
Jun 1, 2023
2d9a09f
doc: changelog entry created
Jun 1, 2023
e73e13a
Merge remote-tracking branch 'origin/master' into nightly
Jun 1, 2023
1fdbd0b
Merge remote-tracking branch 'origin/master' into nightly
Jun 6, 2023
bcc4f6b
Merge remote-tracking branch 'origin/master' into nightly
Jun 13, 2023
016502a
Merge remote-tracking branch 'origin/master' into nightly
Jun 14, 2023
c575422
Merge branch 'master' into nightly
regisb Jun 14, 2023
99f1b11
Merge remote-tracking branch 'origin/master' into nightly
Jun 15, 2023
808e212
Merge remote-tracking branch 'origin/master' into nightly
Jun 16, 2023
bfd09fa
Merge remote-tracking branch 'origin/master' into nightly
Jun 22, 2023
0f0b458
Merge remote-tracking branch 'origin/master' into nightly
Jun 23, 2023
272a5ee
Merge remote-tracking branch 'origin/master' into nightly
Jun 23, 2023
b3ef12c
Merge remote-tracking branch 'origin/master' into nightly
Jul 17, 2023
e4ddee2
build: copy in copy-node-modules.sh for npm post-install hook
kdmccormick Jul 17, 2023
98d7532
fix: copy-node-modules error with buildx
regisb Jul 21, 2023
1d46872
Merge remote-tracking branch 'origin/master' into nightly
Jul 21, 2023
e192227
Merge remote-tracking branch 'origin/master' into nightly
Jul 21, 2023
82eeca8
Merge remote-tracking branch 'origin/master' into nightly
Jul 28, 2023
78ba4ea
fix: don't apply edx-platform patches in nightly
regisb Jul 28, 2023
95f95c0
Merge remote-tracking branch 'origin/master' into nightly
Jul 28, 2023
43a633f
Merge remote-tracking branch 'origin/master' into nightly
Jul 31, 2023
982e425
Merge remote-tracking branch 'origin/master' into nightly
Jul 31, 2023
6988a0f
Merge branch 'master' into nightly
regisb Jul 31, 2023
1e0f714
Merge remote-tracking branch 'origin/master' into nightly
Aug 3, 2023
021a305
Merge branch 'master' into nightly
regisb Aug 16, 2023
4cd4ddb
Merge remote-tracking branch 'origin/master' into nightly
Aug 16, 2023
c475ff6
Merge remote-tracking branch 'origin/master' into nightly
Aug 28, 2023
06b021d
Merge remote-tracking branch 'origin/master' into nightly
Aug 28, 2023
ad6cc4f
Merge remote-tracking branch 'origin/master' into nightly
Aug 29, 2023
14dfc82
Merge remote-tracking branch 'origin/master' into nightly
Aug 29, 2023
6941021
Merge remote-tracking branch 'origin/master' into nightly
Sep 5, 2023
d58df5c
Merge remote-tracking branch 'origin/master' into nightly
Sep 6, 2023
8b332f9
Merge remote-tracking branch 'origin/master' into nightly
Sep 7, 2023
e8c66bf
Merge remote-tracking branch 'origin/master' into nightly
Sep 13, 2023
e0d6eaa
Merge remote-tracking branch 'origin/master' into nightly
Sep 22, 2023
509cddc
Merge remote-tracking branch 'origin/master' into nightly
Sep 29, 2023
2d95071
Merge remote-tracking branch 'origin/master' into nightly
Oct 2, 2023
33bf0d4
Merge remote-tracking branch 'origin/master' into nightly
Oct 2, 2023
f5311ae
Merge remote-tracking branch 'origin/master' into nightly
Oct 3, 2023
59748f1
Merge remote-tracking branch 'origin/master' into nightly
Oct 3, 2023
3264542
Merge remote-tracking branch 'origin/master' into nightly
Oct 4, 2023
2ce2b74
Merge remote-tracking branch 'origin/master' into nightly
Oct 5, 2023
eb45eb3
Merge remote-tracking branch 'origin/master' into nightly
Oct 10, 2023
8c77847
Merge remote-tracking branch 'origin/master' into nightly
Oct 11, 2023
72803f9
Merge branch 'master' into nightly
regisb Oct 14, 2023
2055eab
Merge remote-tracking branch 'origin/master' into nightly
Oct 16, 2023
8d46394
Merge remote-tracking branch 'origin/master' into nightly
Oct 16, 2023
297f657
Merge remote-tracking branch 'origin/master' into nightly
Oct 17, 2023
37a0a6a
Merge remote-tracking branch 'origin/master' into nightly
Oct 17, 2023
c999588
Merge remote-tracking branch 'origin/master' into nightly
Oct 18, 2023
7f47c3c
fix: include full-complement paramters in ``JWT_PRIVATE_SIGNING_JWK``
kdmccormick Oct 20, 2023
c273e7f
feat!: assume BuildKit is available
kdmccormick Oct 27, 2023
ebb79f0
Merge remote-tracking branch 'origin/master' into nightly
Oct 30, 2023
d21635e
Merge remote-tracking branch 'origin/master' into nightly
Nov 7, 2023
62d4dec
Merge remote-tracking branch 'origin/master' into nightly
Nov 7, 2023
fbefe52
Merge remote-tracking branch 'origin/master' into nightly
Nov 14, 2023
2b490e5
Merge branch 'master' into nightly
regisb Nov 20, 2023
c4cc727
Merge remote-tracking branch 'origin/master' into nightly
Nov 23, 2023
913a1ad
Merge branch 'master' into nightly
regisb Nov 23, 2023
6860b5d
Merge remote-tracking branch 'origin/master' into nightly
Nov 29, 2023
8d815bc
Merge branch 'master' into nightly
regisb Nov 29, 2023
0c4b82f
Merge remote-tracking branch 'origin/master' into nightly
Dec 5, 2023
9a45073
Merge remote-tracking branch 'origin/master' into nightly
Dec 8, 2023
61d37b4
fix: save configs by enable/disable plugins.
CodeWithEmad Nov 6, 2023
6582e3a
fix: fill patch catch on plugin load/unload
regisb Dec 8, 2023
6da97d2
feat: local.overhang.io -> local.edly.io
regisb Dec 5, 2023
71e4691
Merge remote-tracking branch 'origin/master' into nightly
Dec 10, 2023
0ccf486
feat: upgrade to quince
regisb Oct 11, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,18 @@ instructions, because git commits are used to generate release notes:

<!-- scriv-insert-here -->

<a id='changelog-17.0.0'></a>
## v17.0.0 (2023-12-09)

- 💥[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)

<a id='changelog-16.1.8'></a>
## v16.1.8 (2023-12-10)

Expand Down
38 changes: 9 additions & 29 deletions docs/configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ Open edX customisation

This defines the git repository from which you install Open edX platform code. If you run an Open edX fork with custom patches, set this to your own git repository. You may also override this configuration parameter at build time, by providing a ``--build-arg`` option.

- ``OPENEDX_COMMON_VERSION`` (default: ``"open-release/palm.4"``, or ``master`` in :ref:`nightly <nightly>`)
- ``OPENEDX_COMMON_VERSION`` (default: ``"open-release/quince.1"``, or ``master`` in :ref:`nightly <nightly>`)

This defines the default version that will be pulled from all Open edX git repositories.

Expand All @@ -156,9 +156,9 @@ These two configuration parameters define which Redis database to use for Open e

.. _openedx_extra_pip_requirements:

- ``OPENEDX_EXTRA_PIP_REQUIREMENTS`` (default: ``["openedx-scorm-xblock>=16.0.0,<17.0.0"]``)
- ``OPENEDX_EXTRA_PIP_REQUIREMENTS`` (default: ``[]``)

This defines extra pip packages that are going to be installed for Open edX.
Define extra pip packages that are going to be installed for edx-platform.

- ``NPM_REGISTRY`` (default: ``"https://registry.npmjs.org/"``)

Expand Down Expand Up @@ -354,36 +354,16 @@ See :ref:`the corresponding tutorial <theming>`.

.. _custom_extra_xblocks:

Installing extra xblocks and requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Would you like to include custom xblocks, or extra requirements to your Open edX platform? Additional requirements can be added to the ``OPENEDX_EXTRA_PIP_REQUIREMENTS`` parameter in the :ref:`config file <configuration>` or to the ``env/build/openedx/requirements/private.txt`` file. The difference between them, is that ``private.txt`` file, even though it could be used for both, :ref:`should be used for installing extra xblocks or requirements from private repositories <extra_private_xblocks>`. For instance, to include the `polling xblock from Opencraft <https://github.com/open-craft/xblock-poll/>`_:
Would you like to include custom xblocks, or extra requirements to your Open edX platform? Additional requirements can be added to the ``OPENEDX_EXTRA_PIP_REQUIREMENTS`` parameter in the :ref:`config file <configuration>`. For instance, to include the `polling xblock from Opencraft <https://github.com/open-craft/xblock-poll/>`_:

tutor config save --append OPENEDX_EXTRA_PIP_REQUIREMENTS=git+https://github.com/open-craft/xblock-poll.git

Alternatively, add the dependency to ``private.txt``::

echo "git+https://github.com/open-craft/xblock-poll.git" >> "$(tutor config printroot)/env/build/openedx/requirements/private.txt"

Then, the ``openedx`` docker image must be rebuilt::

tutor images build openedx

.. _extra_private_xblocks:

Installing extra requirements from private repositories
*******************************************************

When installing extra xblock or requirements from private repositories, ``private.txt`` file should be used, because it allows installing dependencies without adding git credentials to the Docker image. By adding your git credentials to the Docker image, you're risking leaking your git credentials, if you were to publish (intentionally or unintentionally) the Docker image in a public place.

To install xblocks from a private repository that requires authentication, you must first clone the repository inside the ``openedx/requirements`` folder on the host::

git clone [email protected]:me/myprivaterepo.git "$(tutor config printroot)/env/build/openedx/requirements/myprivaterepo"

Then, declare your extra requirements with the ``-e`` flag in ``openedx/requirements/private.txt``::

echo "-e ./myprivaterepo" >> "$(tutor config printroot)/env/build/openedx/requirements/private.txt"

.. _edx_platform_fork:

Running a fork of ``edx-platform``
Expand All @@ -401,16 +381,16 @@ Note that your edx-platform version must be a fork of the latest release **tag**

If you don't create your fork from this tag, you *will* have important compatibility issues with other services. In particular:

- Do not try to run a fork from an older (pre-Palm) version of edx-platform: this will simply not work.
- Do not try to run a fork from an older (pre-Quince) version of edx-platform: this will simply not work.
- Do not try to run a fork from the edx-platform master branch: there is a 99% probability that it will fail.
- Do not try to run a fork from the open-release/palm.master branch: Tutor will attempt to apply security and bug fix patches that might already be included in the open-release/palm.master but which were not yet applied to the latest release tag. Patch application will thus fail if you base your fork from the open-release/palm.master branch.
- Do not try to run a fork from the open-release/quince.master branch: Tutor will attempt to apply security and bug fix patches that might already be included in the open-release/quince.master but which were not yet applied to the latest release tag. Patch application will thus fail if you base your fork from the open-release/quince.master branch.

.. _i18n:

Adding custom translations
~~~~~~~~~~~~~~~~~~~~~~~~~~

If you are not running Open edX in English (``LANGUAGE_CODE`` default: ``"en"``), chances are that some strings will not be properly translated. In most cases, this is because not enough contributors have helped translate Open edX into your language. It happens! With Tutor, available translated languages include those that come bundled with `edx-platform <https://github.com/openedx/edx-platform/tree/open-release/palm.master/conf/locale>`__ as well as those from `openedx-i18n <https://github.com/openedx/openedx-i18n/tree/master/edx-platform/locale>`__.
If you are not running Open edX in English (``LANGUAGE_CODE`` default: ``"en"``), chances are that some strings will not be properly translated. In most cases, this is because not enough contributors have helped translate Open edX into your language. It happens! With Tutor, available translated languages include those that come bundled with `edx-platform <https://github.com/openedx/edx-platform/tree/open-release/quince.master/conf/locale>`__ as well as those from `openedx-i18n <https://github.com/openedx/openedx-i18n/tree/master/edx-platform/locale>`__.

Tutor offers a relatively simple mechanism to add custom translations to the openedx Docker image. You should create a folder that corresponds to your language code in the "build/openedx/locale" folder of the Tutor environment. This folder should contain a "LC_MESSAGES" folder. For instance::

Expand All @@ -431,9 +411,9 @@ Then, add a "django.po" file there that will contain your custom translations::
.. warning::
Don't forget to specify the file ``Content-Type`` when adding message strings with non-ASCII characters; otherwise a ``UnicodeDecodeError`` will be raised during compilation.

The "String to translate" part should match *exactly* the string that you would like to translate. You cannot make it up! The best way to find this string is to copy-paste it from the `upstream django.po file for the English language <https://github.com/openedx/edx-platform/blob/open-release/palm.master/conf/locale/en/LC_MESSAGES/django.po>`__.
The "String to translate" part should match *exactly* the string that you would like to translate. You cannot make it up! The best way to find this string is to copy-paste it from the `upstream django.po file for the English language <https://github.com/openedx/edx-platform/blob/open-release/quince.master/conf/locale/en/LC_MESSAGES/django.po>`__.

If you cannot find the string to translate in this file, then it means that you are trying to translate a string that is used in some piece of javascript code. Those strings are stored in a different file named "djangojs.po". You can check it out `in the edx-platform repo as well <https://github.com/openedx/edx-platform/blob/open-release/palm.master/conf/locale/en/LC_MESSAGES/djangojs.po>`__. Your custom javascript strings should also be stored in a "djangojs.po" file that should be placed in the same directory.
If you cannot find the string to translate in this file, then it means that you are trying to translate a string that is used in some piece of javascript code. Those strings are stored in a different file named "djangojs.po". You can check it out `in the edx-platform repo as well <https://github.com/openedx/edx-platform/blob/open-release/quince.master/conf/locale/en/LC_MESSAGES/djangojs.po>`__. Your custom javascript strings should also be stored in a "djangojs.po" file that should be placed in the same directory.

To recap, here is an example. To translate a few strings in French, both from django.po and djangojs.po, we would have the following file hierarchy::

Expand Down
8 changes: 4 additions & 4 deletions docs/dev.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ This will perform several tasks. It will:
* build the "openedx-dev" Docker image, which is based on the "openedx" production image but is `specialized for developer usage`_ (eventually with your fork),
* stop any existing locally-running Tutor containers,
* disable HTTPS,
* set ``LMS_HOST`` to `local.overhang.io <http://local.overhang.io>`_ (a convenience domain that simply `points at 127.0.0.1 <https://dnschecker.org/#A/local.overhang.io>`_),
* set ``LMS_HOST`` to `local.edly.io <http://local.edly.io>`_ (a convenience domain that simply `points at 127.0.0.1 <https://dnschecker.org/#A/local.edly.io>`_),
* prompt for a platform details (with suitable defaults),
* start LMS, CMS, supporting services, and any plugged-in services,
* ensure databases are created and migrated, and
Expand All @@ -42,8 +42,8 @@ Additionally, when a local clone of edx-platform is bind-mounted, it will:

Once setup is complete, the platform will be running in the background:

* LMS will be accessible at `http://local.overhang.io:8000 <http://local.overhang.io:8000>`_.
* CMS will be accessible at `http://studio.local.overhang.io:8001 <http://studio.local.overhang.io:8001>`_.
* LMS will be accessible at `http://local.edly.io:8000 <http://local.edly.io:8000>`_.
* CMS will be accessible at `http://studio.local.edly.io:8001 <http://studio.local.edly.io:8001>`_.
* Plugged-in services should be accessible at their documented URLs.

Now, use the ``tutor dev ...`` command-line interface to manage the development environment. Some common commands are described below.
Expand Down Expand Up @@ -113,7 +113,7 @@ The ``openedx-dev`` Docker image is based on the same ``openedx`` image used by

- The user that runs inside the container has the same UID as the user on the host, to avoid permission problems inside mounted volumes (and in particular in the edx-platform repository).
- Additional Python and system requirements are installed for convenient debugging: `ipython <https://ipython.org/>`__, `ipdb <https://pypi.org/project/ipdb/>`__, vim, telnet.
- The edx-platform `development requirements <https://github.com/openedx/edx-platform/blob/open-release/palm.master/requirements/edx/development.in>`__ are installed.
- The edx-platform `development requirements <https://github.com/openedx/edx-platform/blob/open-release/quince.master/requirements/edx/development.in>`__ are installed.


If you are using a custom ``openedx`` image, then you will need to rebuild ``openedx-dev`` every time you modify ``openedx``. To so, run::
Expand Down
2 changes: 1 addition & 1 deletion docs/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ The `devstack <https://github.com/openedx/devstack>`_ is meant for development o
Is Tutor officially supported by edX?
-------------------------------------

Yes: as of the Open edX Maple release (December 9th 2021), Tutor is the only officially supported installation method for Open edX: see the `official installation instructions <https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/open-release-palm.master/installation/index.html>`__.
Yes: as of the Open edX Maple release (December 9th 2021), Tutor is the only officially supported installation method for Open edX: see the `official installation instructions <https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/open-release-quince.master/installation/index.html>`__.

What features are missing from Tutor?
-------------------------------------
Expand Down
6 changes: 3 additions & 3 deletions docs/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Requirements
* Architecture: Both AMD64 and ARM64 are supported.
* Required software:

- `Docker <https://docs.docker.com/engine/installation/>`__: v20.10.15+
- `Docker <https://docs.docker.com/engine/installation/>`__: v24.0.5+ (with BuildKit 0.11+)
- `Docker Compose <https://docs.docker.com/compose/install/>`__: v2.0.0+

.. warning::
Expand Down Expand Up @@ -123,11 +123,11 @@ Major Open edX releases are published twice a year, in June and December, by the
4. Test the new release in a sandboxed environment.
5. If you are running edx-platform, or some other repository from a custom branch, then you should rebase (and test) your changes on top of the latest release tag (see :ref:`edx_platform_fork`).

The process for upgrading from one major release to the next works similarly to any other upgrade, with the ``launch`` command (see above). The single difference is that if the ``launch`` command detects that your tutor environment was generated with an older release, it will perform a few release-specific upgrade steps. These extra upgrade steps will be performed just once. But they will be ignored if you updated your local environment (for instance: with ``tutor config save``) before running ``launch``. This situation typically occurs if you need to re-build some Docker images (see above). In such a case, you should make use of the ``upgrade`` command. For instance, to upgrade a local installation from Olive to Palm and rebuild some Docker images, run::
The process for upgrading from one major release to the next works similarly to any other upgrade, with the ``launch`` command (see above). The single difference is that if the ``launch`` command detects that your tutor environment was generated with an older release, it will perform a few release-specific upgrade steps. These extra upgrade steps will be performed just once. But they will be ignored if you updated your local environment (for instance: with ``tutor config save``) before running ``launch``. This situation typically occurs if you need to re-build some Docker images (see above). In such a case, you should make use of the ``upgrade`` command. For instance, to upgrade a local installation from Palm to Quince and rebuild some Docker images, run::

tutor config save
tutor images build all # list the images that should be rebuilt here
tutor local upgrade --from=olive
tutor local upgrade --from=palm
tutor local launch

.. _autocomplete:
Expand Down
4 changes: 0 additions & 4 deletions docs/plugins/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ Enable/disable a plugin::
tutor plugins enable myplugin
tutor plugins disable myplugin

After enabling or disabling a plugin, the environment should be re-generated with::

tutor config save

The full plugins CLI is described in the :ref:`reference documentation <cli_plugins>`.

.. _existing_plugins:
Expand Down
4 changes: 0 additions & 4 deletions docs/plugins/v0/gettingstarted.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,6 @@ You can then enable your newly-created plugin::

tutor plugins enable googleanalytics

Update your environment to apply changes from your plugin::

tutor config save

You should be able to view your changes in every LMS and CMS settings file::

grep -r googleanalytics "$(tutor config printroot)/env/apps/openedx/settings/"
Expand Down
2 changes: 1 addition & 1 deletion docs/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Yes :) This is what happens when you run ``tutor local launch``:
2. Configuration files are generated from templates.
3. Docker images are downloaded.
4. Docker containers are provisioned.
5. A full, production-ready Open edX platform (`Palm <https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/open-release-palm.master/platform_releases/palm.html>`__ release) is run with docker-compose.
5. A full, production-ready Open edX platform (`Quince <https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/open-release-quince.master/platform_releases/quince.html>`__ release) is run with docker-compose.

The whole procedure should require less than 10 minutes, on a server with good bandwidth. Note that your host environment will not be affected in any way, since everything runs inside docker containers. Root access is not even necessary.

Expand Down
10 changes: 5 additions & 5 deletions docs/reference/indexes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ Plugin indexes are a great way to have your plugins discovered by other users. P
Index file paths
================

A plugin index is a yaml-formatted file. It can be stored on the web or on your computer. In both cases, the index file location must end with "<current release name>/plugins.yml". For instance, the following are valid index locations if you run the Open edX "Palm" release:
A plugin index is a yaml-formatted file. It can be stored on the web or on your computer. In both cases, the index file location must end with "<current release name>/plugins.yml". For instance, the following are valid index locations if you run the Open edX "Quince" release:

- https://overhang.io/tutor/main/palm/plugins.yml
- ``/path/to/your/local/index/palm/plugins.yml``
- https://overhang.io/tutor/main/quince/plugins.yml
- ``/path/to/your/local/index/quince/plugins.yml``

To add either indexes, run the ``tutor plugins index add`` command without the suffix. For instance::

Expand Down Expand Up @@ -106,9 +106,9 @@ Manage plugins in development
Plugin developers and maintainers often want to install local versions of their plugins. They usually achieve this with ``pip install -e /path/to/tutor-plugin``. We can improve that workflow by creating an index for local plugins::

# Create the plugin index directory
mkdir -p ~/localindex/palm/
mkdir -p ~/localindex/quince/
# Edit the index
vim ~/localindex/palm/plugins.yml
vim ~/localindex/quince/plugins.yml

Add the following to the index::

Expand Down
Loading