Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 0 additions & 5 deletions source/FurtherDetails/dos_donts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,6 @@ has been developed under a different license without agreement from the
Simulation Systems and Deployment Team. This includes lifting Fortran code or
text from books. Our repositiories must not infringe copyright.

**Do not add AI-generated code** even in a fork or branch. AI tools such as Github
CoPilot are becoming more readily available. However, the detailed terms and
conditions associated with these need to be evaluated for compatibility with
licensing and copyright.

**Add or link to old code** or tickets that predate MOSRS, for example...

* Link to tickets in old internal repositories- links will either not resolve or be incorrect
Expand Down
16 changes: 8 additions & 8 deletions source/Reviewers/committinglinkedtickets.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ will need approaching in the correct order. The UM and LFRIc Apps are the key
places where these overlap.

1. Everything except UM and LFRic Apps can be worked on separately and should be committed first.
2. The UM relies on code from all of the above code bases (except LFRic Core), and will need that code for both testing and committing.
3. LFRic Apps relies on code from all of the above, and will need that code for both testing and committing.
2. LFRic Apps and the UM each rely on code from all of the above code bases,
and will need that code for both testing and committing. They do not rely on each other.

.. tip::

Expand All @@ -37,7 +37,7 @@ places where these overlap.
4. Commit the tickets as described below.


.. _tesinglinked:
.. _testinglinked:

Testing linked tickets
----------------------
Expand All @@ -61,12 +61,12 @@ Details for testing multi-repository tickets are included on the
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 UM, JULES, UKCA or other repositories
- Local working copies of any linked JULES, UKCA or other repositories
can be passed to LFRic Apps through <lfric_apps_trunk>/dependencies.sh.

.. code-block:: RST

um_sources=vldXXX:/path/to/um/working/copy
jules_sources=vldXXX:/path/to/um/working/copy


.. tip::
Expand Down Expand Up @@ -117,14 +117,14 @@ Once you are happy with all your testing then the commit sequence is as follows:

* Modify ``*_rev`` variables for all other repositories you have updated to point to the the new commit revisions.
* Remove any branch references from the ``*_sources`` variables.
* e.g. If a JULES ticket has been committed at revision 12345 and a UM ticket at 123456
* e.g. If a JULES ticket has been committed at revision 12345 and a UKCA ticket at 6789

.. code-block:: RST

export um_rev=123456
export ukca_rev=6789
export jules_rev=12345

export um_sources=
export ukca_sources=
export jules_sources=

5. Commit LFRic Apps
Expand Down
2 changes: 1 addition & 1 deletion source/Reviewers/howtocommit.rst
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ are no clashes with what else has gone on trunk.

.. note::
Linked tickets will need to be tested together as discussed
on the :ref:`Committing Linked Tickets page<tesinglinked>`.
on the :ref:`Committing Linked Tickets page<testinglinked>`.

.. tab-set::

Expand Down
8 changes: 4 additions & 4 deletions source/WorkingPractices/TestSuites/multi-repo_testing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ Multi-Repository Testing

Multi-repository changes are expected to pass the regression tests for all the
repositories involved. To carry out the tests involved in a linked ticket it can
be helpful to refer to the :ref:`semi-concentric circles figure <multirepo>`; layering the testing
from the inside out as needed. Further details of how testing in each
be helpful to refer to the :ref:`repository figure <multirepo>`; 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<testing>`. Compatible
code revisions are needed for testing across repositories as described above.

Expand Down Expand Up @@ -62,8 +62,8 @@ these paths can either be to local changes or those in the repository.
lfric_core_rev=
lfric_core_sources=fcm:lfric.xm_br/path/to/branch

um_rev=
um_sources=vldXXX:/path/to/um/working/copy
casim_rev=
casim_sources=vldXXX:/path/to/casim/working/copy

3a. Run the lfric_atm developer test-suite

Expand Down
Binary file added source/WorkingPractices/images/repos.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/WorkingPractices/images/repos_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 18 additions & 13 deletions source/WorkingPractices/multi_repository.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,27 @@ The repositories covered by these working practices all interact with and have
dependencies on each other. This means that changes that affect multiple
repositories need handling with extra care.

To think about how the repositories work together it's useful to think about
them as almost concentric circles. The child repositories such as JULES or UKCA
sit in the centre and are mostly independent of anything else. The UM
is a parent of those repositories and is dependant on changes in it's own code
base and on those in the children. LFRic Apps is then another layer again and is
dependant on both the UM physics and the other child repositories. LFRic Apps
LFRic Apps and the UM both act as top level parents to a number of child
repositories such as JULES, UKCA, SOCRATES and CASIM. These child repositories
work independently as well as being used by the parent repositories. LFRic Apps
also utilises the infrastructure in LFRic Core.

This means that changes to the science code in JULES etc will need testing with
both the UM and LFRic Apps to check for any interactions. Likewise, changes to the
atmosphere code in the UM will require LFRic Apps testing.
This means that changes to the science code in any of the child repositories
will need testing with both the UM and LFRic Apps to check for any interactions.

.. image:: images/repo_circles.png
:width: 300
:align: center
:class: dark-light
.. note::
From LFRic Apps vn2.1 and UM vn13.8 there are duplicate copies of the
physics code in both the UM and LFRic Apps.

Consideration should be made as to whether changes to the physics schemes are
best made in LFRic Apps, the UM or both. If in doubt then the copy in LFRic
Apps is considered the master version.

.. image:: images/repos.png
:class: only-light

.. image:: images/repos_dark.png
:class: only-dark

.. _linked:

Expand Down