-
Notifications
You must be signed in to change notification settings - Fork 24
Various small proposed improvements #909
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
base: 8.6.x
Are you sure you want to change the base?
Changes from 16 commits
aa2399d
465f46e
13b6832
4016765
f41651c
af9a92c
7c2e36f
fb49049
609cff9
a8572f0
c9d07d0
3a5972d
e7ad72c
9a16acf
f6affb5
5f29081
d0af77a
9b6a004
7f25cfb
ec2f4df
fd8f02b
24fd350
9cd0717
2b6a4e9
33eea11
9c2d534
e91c81b
be7c9ad
9a71138
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,19 +19,6 @@ Cylc runs on Unix-like systems including Linux and Mac OS. | |
| Via Conda (recommended) | ||
| ^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
|
||
| .. tip:: | ||
|
|
||
| We recommend using Mamba to install Cylc. | ||
| Mamba (or Micromamba) can be used as | ||
| `a faster, drop-in replacement for the conda command | ||
| <https://mamba.readthedocs.io/en/latest/index.html>`_. | ||
| If using Conda, make sure to use the libmamba-solver by updating to | ||
| Conda 23.10 or using the `conda-libmamba-solver plugin for conda | ||
| <https://conda.github.io/conda-libmamba-solver/getting-started/>`_. | ||
| The classic conda environment solver may be too slow for a complex package | ||
| like Cylc. | ||
|
Comment on lines
-22
to
-32
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This tip is no longer relevant thanks to conda adopting the Libmamba dependency resolver |
||
|
|
||
|
|
||
| .. code-block:: sub | ||
|
|
||
| $ conda install -c conda-forge cylc-flow | ||
|
|
@@ -67,7 +54,7 @@ Via Pip (+npm) | |
| $ pip install cylc-rose metomi-rose | ||
|
|
||
| There are also certain optional extra requirements which you may choose to | ||
| install: | ||
| install (already included if installing via Conda): | ||
|
|
||
| .. code-block:: sub | ||
|
|
||
|
|
@@ -92,15 +79,16 @@ Non-Python Requirements | |
| .. _Graphviz: https://graphviz.org/download/ | ||
| .. _configurable-http-proxy: https://anaconda.org/conda-forge/configurable-http-proxy | ||
|
|
||
| These dependencies are not installed by Conda or pip: | ||
| These dependencies are not installed by Conda or pip and may not be available on your | ||
| system by default: | ||
|
|
||
| * ``bash`` | ||
| * GNU `coreutils`_ | ||
| * ``ssh`` | ||
| * ``rsync`` | ||
| * ``mail`` (optional - for automated email functionality) | ||
|
|
||
| These dependencies are installed by Conda but not by pip: | ||
| The following dependencies are installed automatically by Conda but not by pip: | ||
|
|
||
| * `Graphviz`_ (optional - used by ``cylc graph`` for displaying workflow | ||
| graphs) | ||
|
|
@@ -290,8 +278,8 @@ can be found: :ref:`UI_Server_config`. | |
| Bash Profile | ||
| ^^^^^^^^^^^^ | ||
|
|
||
| Cylc :term:`job scripts <job script>` are bash scripts, which is good for | ||
| manipulating files and processes, They invoke ``bash -l`` to allow environment | ||
| Cylc :term:`job scripts <job script>` are bash scripts, which are good for | ||
| manipulating files and processes. They invoke ``bash -l`` to allow environment | ||
| configuration in login scripts. | ||
|
|
||
| .. warning:: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -60,7 +60,7 @@ Paste the following code into a ``flow.cylc`` file: | |
| [[[events]]] | ||
| mail events = failed | ||
| [[bell]] | ||
| script = printf 'bong%.02d\n' $(seq 1 $(cylc cyclepoint --print-hour)) | ||
| script = printf 'bong%.02d\n' $(seq 1 $(cylc cyclepoint --print-hour)); sleep 5 | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added sleep 5 to tutorial to allow users time to see the workflow running. A previous update to cylc sped up the running of this workflow significantly. |
||
|
|
||
| Change the initial cycle point to 00:00 this morning (e.g. if it was | ||
| the first of January 2000 we would write ``2000-01-01T00Z``). | ||
|
|
@@ -78,7 +78,6 @@ Stop the workflow after a few cycles using ``cylc stop --now --now clock-trigger | |
| Notice how the tasks run as soon as possible rather than | ||
| waiting for the actual time to be equal to the cycle point. | ||
|
|
||
|
|
||
| Clock-Triggering Tasks | ||
| ---------------------- | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -88,10 +88,29 @@ Cylc can automatically: | |
|
|
||
| Cylc provides a variety of command line and GUI tools for visualising, | ||
| monitoring, and controlling workflows. The Cylc TUI (Terminal | ||
| User Interface), web GUI, and ``cylc scan`` (bottom left) are shown below. | ||
| User Interface), web GUI, and ``cylc scan`` are shown below. | ||
|
|
||
| .. image:: /tutorial/img/cylc-tools.png | ||
| :alt: A screenshot of several Cylc tools. | ||
| **Placeholder Images Currently Used** | ||
|
|
||
|
samuel-denton marked this conversation as resolved.
Outdated
|
||
| .. tab-set:: | ||
|
|
||
| .. tab-item:: GUI | ||
|
|
||
| .. image:: ../../src/img/cylc-ui-dash.png | ||
| :alt: A screenshot of the Cylc GUI dashboard. | ||
| :width: 75% | ||
|
|
||
| .. tab-item:: Tui | ||
|
|
||
| .. image:: ../../src/img/tui-1.png | ||
| :alt: A screenshot of the Cylc TUI. | ||
| :width: 75% | ||
|
|
||
| .. tab-item:: CLI | ||
|
|
||
| .. image:: ../../src/img/cylc-cli.png | ||
| :alt: A screenshot of the Cylc CLI. | ||
| :width: 75% | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think these tabs are a little clearer and less intimidating than the combined image used before.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Also, can you remove the The text above mentions Sorry that was a bunch of alsos 😄 |
||
|
|
||
| .. nextslide:: | ||
|
|
||
|
|
||
|
samuel-denton marked this conversation as resolved.
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -165,57 +165,54 @@ This would result in: | |
|
|
||
| .. ifslides:: | ||
|
|
||
| Next section: :ref:`tutorial-cylc-families` | ||
| Next section: :ref:`tutorial-cylc-parameters` | ||
|
|
||
|
|
||
|
|
||
| .. _cylc-tutorial-jinja2-practical: | ||
|
|
||
| .. practical:: | ||
|
|
||
| .. rubric:: In this practical we will consolidate the configuration of the | ||
| :ref:`weather-forecasting workflow <tutorial-cylc-runtime-forecasting-workflow>` | ||
| from the previous section. | ||
| .. rubric:: This practical continues on from the | ||
| :ref:`Families practical <cylc-tutorial-families-practical>`. | ||
|
|
||
| 3. **Use Jinja2 To Avoid Duplication.** | ||
|
|
||
| The ``RESOLUTION`` environment variable is used by multiple tasks. | ||
| Rather than writing it out multiple times we will use Jinja2 | ||
| to centralise this configuration. | ||
| We have already consolidated the ``RESOLUTION`` environment variable | ||
| in the previous tutorial. However, lets say we want to reference | ||
| the resolution elsewhere in the workflow, not just as an | ||
| environment variable. For example, we might want to include the | ||
| resolution in a filename. To achieve this, we can define a Jinja2 | ||
| variable for the resolution, which can be used anywhere in the workflow. | ||
|
|
||
| At the top of the :cylc:conf:`flow.cylc` file add the Jinja2 shebang line. Then | ||
| copy the value of the ``RESOLUTION`` environment variable and use it to | ||
| define an ``RESOLUTION`` Jinja2 variable: | ||
| At the top of the :cylc:conf:`flow.cylc` file you should see the Jinja2 | ||
| shebang line has been included for you. Copy the value of the | ||
| ``RESOLUTION`` environment variable and use it to define a Jinja2 variable: | ||
|
|
||
| .. code-block:: cylc | ||
|
|
||
| #!Jinja2 | ||
|
|
||
| {% set RESOLUTION = 0.2 %} | ||
|
|
||
| Next replace the key, where it appears in the workflow, with | ||
| Next replace the key within the root definition with | ||
| ``{{ RESOLUTION }}``: | ||
|
|
||
| .. code-block:: diff | ||
|
|
||
| [[get_rainfall]] | ||
| script = get-rainfall | ||
| [[root]] | ||
| [[[environment]]] | ||
| - RESOLUTION = 0.2 | ||
| + RESOLUTION = {{ RESOLUTION }} | ||
|
|
||
| [[forecast]] | ||
| script = forecast 60 5 # Generate 5 forecasts at 60 minute intervals. | ||
| [[[environment]]] | ||
| - RESOLUTION = 0.2 | ||
| + RESOLUTION = {{ RESOLUTION }} | ||
| And add a reference to the resolution in the MAP_FILE filename of the | ||
| ``forcast`` task: | ||
|
|
||
| [[post_process_exeter]] | ||
| # Generate a forecast for Exeter 60 minutes in the future. | ||
| script = post-process exeter 60 | ||
| [[[environment]]] | ||
| - RESOLUTION = 0.2 | ||
| + RESOLUTION = {{ RESOLUTION }} | ||
| .. code-block:: diff | ||
|
|
||
| - MAP_FILE = "${CYLC_TASK_LOG_ROOT}-map.html" | ||
| + MAP_FILE = "${CYLC_TASK_LOG_ROOT}-map-{{ RESOLUTION }}-resolution.html" | ||
|
|
||
| Check the result with ``cylc config``. The Jinja2 will be processed | ||
| so you should not see any difference after making these changes. | ||
| so you should not see any difference after making these changes, other than | ||
| the MAP_FILE filename now including the resolution. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think the filename change is no longer present in the PR?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yep... I've changed this text so many times now I'm loosing track! |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -182,7 +182,7 @@ Parameters can be either strings or integers: | |
| .. ifslides:: | ||
|
|
||
| .. rubric:: This practical continues on from the | ||
| :ref:`Families practical <cylc-tutorial-families-practical>`. | ||
| :ref:`Jinja2 practical <cylc-tutorial-jinja2-practical>`. | ||
|
|
||
| Next section: :ref:`Which approach to use | ||
| <cylc-tutorial-consolidation-conclusion>` | ||
|
Comment on lines
182
to
188
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's currently inconsistent which pages make use of the ifslides / ifnotslides blocks. Are these still used for anything? I understood they were previously used for allowing the docs to generate in other formats but not sure if anything still uses them @oliver-sanders ? I can make an effort to clean them up if not, or add any missing if they are need. The JinJa2 page for example is missing some compared to the parametrization or families pages. |
||
|
|
@@ -314,7 +314,7 @@ Parameters can be either strings or integers: | |
|
|
||
| [task parameters] | ||
| station = aldergrove, camborne, heathrow, shetland | ||
| + site = exeter, edinburgh | ||
| + site = exeter, edinburgh | ||
|
|
||
| Next we parameterize the task in the graph: | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -113,7 +113,7 @@ Re-Run Multiple Tasks | |
| :width: 75% | ||
|
|
||
| .. tab-item:: CLI | ||
| :sync: gui | ||
| :sync: cli | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Small mistake here caused tabs to sync incorrectly. |
||
|
|
||
| .. code-block:: console | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lots of small wording changes to clarify what is and is not installed via pip vs conda.