diff --git a/source/Development/TestSuites/jules.rst b/source/Development/TestSuites/jules.rst index fcd914de..16e1742c 100644 --- a/source/Development/TestSuites/jules.rst +++ b/source/Development/TestSuites/jules.rst @@ -1,11 +1,12 @@ Testing JULES ============= -JULES testing is run with the following command from a working copy: +JULES testing is run with the following command from the top directory of a +local clone: .. code-block:: - rose stem --group=all --new + cylc vip -z group=all -n ./rose-stem ----- @@ -28,6 +29,7 @@ stored :ref:`KGO files `. See :ref:`multirepo` for details on how to carry out this testing. .. important:: + For **jules-shared** changes, when LFRic testing, the changes need to be manually synced to the LFRic location. When UM testing, this is not required as **jules-shared** is imported from the @@ -36,26 +38,26 @@ stored :ref:`KGO files `. Below is a (by no means comprehensive) set of groups that you may wish to use on Met Office systems. -+--------------------+----------------------------------------------------------+ -| Group | Description | -+====================+==========================================================+ -+--------------------+----------------------------------------------------------+ -| all | The complete test suite. This is run automatically | -| | every night and monitored by the SSD team. All | -| | :ref:`KGO ` changing tickets need to run this group.| -+--------------------+----------------------------------------------------------+ -+--------------------+----------------------------------------------------------+ -| loobos | A set of tests to exercise these science areas. | -| | | -| gswp2 | | -| | | -| eraint | | -| | | -| imogen | | -+--------------------+----------------------------------------------------------+ -| xc40/linux | All tests designed to run on the named platform. | -+--------------------+----------------------------------------------------------+ -| scripts | All of the auxillary scripts that are designed to check | -| | the code standards in ways that aren't tested by the | -| | compiler. | -+--------------------+----------------------------------------------------------+ ++----------------------+----------------------------------------------------------+ +| Group | Description | ++======================+==========================================================+ ++----------------------+----------------------------------------------------------+ +| all | The complete test suite. This is run automatically | +| | every night and monitored by the SSD team. All | +| | :ref:`KGO ` changing tickets need to run this group.| ++----------------------+----------------------------------------------------------+ ++----------------------+----------------------------------------------------------+ +| loobos | A set of tests to exercise these science areas. | +| | | +| gswp2 | | +| | | +| eraint | | +| | | +| imogen | | ++----------------------+----------------------------------------------------------+ +| ex1a/azspice | All tests designed to run on the named platform. | ++----------------------+----------------------------------------------------------+ +| scripts | All of the auxillary scripts that are designed to check | +| | the code standards in ways that aren't tested by the | +| | compiler. | ++----------------------+----------------------------------------------------------+ diff --git a/source/Development/TestSuites/lfric_apps.rst b/source/Development/TestSuites/lfric_apps.rst index 502f3c8f..37f87ed7 100644 --- a/source/Development/TestSuites/lfric_apps.rst +++ b/source/Development/TestSuites/lfric_apps.rst @@ -5,15 +5,12 @@ Testing LFRic Apps Rose stem: - LFRic Apps testing uses rose-stem and is run with the following commands - from a working copy: + The LFRic Apps rose-stem test suite can be run from the top directory of a + local clone: .. code-block:: shell - export CYLC_VERSION=8 - rose stem --group=developer - cylc play - cylc gui + cylc vip -z group=developer -n ./rose-stem Local testing: @@ -24,21 +21,6 @@ Local testing: This test does not use rose or cylc and is particularly useful for checking for compile errors while developing. ------ - -.. important:: - - When specifying the lfric_core source the lfric_core revision **must** be - updated in ``dependencies.sh``. - - * If setting the source to an fcm URL, the mirror (``.xm_``) needs to be - used and the revision can either be blank (for latest commit) or any - valid revision for that branch. - * If setting the source to a Working Copy, the hostname needs to be - provided (as Hostname:Path) and the revision must be blank. - - For more details, see :ref:`multi-repo_testing`. - Rose stem --------- @@ -56,7 +38,7 @@ and plot tasks to confirm the outputs. Below is a (by no means comprehensive) set of groups that you may wish to use on Met Office systems. Note that there is a lot of overlap between these groups, and that you can specify more than one at once, e.g. -``--group=developer,gungho_model``. +``-z group=developer,gungho_model``. +--------------------+----------------------------------------------------------+ | Group | Description | @@ -77,7 +59,7 @@ groups, and that you can specify more than one at once, e.g. +--------------------+----------------------------------------------------------+ | integration_tests | Integration tests for all applications and science areas | +--------------------+----------------------------------------------------------+ -| xc40/spice/monsoon | All tests designed to run on the named platform. | +| ex1a/azspice | All tests designed to run on the named platform. | +--------------------+----------------------------------------------------------+ | scripts | All of the auxillary scripts that are designed to check | | | the code standards in ways that aren't tested by the | diff --git a/source/Development/TestSuites/lfric_core.rst b/source/Development/TestSuites/lfric_core.rst index d5be30f2..75a7d570 100644 --- a/source/Development/TestSuites/lfric_core.rst +++ b/source/Development/TestSuites/lfric_core.rst @@ -9,14 +9,11 @@ Testing LFRic Core and the make test-suite functionality removed. Only the cylc8 suite is now maintained. -LFRic testing is launched with Cylc8 rose-stem commands (as in eg. LFRic -Apps): +LFRic testing can be launched from the top directory of a local clone, .. code-block:: shell - export CYLC_VERSION=8 - rose stem --group=developer - cylc play + cylc vip -z group=developer -n ./rose-stem ----- @@ -26,14 +23,14 @@ launched from make and utilise rose and cylc. While developing your change, for expediency you may want to run the tests for only some applications. This can be done by changing the group you run, eg -``--group=simple_diffusion``. +``-z group=simple_diffusion``. The command above will launch the developer suite. You can include slightly -more testing if required by running ``--group=all`` instead (this includes the +more testing if required by running ``-z group=all`` instead (this includes the developer suite). -It is also possible to run on a single platform, eg. ``--group=ex1a``. To -select which meto EX machine is used, add ``-S USE_EX``. +It is also possible to run on a single platform, eg. ``-z group=ex1a``. To +select which meto EX machine is used, add ``-S USE_EX=true``. .. tip:: diff --git a/source/Development/TestSuites/multi-repo_testing.rst b/source/Development/TestSuites/multi-repo_testing.rst index ef056e08..489c58ea 100644 --- a/source/Development/TestSuites/multi-repo_testing.rst +++ b/source/Development/TestSuites/multi-repo_testing.rst @@ -8,96 +8,84 @@ repositories involved. To carry out the tests involved in a linked ticket it can be helpful to refer to the :ref:`repository figure `; testing both child and parent repositories as needed. Further details of how testing in each repository is handled can be found on the :ref:`Testing -page`. Compatible code revisions are needed for testing across -repositories as described above. +page`. + +All Simulation Systems repositories containing a test suite will also contain a +``dependencies.yaml`` file in the top directory of the repository. This file +contains the details of all sources used by the test suite in the format (using +lfric_core as an example): + +.. code-block:: yaml + + lfric_core: + source: git@github.com:MetOffice/lfric_core.git + ref: + +The ``source`` setting sets the location of the repository on github. By +default, the test suite will access github repositories by using ssh, as shown +by the ``git@github.com`` part of the source. This line can be modified to point +at users fork of the repository instead, eg. +``source: git@github.com:UserName/lfric_core.git``. The ``source`` can also be a +local git clone, in which case it should take the form, +``source: :/path/to/clone``. + +The ``ref`` setting takes a git tree-ish value. Common settings will be a commit +hash, a tag or a branch name as demostrated by the examples below. At +release, the refs will be tags and will be changed to the long form of the relevant +commit hash as part of linked pull requests. + +If left blank the behaviour depends on the source: + +* **a github source:** the Head of the repositories default branch will be used. +* **a local clone:** the state of the repository at source extraction time will be used. + It is recommened to set a ref when setting the source to a local clone. That way + if you switch branches in the clone, the correct branch for testing will be used. + +Various different configurations of an lfric_core source are shown below with an +explanation of each, + +.. code-block:: yaml + + # The upstream lfric_core repository at tag 3.0 + lfric_core: + source: git@github.com:MetOffice/lfric_core.git + ref: core3.0 + + # The upstream lfric_core repository at a specific commit hash + lfric_core: + source: git@github.com:MetOffice/lfric_core.git + ref: a1b2c3d4e5f67890abcdef1234567890abcdef12 + + # As above, but with a shortened form of the hash (7 characters in this case) + lfric_core: + source: git@github.com:MetOffice/lfric_core.git + ref: a1b2c3d + + # The upstream lfric_core repository, with the default branch (main) at Head + lfric_core: + source: git@github.com:MetOffice/lfric_core.git + ref: + + # A Users fork of the lfric_core repoistory, on branch my_branch + lfric_core: + source: git@github.com:UserName/lfric_core.git + ref: my_branch + + # A Users fork of the lfric_core repository at a specific hash + lfric_core: + source: git@github.com:UserName/lfric_core.git + ref: f9e8d7c + + # A local clone of the lfric_core repository, pointing at my_branch + lfric_core: + source: hostname:/path/to/lfric_core + ref: my_branch + + # A local clone of the lfric_core repository, pointing at a specific hash + lfric_core: + source: hostname:/path/to/lfric_core + ref: f9e8d7c -Testing changes in JULES, LFRic Core, UKCA, or any other child repositories is -as simple as running the standalone test procedures for these codebases. - -.. important:: - - When specifying an alternative source in the ``dependencies.sh`` file the - revision for the source **must** be updated. - - * If setting the source as an fcm URL, the mirror (``.xm_``) needs to be - used and the revision can either be blank (for latest commit) or any - valid revision for that branch. - * If setting the source as a Working Copy, the hostname needs to be - provided (as Hostname:Path) and the revision must be blank. - -Testing the UM with other repositories -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -To test the UM, any changes to JULES, UKCA, Socrates, CASIM etc will also need -to be included. This is done by adding another source to the rose stem command -line. - -1. Checkout a UM working copy - - this may be your branch from a linked ticket, or a clean trunk copy at - either the last release or a suitable head of trunk revision. - -2. Run rose stem, including a source code path to every branch involved. As a - minimum run ``developer`` group and all groups that cover the repositories - being tested. - -.. code-block:: shell - - rose stem --group=developer,jules,ukca --source=. \ - --source=/path/to/jules/changes --source=/path/to/ukca/changes - -The source paths involved can either be to local working copies or links to the -fcm source control e.g. ``fcm:jules.xm_br/dev/user/branch_name``. As many -source paths as needed can be added to the list. - -Testing LFRic Apps with other repositories -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -LFRic Apps testing needs to encompass all of the other repositories affected. -Paths to the other codebases involved should be added to ``dependencies.sh`` -under each of the ``*_sources`` variables. Again these paths can either be to -local changes or those in the repository. - -1. Checkout an LFRic Apps working copy - -- this may be your branch from a linked ticket, or a clean trunk copy at either - the last release or a suitable head of trunk revision. - -2. Update dependencies.sh to point to all other code changes, e.g. - -.. code-block:: - - lfric_core_rev= - lfric_core_sources=fcm:lfric.xm_br/path/to/branch - - casim_rev= - casim_sources=vldXXX:/path/to/casim/working/copy - -3a. Run the lfric_atm developer test-suite - -- suitable for testing changes in other repositories that do not include any - LFRic Apps changes - -.. code-block:: shell - - export CYLC_VERSION=8 - rose stem --group=lfric_atm_developer - cylc play - cylc gui - -3b. Run the full developer test-suite - -- suitable for testing LFRic Apps changes with other repositories, or expanding - testing if lfric_atm tests have shown errors. - -.. code-block:: shell - - export CYLC_VERSION=8 - rose stem --group=developer - cylc play - cylc gui - -More details on LFRic Apps testing are found on the -:ref:`Testing LFRic Apps page`. .. note:: diff --git a/source/Development/TestSuites/ukca.rst b/source/Development/TestSuites/ukca.rst index 90e9e7ff..132fea76 100644 --- a/source/Development/TestSuites/ukca.rst +++ b/source/Development/TestSuites/ukca.rst @@ -8,3 +8,10 @@ with both the UM and LFRic by following the :ref:`linked tickets guidance For further guidance on testing and working with UKCA, including standard suites and box models see the `UKCA trac wiki `__. + +There also exists a small UKCA rose-stem suite, which contains a code styling +check. This can launched from the top directory of a local clone by running, + +.. code-block:: + + cylc vip -z group=scripts -n ./rose-stem diff --git a/source/Development/TestSuites/um.rst b/source/Development/TestSuites/um.rst index 5e904a92..f431373f 100644 --- a/source/Development/TestSuites/um.rst +++ b/source/Development/TestSuites/um.rst @@ -3,11 +3,12 @@ Testing the UM ============== -UM testing is run with the following command from a working copy: +UM testing is run with the following command from the top directory of a local +clone: .. code-block:: shell - rose stem --group=developer --new + cylc vip -z group=developer -n ./rose-stem ----- @@ -30,22 +31,15 @@ saved and restarted. .. code-block:: shell - rose stem --group=xc40_gnu_um_rigorous_omp-n48 + cylc vip -z group=ex1a_gnu_um_rigorous_omp-n48 -n ./rose-stem -.. note:: - - Changes to code in src/atmosphere may require - :ref:`testing with LFRic Apps`.If you have access to LFRic, the - :ref:`traclog` will state whether LFRic testing is required based on the - branch diff. If you do not have LFRic access, this testing will need to - be completed by your Met Office contact. See :ref:`multirepo` for details on how to carry out this testing. Below is a (by no means comprehensive) set of groups that you may wish to use on Met Office systems. Note that there is a lot of overlap between these groups, and that you can specify more than one at once, e.g. -``--group=developer,jules,ukca``. +``-z group=developer,jules,ukca``. +--------------------+----------------------------------------------------------+ | Group | Description | @@ -80,20 +74,13 @@ groups, and that you can specify more than one at once, e.g. +--------------------+----------------------------------------------------------+ | uk_lams | Testing for the limited area models | +--------------------+----------------------------------------------------------+ -| xc40/spice | All tests designed to run on the named platform. | +| ex1a/azspice | All tests designed to run on the named platform. | +--------------------+----------------------------------------------------------+ | scripts | All of the auxillary scripts that are designed to check | | | the code standards in ways that aren't tested by the | | | compiler. | +--------------------+----------------------------------------------------------+ -.. tip:: - - The `standard jobs - `__ page for each - release includes details of which of ``developer``, ``nightly`` and - ``all`` a configuration is tested at. - Monsoon ------- @@ -107,8 +94,7 @@ The UM test suite is set up to run on Monsoon with Cylc 8 by running, .. code-block:: shell - rose stem --group=ex1a - cylc play + cylc vip -z group=ex1a -n ./rose-stem This will launch all ex1a jobs that are available to run on Monsoon. diff --git a/source/Development/rose_stem.rst b/source/Development/rose_stem.rst index 20fdb512..9eb6ce46 100644 --- a/source/Development/rose_stem.rst +++ b/source/Development/rose_stem.rst @@ -1,5 +1,11 @@ -Rose Stem Suite -=============== +Adding to Rose Stem Suites +========================== + +.. tip:: + + This page is for advice on adding new tasks to a rose-stem suite. For advice + on running the test suite following the move to github, please see + :ref:`testing your change `. All new changes are strongly encouraged to come with an update to the rose stem suite to protect any new functionality. Configuration owners may also wish to @@ -12,18 +18,6 @@ rose stem suite. get your change to work then you should use an upgrade macro. See :ref:`inputs`. -.. tip:: - - Familiarise yourself with the `Rose documentation - `__ - before continuing with this section. - -.. note:: - - Migration to cylc8 and rose2 is currently in progress. UM, JULES and UKCA - suites will work with the latest versions as well as cylc7. The LFRic Apps - rose-stem has been written for cylc8 and is not backwards compatible. - Adding a new app ---------------- @@ -113,10 +107,10 @@ manually configured, such as JULES. .. tip:: - All ``*.rc`` or ``.cylc`` files mentioned are frequently split into + All ``.cylc`` files mentioned are frequently split into platform specific variants depending on the complexity of the sites suite. - e.g. `runtime.rc` may be spread across ``runtime-platform1.rc`` and - ``runtime-platform2.rc``. If a task should be run on both platform1 and + e.g. `runtime.cylc` may be spread across ``runtime-platform1.cylc`` and + ``runtime-platform2.cylc``. If a task should be run on both platform1 and platform2 then both of these will need the task definition adding. diff --git a/source/Development/testing.rst b/source/Development/testing.rst index 1e406581..c2dff2dc 100644 --- a/source/Development/testing.rst +++ b/source/Development/testing.rst @@ -3,6 +3,63 @@ Testing Your Change =================== +Change to the Rose Stem Suite in Git +------------------------------------ + +.. _github_testing: + +With the move to git and github, the test suites of the Simulation Systems +repositories will no longer use the rose-stem infrastructure, instead becoming +purely Cylc workflows. The only impact on the end user will be a change to the +commands required to launch the test suite. The contents of the test suite and +the process to add new tests will remain unchanged. The test suite +infrastructure will continue to live in a ``rose-stem`` directory, and we will +continue referring to the test suite as the ``rose-stem`` suite in these working +practices. + +Running the rose-stem suite will now directly call cylc commands with the +following syntax, + +* ``cylc vip`` - This will install and launch the test suite. If desired, it + can be replaced with separate ``install`` and ``play`` commands which would + need to be run separately. +* ``-z g=`` or ``-z group=`` - This sets the test suite groups to run, and + takes a comma separated list of groups. For example, ``-z g=developer, + lfric_atm`` will run the ``developer`` and ``lfric_atm`` groups. +* ``-S VALUE=SETTING`` - these options behave as they did before, and can be + added to the ``cylc vip`` command. See the table below for some suggestions. +* ``-S USE_MIRRORS=`` - An example of the above settings, this is newly added + with the git migration. By default this is ``false`` and remote github + repositories will be accessed via ssh. If set to ``true``, local github + mirrors will be used instead. This is recommended particularly for shared + accounts. +* ``-n name_of_suite`` - The new test suites will name themselves after the + directory containing the test suite. Unfortunately this is always + ``rose-stem`` so it is recommended to give the suite a name using this option. +* ``/path/to/rose-stem`` - The path to the rose-stem directory must be specified + if not launching from in that directory. + +For example, + +.. code-block:: + + cylc vip -z group=developer -S USE_MIRRORS=true -n my_rose_stem_suite ./rose-stem + +will launch the test suite with the ``developer`` group, using the github +mirrors and naming it ``my_rose_stem_suite``. + +``-S`` Options (non-exhaustive): + +* ``-S USE_MIRRORS=true`` - Use local github mirrors instead of ssh. +* ``-S USE_HEADS=true`` - Use the head of the default branch for the github + source, only intended for usage in nightly testing. +* ``-S USE_EX[AB/CD/Z]=true`` - MetOffice only, specify the host machine for + EX1A jobs. +* ``-S HOUSEKEEPING=false`` - Stop housekeeping tasks from running. + +What Testing to Run +------------------- + Every change should be thoroughly tested, using your judgement as to what this involves based on the complexity of your change. There are three main methods for you to choose from: @@ -36,10 +93,6 @@ Bespoke: TestSuites/ukca TestSuites/multi-repo_testing -.. todo: - TestSuites/casim - TestSuites/shumlib - Test branches & Upgrade Macros ------------------------------ @@ -58,8 +111,8 @@ To create one: Then check this out and use it for running any tests you'd like to carry out. -If using a test branch then do list this on your ticket and include the results -of this testing alongside those from your dev branch. +If using a test branch then do link to this on your pull request and include the +results of this testing alongside those from your dev branch. .. Note:: @@ -100,26 +153,26 @@ commands, noting that ``--jules-path`` is only required if you have .. Note:: - The update_all.py script suppresses warnings produced by upgrade macros. - You can test these separately by upgrading a single app. A single app can - be upgraded for testing using: + The update_all.py script suppresses warnings produced by upgrade macros. + You can test these separately by upgrading a single app. A single app can + be upgraded for testing using: - .. code-block:: shell + .. code-block:: shell - rose app-upgrade -M /path/to/rose-meta \ - -C /path/to/rose-stem/app/ -a + rose app-upgrade -M /path/to/rose-meta \ + -C /path/to/rose-stem/app/ -a - where the ``-C`` option can be omitted if inside the app's directory. + where the ``-C`` option can be omitted if inside the app's directory. - .. Important:: + .. Important:: - If there are **jules-shared** metadata changes these will need to be - added to the metadata path. Please see the :ref:`rose config-edit - example`. + If there are **jules-shared** metadata changes these will need to be + added to the metadata path. Please see the :ref:`rose config-edit + example`. - Please refer to `rose app-upgrade - `__ - command reference for more details. + Please refer to `rose app-upgrade + `__ + command reference for more details. .. _traclog: @@ -127,13 +180,13 @@ trac.log -------- The output of rose-stem from each repository includes a trac.log. This is a -wiki formatted file that can be copied into the ticket summary as a record of +wiki formatted file that can be copied into the pull request description as a record of testing run. Please make sure that the results of your latest testing are -included when passing a ticket for review. +included when passing a pull request for review. .. code-block:: shell - ~/cylc-run//trac.log + ~/cylc-run//runN/trac.log .. tip:: @@ -147,7 +200,7 @@ included when passing a ticket for review. .. code-block:: shell - python3 $UMDIR/SimSys_Scripts/suite_report.py -S + python3 $UMDIR/SimSys_Scripts/suite_report_git/suite_report_git.py -S If this is a regular problem then get in touch with the :ref:`SSD team ` so we can investigate. Thanks. diff --git a/source/Reviewers/committinglinkedtickets.rst b/source/Reviewers/committinglinkedtickets.rst index 7c42f51c..b3b8fb1b 100644 --- a/source/Reviewers/committinglinkedtickets.rst +++ b/source/Reviewers/committinglinkedtickets.rst @@ -53,27 +53,15 @@ Details for testing multi-repository tickets are included on the **In summary:** -- JULES, UKCA, LFRic Core and other child repositories can be tested using - their standalone test suites as described on the How to Commit page. +JULES, UKCA, LFRic Core and other child repositories can be tested using their +standalone test suites as described on the How to Commit page. -- Local working copies can be passed to the UM on the command line +UM and LFRic Apps changes will require modifying the ``dependencies.yaml`` file +to update the source being used. - .. code-block:: shell - - rose stem --group=developer,ukca,jules --source=. \ - --source=/path/to/jules/working/copy \ - --source=/path/to/ukca/working/copy - - Make sure you test the group that will exercise the interface between those - repositories(e.g. in the above example the jules and ukca groups are - tested). - -- Local working copies of any linked JULES, UKCA or other repositories can be - passed to LFRic Apps through /dependencies.sh. - -.. code-block:: shell - - jules_sources=vldXXX:/path/to/um/working/copy +* In the UM/Apps clone, edit the relevant sources and refs in the + ``dependencies.yaml`` file. These can be either local clones or github urls. + See :ref:`Multi-Repo Testing ` for more details .. tip:: @@ -105,33 +93,37 @@ Details for testing multi-repository tickets are included on the Committing linked tickets ------------------------- -.. admonition:: todo - - Ensure that dependencies.yaml file instructions below are correct - Once you are happy with all your testing then the commit sequence is as follows: * Commit all trunks **except** UM and LFRic Apps. Make note of the commit - revision numbers. + hashes. * For each of LFRic Apps and UM as required, - * In a clone of the branch, edit the ``dependencies.yaml`` file: + * In a clone of the developers branch, edit the ``dependencies.yaml`` file: + + * Ensure the entry for the repository this file is in is fully blank. + * Ensure the ``source`` entry points at the MetOffice ssh url. + * Modify ``ref`` entry for all updated repositories points to the full + hash for the relevant commit. + * e.g. If a JULES ticket has been committed with hash starting abc123 + and a UKCA ticket starting at 456def, the UM dependencies file will + have these entries (amongst others): - * Remove any references from the ``*_sources`` variables. - * Modify ``*_ref`` variables for all other repositories you have - updated to point to the the new commit hashes. - * e.g. If a JULES ticket has been committed with has abc123 and a UKCA - ticket at 456def, + .. code-block:: yaml - .. code-block:: shell + jules: + source=git@github.com:MetOffice/jules.git + ref=abc123################################## - export jules_sources=MetOffice/jules - export jules_ref=abc123 + ukca: + source=git@github.com:MetOffice/UKCA.git + ref=456def################################## - export ukca_sources=MetOffice/UKCA - export ukca_ref=456def + um: + source= + ref= * Commit these changes and push back to the developers branch, along with any changes to macros and KGO. Finally you can :ref:`commit ` diff --git a/source/Reviewers/howtocommit.rst b/source/Reviewers/howtocommit.rst index 02fd0a7f..3b7a16a6 100644 --- a/source/Reviewers/howtocommit.rst +++ b/source/Reviewers/howtocommit.rst @@ -227,10 +227,6 @@ are no clashes with what else has gone on trunk. Linked tickets will need to be tested together as discussed on the :ref:`Committing Linked Tickets page`. -.. admonition:: todo - - Update commands to launch rose-stem suite - .. tab-set:: .. tab-item:: UM @@ -241,12 +237,11 @@ are no clashes with what else has gone on trunk. .. code-block:: shell - rose stem --group=debug_compile - OR rose stem --group=developer,ex1a_developer - OR rose stem --group=all,ex1a + # Update the group as appropriate, eg. developer or all + cylc vip -z group=debug_compile -n ./rose-stem If there is a change to the build configs then you may need to turn off - prebuilds. To do so update ``rose-stem/site/meto/variables.rc`` such + prebuilds. To do so update ``rose-stem/site/meto/variables.cylc`` such that .. code-block:: jinja @@ -261,7 +256,7 @@ are no clashes with what else has gone on trunk. .. code-block:: shell - rose stem --group=all,fab + cylc vip -z group=all -n ./rose-stem .. tab-item:: UKCA @@ -271,15 +266,11 @@ are no clashes with what else has gone on trunk. .. code-block:: shell - rose stem --group=all - - UKCA testing should also be carried out using the UM rose stem. Check - out the UM trunk, and then run + cylc vip -z group=all -n ./rose-stem - .. code-block:: shell - - rose stem --group=developer,ukca --source=. \ - --source=/path/to/UKCA/working/copy + UKCA testing should also be carried out using the UM rose stem. See + :ref:`Linked Tickets page` for advice on how to set this + up. .. tab-item:: LFRic Apps @@ -292,10 +283,8 @@ are no clashes with what else has gone on trunk. .. code-block:: shell - rose stem --group=developer - OR e.g. rose stem --group=developer,gungho_model - - cylc play + # Increase testing as appropriate, eg. lfric_atm or all + cylc vip -z group=developer -n ./rose-stem .. tab-item:: LFRic Core @@ -304,8 +293,7 @@ are no clashes with what else has gone on trunk. .. code-block:: shell - rose stem --group=developer - cylc play + cylc vip -z group=developer -n ./rose-stem .. tab-item:: UM docs @@ -369,10 +357,6 @@ KGO differently* [rose-ana] kgo-database=.true. -.. admonition:: todo - - Update commands to launch rose-stem suite - .. _kgo_instructions: .. tab-set:: @@ -384,11 +368,11 @@ KGO differently* a script. #. Run the rose stem tasks that require a KGO update, plus any other - testing required (see above) - if unsure run the `all,ex1a`. + testing required (see above) - if unsure run the `all` group. .. code-block:: shell - rose stem --group=all,ex1a --new + cylc vip -z group=all -n ./rose-stem #. You will need access to both your merged working copy and a clone of the `SimSys_Scripts github repo @@ -427,7 +411,7 @@ KGO differently* $UMDIR/kgo_update_files/. * Having run on each requested platform the new variables.rc files will be copied into your working copy - rose-stem/site/meto/variables_.rc. + rose-stem/site/meto/variables_.cylc. .. dropdown:: Updating KGO manually (rarely needed!) @@ -453,10 +437,9 @@ KGO differently* .. code-block:: shell - rose stem --group=all --source=. -S HOUSEKEEPING=false - cylc play + cylc vip -z group=all -n ./rose-stem - #. Update KGO_VERSION in `rose-stem/include/variables.rc`. + #. Update KGO_VERSION in `rose-stem/include/variables.cylc`. #. Copy the new KGO to the correct locations: `JULES KGO commands @@ -483,8 +466,7 @@ KGO differently* .. code-block:: shell - rose stem --group=all - cylc play + cylc vip -z group=all -n ./rose-stem #. Ensure the failing KGO's match those on the branch. @@ -496,11 +478,6 @@ KGO differently* python3 ./rose-stem/bin/update_branch_kgos.py \ -s -w - .. note:: - - This script requires at least python 3.9. This can be achieved on - Met Office machines by running ``module load scitools`` - .. note:: The numbered run directory must be included in the suite name, e.g. diff --git a/source/WorkingPractices/multi_repository.rst b/source/WorkingPractices/multi_repository.rst index 4029a9e6..9fa4cbef 100644 --- a/source/WorkingPractices/multi_repository.rst +++ b/source/WorkingPractices/multi_repository.rst @@ -33,34 +33,33 @@ interactions. .. _linked: -Preparing Linked Tickets ------------------------- +Preparing Linked Pull Requests +------------------------------ -Every repository in a set of linked changes requires a ticket. Guidance on -setting these up can be found in ticket. These tickets will be treated as a -group with the same reviewers and committed at the same time. +Every repository in a set of linked changes requires a PR. These PRs will be +treated as a group with the same reviewers and committed at the same time. Do: - * Make sure every ticket has a cross reference to the others in the set, - e.g. ``um:#1234`` + * Make sure every PR has a cross reference to the others in the set. A + section will exist in the PR template for this. Use the format + ``MetOffice/um#1234`` * Use keywords to show which other repositories are involved - * Get the tickets ready for review at the same time + * Get the PRs ready for review at the same time * Ask for help testing if you don't have access to all the codebases involved .. important:: - Code branches in linked tickets will require branching from compatible + Code branches in linked PRs will require branching from compatible revisions to ensure they work together. If working with branches from a release then all repositories will be - tagged with suitable keywords, e.g. for UM vn13.0, other repositories are - also tagged with um13.0. + tagged with suitable keywords, e.g. um13.0 to work with UM vn13.0, or apps2. + 0 to work with LFRic Apps vn2.0. For head of trunk revisions make sure that all branches/revisions being - used are at least as recent as the versions listed in the `_rev` parameter - of ``/dependencies.sh``, or - ``/rose-stem/rose-suite.conf``. + used are at least as recent as the commits associated with the hash in the + ``dependencies.yaml`` file. If in doubt, please contact the Simulation Systems and Deployment Team for advice.