Skip to content

Manage iodef core no_del tweak_iodef - #447

Open
mo-marqh wants to merge 15 commits into
MetOffice:mainfrom
mo-marqh:manage_iodef_core_nodel_tweak
Open

Manage iodef core no_del tweak_iodef#447
mo-marqh wants to merge 15 commits into
MetOffice:mainfrom
mo-marqh:manage_iodef_core_nodel_tweak

Conversation

@mo-marqh

@mo-marqh mo-marqh commented Aug 13, 2026

Copy link
Copy Markdown
Member

PR Summary

Sci/Tech Reviewer: Harry Shepherd (@harry-shepherd) - -->
Code Reviewer: Benjamin Went (@MetBenjaminWent)

This PR removes the lfric_core dependency on tweak_iodef
The script is left in the source until a following PR can remove lfric_apps dependency on this, at which point it can be deleted.

Instead, XML component fragments are addressed directly, through source symlinks, and through rose / cylc configurations

This then enables static analysis of XML files that are used as iodef.xml files by XIOS, introducing testing of XML in the source tree and the opportunity for XML rules encoded in the depths of the lfric xios interface to be tested directly, improving management of XML configurations

Code Quality Checklist

  • I have performed a self-review of my own code
  • My code follows the project's style guidelines
  • Comments have been included that aid understanding and enhance the readability of the code
  • My changes generate no new warnings
  • All automated checks in the CI pipeline have completed successfully

Testing

  • I have tested this change locally, using the LFRic Core rose-stem suite
  • If required (e.g. API changes) I have also run the LFRic Apps test suite using this branch
  • If any tests fail (rose-stem or CI) the reason is understood and acceptable (e.g. kgo changes)
  • I have added tests to cover new functionality as appropriate (e.g. system tests, unit tests, etc.)
  • Any new tests have been assigned an appropriate amount of compute resource and have been allocated to an appropriate testing group (i.e. the developer tests are for jobs which use a small amount of compute resource and complete in a matter of minutes)

trac.log

Test Suite Results - lfric_core - manage_iodef_core/run1

Suite Information

Item Value
Suite Name manage_iodef_core/run1
Suite User mark.hedley
Workflow Start 2026-07-15T08:34:41
Groups Run all
Dependency Reference Main Like
lfric_core mo-marqh/lfric_core@manage_iodef_core False
SimSys_Scripts MetOffice/SimSys_Scripts@cab3315 True

Task Information

✅ succeeded tasks - 434

Security Considerations

  • I have reviewed my changes for potential security issues
  • Sensitive data is properly handled (if applicable)
  • Authentication and authorisation are properly implemented (if applicable)

Performance Impact

  • Performance of the code has been considered and, if applicable, suitable performance measurements have been conducted

AI Assistance and Attribution

  • Some of the content of this change has been produced with the assistance of Generative AI tool name (e.g., Met Office Github Copilot Enterprise, Github Copilot Personal, ChatGPT GPT-4, etc) and I have followed the Simulation Systems AI policy (including attribution labels)

Documentation

  • Where appropriate I have updated documentation related to this change and confirmed that it builds correctly

PSyclone Approval

  • If you have edited any PSyclone-related code (e.g. PSyKAl-lite, Kernel interface, optimisation scripts, LFRic data structure code) then please contact the TCD Team

Sci/Tech Review

  • I understand this area of code and the changes being added
  • The proposed changes correspond to the pull request description
  • Documentation is sufficient (do documentation papers need updating)
  • Sufficient testing has been completed

(Please alert the code reviewer via a tag when you have approved the SR)

Code Review

  • All dependencies have been resolved
  • Related Issues have been properly linked and addressed
  • CLA compliance has been confirmed
  • Code quality standards have been met
  • Tests are adequate and have passed
  • Documentation is complete and accurate
  • Security considerations have been addressed
  • Performance impact is acceptable

@mo-marqh mo-marqh changed the title Manage iodef core nodel tweak Manage iodef core no_del tweak_iodef Aug 13, 2026
src_replace(load_root, path)
return load_tree

# Generator for the pytest parametrize fixture.

@harry-shepherd Harry Shepherd (harry-shepherd) Aug 14, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A number of the python scripts use if __name__ == '__main__' as the entry point. I don't have strong opinions on this, but maybe worth considering.

import pytest


# security pattern to check whether `src` links are local and link to known

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you double check this regex and it's comment please?

I don't think it matches strings starting with ../metadata.

I also think it will match some non-alphabetic following characters, for example I think:
$SOURCE_ROOT/bob/bruce matches
etc/bob33 matches
etc/33bob doesn't match

"$CYLC_TASK_WORK_DIR" %}
{# Copy the source, dereferencing symbolic links,#}
{# then use `rose env-cat` for Env Vars on etc/xios.xml & etc/xios_coupled.xml #}
{% set canned_prescript = "cp -rL $SOURCE_DIRECTORY/"~task_values["example_dir"]~"/* "~

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is something that we should be doing. The intention of the example files is that they are runnable on the command line "as is" to help with quick development. These changes would require any run of the example files to setup the environment variables and run rose env-cat. I think probably the example files need setting to not use the central /etc files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants