diff --git a/source/FurtherDetails/dos_donts.rst b/source/FurtherDetails/dos_donts.rst index a0882471..bded8e5b 100644 --- a/source/FurtherDetails/dos_donts.rst +++ b/source/FurtherDetails/dos_donts.rst @@ -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 diff --git a/source/Reviewers/committinglinkedtickets.rst b/source/Reviewers/committinglinkedtickets.rst index 9e66dee1..ba46dead 100644 --- a/source/Reviewers/committinglinkedtickets.rst +++ b/source/Reviewers/committinglinkedtickets.rst @@ -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:: @@ -37,7 +37,7 @@ places where these overlap. 4. Commit the tickets as described below. -.. _tesinglinked: +.. _testinglinked: Testing linked tickets ---------------------- @@ -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 /dependencies.sh. .. code-block:: RST - um_sources=vldXXX:/path/to/um/working/copy + jules_sources=vldXXX:/path/to/um/working/copy .. tip:: @@ -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 diff --git a/source/Reviewers/howtocommit.rst b/source/Reviewers/howtocommit.rst index a5b48252..e94e4598 100644 --- a/source/Reviewers/howtocommit.rst +++ b/source/Reviewers/howtocommit.rst @@ -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`. + on the :ref:`Committing Linked Tickets page`. .. tab-set:: diff --git a/source/WorkingPractices/TestSuites/multi-repo_testing.rst b/source/WorkingPractices/TestSuites/multi-repo_testing.rst index 0b87ec14..181d84ca 100644 --- a/source/WorkingPractices/TestSuites/multi-repo_testing.rst +++ b/source/WorkingPractices/TestSuites/multi-repo_testing.rst @@ -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 `; 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 `; 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. @@ -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 diff --git a/source/WorkingPractices/images/repos.png b/source/WorkingPractices/images/repos.png new file mode 100755 index 00000000..f8f406c9 Binary files /dev/null and b/source/WorkingPractices/images/repos.png differ diff --git a/source/WorkingPractices/images/repos_dark.png b/source/WorkingPractices/images/repos_dark.png new file mode 100755 index 00000000..e9c83087 Binary files /dev/null and b/source/WorkingPractices/images/repos_dark.png differ diff --git a/source/WorkingPractices/multi_repository.rst b/source/WorkingPractices/multi_repository.rst index 569b0273..5dfe23c0 100644 --- a/source/WorkingPractices/multi_repository.rst +++ b/source/WorkingPractices/multi_repository.rst @@ -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: