MetOffice / MetOffice/fab

Supporting dependencies.yaml and mirrors?

Open
#563 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
9
Forks
9
Avg merge
12d 12h
Merged PRs (30d)
2

Description

In all Fab build scripts for suites a class to manage dependencies.yaml file has been added (partly using a different name, due to the LFRic work starting with parsing fcm config files).

It would be good to add this support to Fab. Though again the question is, is that a tool that a 'generic' build system should have? If not, it would make sense to have this in common repository, instead of maintaining different versions across suites.

Additionally:
- [ ] In the UM Fab script, I have added support for mirroring (a callback to the site config to replace URLs), which would be useful to have here as well.
- [ ] We also need to support merging different branches "on top of each other", which is currently done in the Simsys scripts. There is some serious code duplication involved :( One approach (discussed at https://github.com/MetOffice/SimSys_Scripts/issues/217, given the constraint that SimSys does not want to have a dependency on Fab) would be to copy some Fab classes (2 or 3) into SimSys, then it would be easier to switch over at some stage, when SimSys is retired. Though that by itself also creates code duplication.

Contributor guide

Open the contributing guide

Research direction

Start by comparing the Fab build scripts for suites with the UM Fab script and Simsys scripts, focusing on dependencies.yaml handling, URL mirroring, and branch merging. Read the linked SimSys_Scripts issue for context. Done requires an agreed generic Fab scope and an implementation plan that addresses the duplicated classes and all three requested capabilities.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.