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 Olive #734

Merged
merged 181 commits into from
Dec 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
181 commits
Select commit Hold shift + click to select a range
c3c914f
feat: upgrade to nightly
regisb Sep 7, 2021
eed13cd
chore: upgrade elasticsearch/mongodb/redis
regisb Oct 25, 2021
8cb74b2
fix: running mongodb locally and on k8s
regisb Oct 25, 2021
4f034f8
fix: lms 500 error caused by missing LANGUAGE_COOKIE_NAME setting
regisb Oct 25, 2021
e19f334
feat: get rid of the nginx container and services
regisb Oct 14, 2021
f9402f7
feat: run all services as unprivileged containers
regisb Sep 23, 2021
f678915
fix: permissions image name
regisb Oct 25, 2021
ee6d63e
Merge remote-tracking branch 'origin/master' into nightly
Oct 25, 2021
da7d95d
Merge remote-tracking branch 'origin/master' into nightly
Oct 25, 2021
43259d5
Merge remote-tracking branch 'origin/master' into nightly
Oct 28, 2021
7a01f9d
fix: always run Caddy on Kubernetes
regisb Nov 1, 2021
c9bde8b
Merge remote-tracking branch 'origin/master' into nightly
Nov 1, 2021
f852896
Merge branch 'master' into nightly
regisb Nov 2, 2021
10ea9df
Merge remote-tracking branch 'origin/master' into nightly
Nov 2, 2021
999c23d
chore: get rid of tutor-openedx
regisb Nov 2, 2021
791bca1
doc: remove now irrelevant comment
regisb Nov 2, 2021
7a3026e
feat: move all forum-related code to a dedicated plugin
regisb Oct 25, 2021
f251cd7
Merge remote-tracking branch 'origin/master' into nightly
Nov 8, 2021
72baae0
fix: enable plugins to implement the "caddyfile" patch
regisb Nov 9, 2021
0153e7a
fix: https test
regisb Nov 9, 2021
1a5c6da
Merge branch 'master' into nightly
regisb Nov 9, 2021
ddbfdb9
fix: disable forum feature by default
regisb Nov 15, 2021
e0335bb
fix: get rid of useless redis folder in permission setting
regisb Nov 16, 2021
ffd32a2
Merge branch 'master' into nightly
regisb Nov 18, 2021
1ddf6b1
fix: don't attempt to security patch edx-platform
regisb Nov 18, 2021
9a695da
Merge branch 'master' into nightly
regisb Nov 22, 2021
5558257
fix: Stop creating immutable resource label that breaks "tutor k8s" o…
fghaas Nov 18, 2021
eb47a58
Merge remote-tracking branch 'origin/master' into nightly
Nov 25, 2021
a074ff3
fix: docker-compose project name in dev on nightly
regisb Nov 29, 2021
a46e4d2
Merge remote-tracking branch 'origin/master' into nightly
Nov 29, 2021
e9e1df9
Merge branch 'master' into nightly
regisb Nov 30, 2021
1f8555b
chore: drop python 3.5 compatibility
regisb Nov 30, 2021
c152578
Merge branch 'master' into nightly
regisb Dec 2, 2021
0052481
fix: lint unused arguments in code base
regisb Nov 8, 2021
092dfbf
refactor: clarify configuration management
regisb Nov 8, 2021
31eab76
fix: breaking "config save"
regisb Dec 8, 2021
dd2f7ce
Merge branch 'master' into nightly
regisb Dec 8, 2021
3ad68ab
fix: do not save the full config on "plugins en/disable"
regisb Dec 8, 2021
e5b6360
security: convert NodePort to ClusterIP for better isolation
regisb Nov 29, 2021
39ca60f
feat: better support of caddy as a k8s load balancer
regisb Nov 29, 2021
23c8e2c
Merge remote-tracking branch 'origin/master' into nightly
Dec 14, 2021
1fe311d
feat: `k8s scale` command + tutorial
regisb Nov 30, 2021
bf40724
fix: a migration on nightly/master open edx now requires MongoDB
bradenmacdonald Dec 15, 2021
7188c3e
Merge branch 'master' into nightly
regisb Dec 20, 2021
34c8199
Merge branch 'master' into nightly
regisb Dec 22, 2021
2a794c3
Merge remote-tracking branch 'origin/master' into nightly
Jan 3, 2022
85bee0c
Merge remote-tracking branch 'origin/master' into nightly
Jan 4, 2022
80acddb
Merge remote-tracking branch 'origin/master' into nightly
Jan 4, 2022
4db6ccf
Merge branch 'master' into nightly
regisb Jan 4, 2022
48a4f75
Merge remote-tracking branch 'origin/master' into nightly
Jan 4, 2022
69ee69c
Merge remote-tracking branch 'origin/master' into nightly
Jan 5, 2022
0a7bb50
Merge remote-tracking branch 'origin/master' into nightly
Jan 6, 2022
a9b9c4b
Merge remote-tracking branch 'origin/master' into nightly
Jan 8, 2022
6b31985
Merge remote-tracking branch 'origin/master' into nightly
Jan 8, 2022
61bde73
Merge remote-tracking branch 'origin/master' into nightly
Jan 8, 2022
eb37991
Merge remote-tracking branch 'origin/master' into nightly
Jan 18, 2022
83e09bb
Merge remote-tracking branch 'origin/master' into nightly
Jan 19, 2022
71b4c14
chore: set CMS_CFG instead of STUDIO_CFG
kdmccormick Jan 11, 2022
a675eb1
Merge remote-tracking branch 'origin/master' into nightly
Jan 20, 2022
2bfd338
Merge remote-tracking branch 'origin/master' into nightly
Jan 25, 2022
ba8a07c
Merge remote-tracking branch 'origin/master' into nightly
Jan 30, 2022
b88e950
Merge remote-tracking branch 'origin/master' into nightly
Jan 31, 2022
b978f7d
Merge branch 'master' into nightly
regisb Feb 1, 2022
1238aba
Merge branch 'master' into nightly
regisb Feb 8, 2022
e143d7e
Merge branch 'master' into nightly
regisb Feb 14, 2022
9bc0dca
Merge remote-tracking branch 'origin/master' into nightly
Feb 14, 2022
15bc7e5
Merge remote-tracking branch 'origin/master' into nightly
Feb 21, 2022
829e89e
Merge remote-tracking branch 'origin/master' into nightly
Mar 10, 2022
b982da9
Merge remote-tracking branch 'origin/master' into nightly
Mar 14, 2022
e991e84
Merge remote-tracking branch 'origin/master' into nightly
Mar 15, 2022
dbe3571
Merge remote-tracking branch 'origin/master' into nightly
Mar 17, 2022
76ef7de
fix: lms-worker/cms-worker command update for Celery 5
kdmccormick Mar 18, 2022
cdcd5c7
v13.1.8 (2022-03-18)
regisb Mar 24, 2022
c19880d
Merge remote-tracking branch 'origin/master' into nightly
Mar 24, 2022
cd4ea1e
Merge remote-tracking branch 'origin/master' into nightly
Mar 24, 2022
b488771
Merge remote-tracking branch 'origin/master' into nightly
Mar 29, 2022
cbe753b
docs: trim changelog-nightly
regisb Mar 28, 2022
18d3b57
fix: remove references to edX from bulk emails
regisb Mar 28, 2022
ffcaac5
Merge remote-tracking branch 'origin/master' into nightly
Mar 31, 2022
83e7574
Merge remote-tracking branch 'origin/master' into nightly
Mar 31, 2022
f312134
Merge remote-tracking branch 'origin/master' into nightly
Apr 1, 2022
95ea214
Merge branch 'master' into nightly
regisb Apr 11, 2022
698f498
build: NIGHTLY ONLY: install nightly branches of official plugins
kdmccormick Apr 6, 2022
c685466
Merge branch 'master' into nightly
regisb Apr 12, 2022
430f46d
Merge branch 'master' into nightly
regisb Apr 12, 2022
b70bbdd
Merge remote-tracking branch 'origin/master' into nightly
Apr 15, 2022
f147fa9
Merge branch 'master' into nightly
regisb Apr 15, 2022
448bfc2
Merge remote-tracking branch 'origin/master' into nightly
Apr 15, 2022
3839d37
Merge remote-tracking branch 'origin/master' into nightly
Apr 19, 2022
224cd6c
Merge branch 'master' into nightly
regisb Apr 20, 2022
853936c
Merge remote-tracking branch 'origin/master' into nightly
Apr 21, 2022
91673ac
Merge remote-tracking branch 'origin/master' into nightly
Apr 22, 2022
cb13112
Merge remote-tracking branch 'origin/master' into nightly
Apr 23, 2022
d77c2ca
Merge remote-tracking branch 'origin/master' into nightly
Apr 24, 2022
0fdf8d8
v13.2.0 (2022-04-24)
regisb Apr 24, 2022
44db619
Merge remote-tracking branch 'origin/master' into nightly
Apr 24, 2022
13382c8
ci: attempt to fix github release CI
regisb Apr 24, 2022
1ef5c37
Merge remote-tracking branch 'origin/master' into nightly
Apr 24, 2022
1956d89
Merge remote-tracking branch 'origin/master' into nightly
Apr 24, 2022
66d2f93
Merge remote-tracking branch 'origin/master' into nightly
Apr 25, 2022
50210f1
Merge remote-tracking branch 'origin/master' into nightly
Apr 25, 2022
2e3e770
Merge branch 'master' into nightly
regisb Apr 26, 2022
87132d2
Merge branch 'master' into nightly
regisb May 6, 2022
b8ced0b
Merge remote-tracking branch 'origin/master' into nightly
May 7, 2022
5ca30c7
Merge remote-tracking branch 'origin/master' into nightly
May 10, 2022
9085005
Merge remote-tracking branch 'origin/master' into nightly
May 16, 2022
ed45d4f
Merge branch 'master' into nightly
regisb May 19, 2022
9c00a6a
Merge remote-tracking branch 'origin/master' into nightly
May 19, 2022
d9c9ba4
Merge remote-tracking branch 'origin/master' into nightly
May 20, 2022
0ce57c9
Merge remote-tracking branch 'origin/master' into nightly
May 23, 2022
26c68c6
Merge branch 'master' into nightly
regisb May 24, 2022
e942fca
Merge remote-tracking branch 'origin/master' into nightly
May 30, 2022
ec4063a
Merge remote-tracking branch 'origin/master' into nightly
May 30, 2022
a5262e4
Merge remote-tracking branch 'origin/master' into nightly
May 30, 2022
9a1cca6
Merge remote-tracking branch 'origin/master' into nightly
Jun 3, 2022
65c58c1
security: apply logout redirect security patch
regisb Jun 3, 2022
8a990c2
v13.3.0 (2022-06-03)
regisb Jun 3, 2022
33c5c32
chore: upgrade to node 16 in openedx Docker image
regisb Jun 3, 2022
5faf03e
fix: revert back to "npm install"
regisb Jun 3, 2022
cb8d6b7
Merge branch 'master' into nightly
regisb Jun 6, 2022
7205c64
Merge remote-tracking branch 'origin/master' into nightly
Jun 6, 2022
ec31b82
Merge remote-tracking branch 'origin/master' into nightly
Jun 7, 2022
4af9fed
Merge branch 'master' into nightly
regisb Jun 9, 2022
4dd8e87
Merge remote-tracking branch 'origin/master' into nightly
Jun 11, 2022
889725b
Merge remote-tracking branch 'origin/master' into nightly
Jun 13, 2022
c014a05
Merge branch 'master' into nightly
regisb Jun 16, 2022
2668633
Merge remote-tracking branch 'origin/master' into nightly
Jun 20, 2022
7f1162d
Merge remote-tracking branch 'origin/master' into nightly
Jun 22, 2022
570639a
Merge branch 'master' into nightly
regisb Jun 27, 2022
9d6d486
Merge remote-tracking branch 'origin/master' into nightly
Jun 27, 2022
ede972a
Merge remote-tracking branch 'origin/master' into nightly
Jun 28, 2022
9d5e94b
Merge remote-tracking branch 'origin/master' into nightly
Jul 4, 2022
6ac1c0d
fix: replica set error from pymongo 3.10 -> 3.12 upgrade
Jun 30, 2022
9d1ce47
docs: update test-running guide with new top-level xmodule package
kdmccormick Jul 13, 2022
8e188dc
Merge branch 'master' into nightly
regisb Jul 25, 2022
cb1b22f
Merge remote-tracking branch 'origin/master' into nightly
Jul 25, 2022
31fdcc6
Merge remote-tracking branch 'origin/master' into nightly
Jul 29, 2022
3024bb2
Merge branch 'master' into nightly
regisb Aug 29, 2022
b879a9d
feat: remove the implementation of dev runserver
Jul 21, 2022
72c417d
docs: add entry to CHANGELOG-nightly.md
Jul 21, 2022
d9314b7
build: prepare Dockerfile for common/lib removal
kdmccormick Aug 30, 2022
435de0f
Merge remote-tracking branch 'origin/master' into nightly
Sep 8, 2022
45316bf
Merge remote-tracking branch 'origin/master' into nightly
Sep 12, 2022
a7da98a
Merge remote-tracking branch 'origin/master' into nightly
Sep 29, 2022
fe901ab
feat: deprecate "quickstart" and rename to "launch"
Sep 30, 2022
2f442d7
fix: edx-platform requirement installation
regisb Sep 29, 2022
883b358
Merge branch 'master' into nightly
regisb Oct 3, 2022
a6c6fde
fix: installation of local requirements
regisb Oct 3, 2022
3de2837
docs: in quickstart's helptext, note that it's renamed to 'launch'
kdmccormick Oct 3, 2022
e1f0742
Merge remote-tracking branch 'origin/master' into nightly
Oct 4, 2022
9c49205
Merge remote-tracking branch 'origin/master' into nightly
Oct 10, 2022
34fd1dc
Merge remote-tracking branch 'origin/master' into nightly
Oct 19, 2022
e56918b
depr: get rid of the `local/dev bindmount` commands
regisb Oct 18, 2022
5419be7
Merge branch 'master' into nightly
regisb Oct 26, 2022
19f3f32
Merge branch 'master' into nightly
regisb Nov 3, 2022
7879506
Merge remote-tracking branch 'origin/master' into nightly
Nov 14, 2022
e734f52
feat: filter priorities
regisb Nov 8, 2022
b6dc65c
refactor: deduplicate jobs code
regisb Oct 18, 2022
16e6131
feat: pluggable `local/dev/k8s do <job>` commands
regisb Oct 19, 2022
0453b0c
feat: add `-h` help option to all commands
regisb Nov 11, 2022
d7c6678
Merge branch 'master' into nightly
regisb Nov 15, 2022
1890557
Merge remote-tracking branch 'origin/master' into nightly
Nov 17, 2022
b4a8069
fix: init template paths
regisb Nov 21, 2022
17028c5
Merge remote-tracking branch 'origin/master' into nightly
Nov 21, 2022
627b93b
Merge remote-tracking branch 'origin/master' into nightly
Nov 21, 2022
87e5bb7
Merge remote-tracking branch 'origin/master' into nightly
Nov 23, 2022
c06ac5b
Merge branch 'master' into nightly
regisb Nov 24, 2022
478d44c
fix: type DO_* filters and actions
regisb Nov 24, 2022
85d8684
fix: do not prepend DJANGO settings info to all jobs
regisb Nov 24, 2022
67e8f52
Merge remote-tracking branch 'origin/master' into nightly
Nov 28, 2022
74758fb
Merge remote-tracking branch 'origin/master' into nightly
Nov 28, 2022
a0480f8
Merge remote-tracking branch 'origin/master' into nightly
Nov 28, 2022
e4e9cd8
Merge branch 'master' into nightly
regisb Nov 29, 2022
bb849b8
Merge remote-tracking branch 'origin/master' into nightly
Nov 29, 2022
d9cdf17
Merge remote-tracking branch 'origin/master' into nightly
Nov 29, 2022
9466fc3
Merge remote-tracking branch 'origin/master' into nightly
Nov 29, 2022
12fe99f
Merge remote-tracking branch 'origin/master' into nightly
Nov 29, 2022
506e88d
Merge remote-tracking branch 'origin/master' into nightly
Nov 29, 2022
a8039dc
Merge remote-tracking branch 'origin/master' into nightly
Nov 29, 2022
5ef2464
Merge branch 'nightly' into olive
regisb Dec 6, 2022
c26999e
feat: upgrade to olive
regisb Nov 22, 2022
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
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,29 @@ instructions, because git commits are used to generate release notes:

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

<a id='changelog-15.0.0'></a>
## v15.0.0 (2022-12-06)


- 💥[Feature] Upgrade to Olive (by @regisb):
- Mypy type checking options were modified: developers are encouraged to add the `--implicit-reexport` option to their IDE.
- [Bugfix] Update problem templates according newer python versions. (by @mariajgrimaldi)
- [Improvement] Add the `-h` help option to all commands and subcommands. Previously, we could only use `--help`, which is quite long for lazy fingers. (by @regisb)
- 💥[Feature] Add an extensible `local/dev/k8s do ...` command to trigger custom job commands. These commands are used to run a series of bash scripts in designated containers. Any plugin can add custom jobs thanks to the `CLI_DO_COMMANDS` filter. This causes the following breaking changes:
- The "init", "createuser", "settheme", "importdemocourse" commands were all migrated to this new interface. For instance, `tutor local init` was replaced by `tutor local do init`.
- Plugin developers are encouraged to replace calls to the `COMMANDS_INIT` and `COMMANDS_PRE_INIT` filters by `CLI_DO_INIT_TASKS`.
- [Feature] Implement hook filter priorities, which work like action priorities. (by @regisb)
- 💥[Improvement] Remove the `local/dev bindmount` commands, which have been marked as deprecated for some time. The `--mount` option should be used instead.
- 💥[Bugfix] Fix local installation requirements. Plugins that implemented the "openedx-dockerfile-post-python-requirements" patch and that needed access to the edx-platform repo will no longer work. Instead, these plugins should implement the "openedx-dockerfile-pre-assets" patch. This scenario should be very rare, though. (by @regisb)
- 💥[Improvement] Rename the implementation of tutor <mode> quickstart to tutor <mode> launch. (by @Carlos-Muniz)
- 💥[Improvement] Remove the implementation of tutor dev runserver. (by @Carlos-Muniz)
- [Bugfix] Fix MongoDB replica set connection error resulting from edx-platform's pymongo (3.10.1 -> 3.12.3) upgrade ([edx-platform#30569](https://github.com/openedx/edx-platform/pull/30569)). (by @ormsbee)
- [Improvement] For Tutor Nightly (and only Nightly), official plugins are now installed from their nightly branches on GitHub instead of a version range on PyPI. This will allow Nightly users to install all official plugins by running ``pip install -e ".[full]"``.
- [Bugfix] Remove edX references from bulk emails ([issue](https://github.com/openedx/build-test-release-wg/issues/100)).
- [Bugfix] Update ``celery`` invocations for lms-worker and cms-worker to be compatible with Celery 5 CLI.
- [Improvement] Point CMS at its config file using ``CMS_CFG`` environment variable instead of deprecated ``STUDIO_CFG``.
- [Bugfix] Start MongoDB when running migrations, because a new data migration fails if MongoDB is not running.

<a id='changelog-14.2.3'></a>
## v14.2.3 (2022-12-06)

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ test-unit: ## Run unit tests
python -m unittest discover tests

test-types: ## Check type definitions
mypy --exclude=templates --ignore-missing-imports --strict ${SRC_DIRS}
mypy --exclude=templates --ignore-missing-imports --implicit-reexport --strict ${SRC_DIRS}

test-pythonpackage: build-pythonpackage ## Test that package can be uploaded to pypi
twine check dist/tutor-$(shell make version).tar.gz
Expand Down
11 changes: 6 additions & 5 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,21 +56,22 @@ Features

.. _readme_intro_end:

.. image:: ./docs/img/quickstart.gif
:alt: Tutor local quickstart
:target: https://terminalizer.com/view/91b0bfdd557
.. image:: ./docs/img/launch.webp
:alt: Tutor local launch
:target: https://www.terminalizer.com/view/3a8d55835686

Quickstart
----------

1. Install the `latest stable release <https://github.com/overhangio/tutor/releases>`_ of Tutor
2. Run ``tutor local quickstart``
2. Run ``tutor local launch``
3. You're done!

Documentation
-------------

Extensive documentation is available online: https://docs.tutor.overhang.io/
Extensive documentation is available: https://docs.tutor.overhang.io/
Extensive documentation is available: https://docs.tutor.overhang.io/

Is there a problem?
-------------------
Expand Down
22 changes: 9 additions & 13 deletions docs/configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ This section does not cover :ref:`plugin development <plugins>`. For simple chan
Configuration
-------------

With Tutor, all Open edX deployment parameters are stored in a single ``config.yml`` file. This is the file that is generated when you run ``tutor local quickstart`` or ``tutor config save``. To view the content of this file, run::
With Tutor, all Open edX deployment parameters are stored in a single ``config.yml`` file. This is the file that is generated when you run ``tutor local launch`` or ``tutor config save``. To view the content of this file, run::

cat "$(tutor config printroot)/config.yml"

Expand Down Expand Up @@ -130,7 +130,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/nutmeg.1"``)
- ``OPENEDX_COMMON_VERSION`` (default: ``"open-release/olive.1"``)

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

Expand All @@ -150,7 +150,7 @@ 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<13.0.0,>=12.0.0``)
- ``OPENEDX_EXTRA_PIP_REQUIREMENTS`` (default: ``openedx-scorm-xblock>=15.0.0,<16.0.0``)

This defines extra pip packages that are going to be installed for Open edX.

Expand All @@ -170,10 +170,6 @@ This configuration parameter sets the Django setting ``AWS_SECRET_ACCESS_KEY`` i

This configuration parameter sets the name of the MySQL Database to be used by the Open edX Instance.

- ``OPENEDX_CSMH_MYSQL_DATABASE`` (default: ``"{{ OPENEDX_MYSQL_DATABASE }}_csmh"``)

This configuration parameter allows you to configure the name of the separate Courseware Student-Module History (CSMH) database.

- ``OPENEDX_MYSQL_USERNAME`` (default: ``"openedx"``)

This configuration parameter sets the username associated with the MySQL Database.
Expand Down Expand Up @@ -330,7 +326,7 @@ The following sections describe how to modify various aspects of the docker imag

tutor local stop

The custom image will be used the next time you run ``tutor local quickstart`` or ``tutor local start``. Do not attempt to run ``tutor local restart``! Restarting will not pick up the new image and will continue to use the old image.
The custom image will be used the next time you run ``tutor local launch`` or ``tutor local start``. Do not attempt to run ``tutor local restart``! Restarting will not pick up the new image and will continue to use the old image.

openedx Docker Image build arguments
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down Expand Up @@ -408,14 +404,14 @@ If you don't create your fork from this tag, you *will* have important compatibi

- Do not try to run a fork from an older (pre-Nutmeg) 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/nutmeg.master branch: Tutor will attempt to apply security and bug fix patches that might already be included in the open-release/nutmeg.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/nutmeg.master branch.
- Do not try to run a fork from the open-release/olive.master branch: Tutor will attempt to apply security and bug fix patches that might already be included in the open-release/olive.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/olive.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/nutmeg.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/olive.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 @@ -436,9 +432,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/nutmeg.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/olive.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/nutmeg.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/olive.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 Expand Up @@ -486,7 +482,7 @@ By default, Tutor runs the `overhangio/openedx <https://hub.docker.com/r/overhan

(See the relevant :ref:`configuration parameters <docker_images>`.)

The customised Docker image tag value will then be used by Tutor to run the platform, for instance when running ``tutor local quickstart``.
The customised Docker image tag value will then be used by Tutor to run the platform, for instance when running ``tutor local launch``.


Passing custom docker build options
Expand Down
31 changes: 7 additions & 24 deletions docs/dev.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ First, ensure you have already :ref:`installed Tutor <install>` (for development

Then, launch the developer platform setup process::

tutor dev quickstart
tutor dev launch

This will perform several tasks for you. It will:

Expand Down Expand Up @@ -51,14 +51,14 @@ To bring down your platform's containers, simply run::
Starting the platform back up
-----------------------------

Once you have used ``quickstart`` once, you can start the platform in the future with the lighter-weight ``start`` command, which brings up containers but does not perform any initialization tasks::
Once you have used ``launch`` once, you can start the platform in the future with the lighter-weight ``start`` command, which brings up containers but does not perform any initialization tasks::

tutor dev start # Run platform in the same terminal ("attached")
tutor dev start -d # Or, run platform the in the background ("detached")

Nonetheless, ``quickstart`` is idempotent, so it is always safe to run it again in the future without risk to your data. In fact, you may find it useful to use this command as a one-stop-shop for pulling images, running migrations, initializing new plugins you have enabled, and/or executing any new initialization steps that may have been introduced since you set up Tutor::
Nonetheless, ``launch`` is idempotent, so it is always safe to run it again in the future without risk to your data. In fact, you may find it useful to use this command as a one-stop-shop for pulling images, running migrations, initializing new plugins you have enabled, and/or executing any new initialization steps that may have been introduced since you set up Tutor::

tutor dev quickstart --pullimages
tutor dev launch --pullimages


Running arbitrary commands
Expand Down Expand Up @@ -92,7 +92,7 @@ The ``openedx-dev`` Docker image is based on the same ``openedx`` image used by

- 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/nutmeg.master/requirements/edx/development.in>`__ are installed.
- The edx-platform `development requirements <https://github.com/openedx/edx-platform/blob/open-release/olive.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 All @@ -112,7 +112,7 @@ It may sometimes be convenient to mount container directories on the host, for i
Bind-mount volumes with ``--mount``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``quickstart``, ``run``, ``init`` and ``start`` subcommands of ``tutor dev`` and ``tutor local`` support the ``-m/--mount`` option (see :option:`tutor dev start -m`) which can take two different forms. The first is explicit::
The ``launch``, ``run``, ``init`` and ``start`` subcommands of ``tutor dev`` and ``tutor local`` support the ``-m/--mount`` option (see :option:`tutor dev start -m`) which can take two different forms. The first is explicit::

tutor dev start --mount=lms:/path/to/edx-platform:/openedx/edx-platform lms

Expand Down Expand Up @@ -152,24 +152,6 @@ Then, bind-mount that folder back in the container with the ``--mount`` option (

You can then edit the files in ``~/venv`` on your local filesystem and see the changes live in your container.

Bind-mount from the "volumes/" directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. warning:: Bind-mounting volumes with the ``bindmount`` command is no longer the default, recommended way of bind-mounting volumes from the host. Instead, see the :ref:`mount option <mount_option>` and the ``tutor dev/local copyfrom`` commands.

Tutor makes it easy to create a bind-mount from an existing container. First, copy the contents of a container directory with the ``bindmount`` command. For instance, to copy the virtual environment of the "lms" container::

tutor dev bindmount lms /openedx/venv

This command recursively copies the contents of the ``/opendedx/venv`` directory to ``$(tutor config printroot)/volumes/venv``. The code of any Python dependency can then be edited -- for instance, you can then add a ``breakpoint()`` statement for step-by-step debugging, or implement a custom feature.

Then, bind-mount the directory back in the container with the ``--mount`` option::

tutor dev start --mount=lms:$(tutor config printroot)/volumes/venv:/openedx/venv lms

.. note::
The ``bindmount`` command and the ``--mount=...`` option syntax are available both for the ``tutor local`` and ``tutor dev`` commands.

Manual bind-mount to any directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down Expand Up @@ -283,6 +265,7 @@ Then, run unit tests with ``pytest`` commands::
export EDXAPP_TEST_MONGO_HOST=mongodb
pytest common
pytest openedx
pytest xmodule

# Run tests on LMS
export DJANGO_SETTINGS_MODULE=lms.envs.tutor.test
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-nutmeg.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-olive.master/installation/index.html>`__.

What features are missing from Tutor?
-------------------------------------
Expand Down
Binary file added docs/img/launch.webp
Binary file not shown.
Binary file removed docs/img/quickstart.gif
Binary file not shown.
6 changes: 3 additions & 3 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
:start-after: _readme_intro_start:
:end-before: _readme_intro_end:

.. image:: ./img/quickstart.gif
:alt: Tutor local quickstart
:target: https://terminalizer.com/view/91b0bfdd557
.. image:: ./img/launch.webp
:alt: Tutor local launch
:target: https://www.terminalizer.com/view/3a8d55835686

----------------------------------

Expand Down
Loading