Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
4dbac71
#240 Added new base class for Fab scripts.
hiker Jan 23, 2026
2254b31
#240 Removed support for transmute step to keep this PR smaller.
hiker Jan 23, 2026
c1e87d1
#240 Add all skeleton fab script, helper classes and site-configurati…
hiker Jan 23, 2026
a350ef3
#240 Updated tests to pass all linters, fixed licence statement.
hiker Jan 27, 2026
962ce0a
#240 Updated skeleton build script.
hiker Jan 27, 2026
54491da
#240 Fixed incorrect typing in test.
hiker Jan 27, 2026
22c2ef9
#240 Added README file.
hiker Jan 27, 2026
25c26fb
#240 Removed fab and vernier support from NCI site.
hiker Jan 27, 2026
72192df
#240 Fixed typos.
hiker Jan 27, 2026
f7a839c
#240 Allow import of psyclone_tools without setting PYTHONPATH.
hiker Jan 27, 2026
170cab3
#240 Fixed flake8 errors.
hiker Jan 27, 2026
d7aa9f1
#240 Added myself to contributors list.
hiker Jan 27, 2026
2315007
Merge branch 'main' into 240_add_skeleton_fab_script
hiker Jan 27, 2026
9ee0b64
Fixed rose picker etc issues raised in review.
hiker Feb 8, 2026
6dc4bd8
Renamed test directory to tests (to avoid clash with .gitignore in ro…
hiker Feb 8, 2026
00b7ec9
#240 Renamed rose_picker_tool.py to rose_picker.py etc.
hiker Feb 9, 2026
6a25195
#240 Addressed issues raised in review.
hiker Feb 9, 2026
1d4c878
Merge remote-tracking branch 'upstream/main' into 240_add_skeleton_fa…
hiker Feb 9, 2026
4872ec9
#240 Removed get_additional_psyclone_options.
hiker Feb 10, 2026
495d651
#240 Fixed configurator to use the new names of the tools.
hiker Feb 10, 2026
fa84662
#240 Fixed building current LFRic skeleton due to changes in build sy…
hiker Feb 10, 2026
bf87398
#240 Updated tests to work with changes to LFRic build system.
hiker Feb 10, 2026
463faae
#240 Removed unnecessary path for rose picker.
hiker Feb 10, 2026
0c9a599
#240 Set a default as project name.
hiker Feb 10, 2026
ac0999c
#240 Fixed incorrect names in templaterator.
hiker Feb 11, 2026
8421891
Merge remote-tracking branch 'upstream/main' into 240_add_skeleton_fa…
hiker Feb 11, 2026
0f42ad1
Merge remote-tracking branch 'upstream/main' into 240_add_skeleton_fa…
hiker Feb 11, 2026
c0fc24f
#240 Removed support for old-style environment variables for precision.
hiker Feb 19, 2026
434c394
#240 Removed unnecessary import.
hiker Feb 19, 2026
890a725
#240 Marked the new steps as steps so they get measured.
hiker Feb 19, 2026
d98699b
#240 Clarified docstring.
hiker Feb 19, 2026
5f2c892
Updated comments.
hiker Feb 20, 2026
3c3ba13
#240 Handle warning in new steps.
hiker Feb 20, 2026
d16a46b
#240 Moved build files into lfric_build directory.
hiker Feb 20, 2026
d3d4673
#240 Renamed default compiler setup scripts to 'setup_script_XXX.py'.
hiker Feb 23, 2026
a5309c1
#240 Fixed failing tests, handled warning.
hiker Feb 23, 2026
40b1863
Merge branch 'main' into 240_add_skeleton_fab_script
MatthewHambley Feb 26, 2026
9731fa1
#240 Remove unit-test as compilation profile.
hiker Mar 2, 2026
c54edab
#240 Removed setting up unit-test for gnu (since unit-test was removed).
hiker Mar 4, 2026
9942f1c
#292 Started to add support for pFUNit.
hiker Mar 6, 2026
558d9c9
Merge branch 'main' into 240_add_skeleton_fab_script
yaswant Mar 10, 2026
1c7a85f
#240 Updated precision handling as requested in review.
hiker Mar 19, 2026
620cdae
Merge branch '240_add_skeleton_fab_script' of github.com:hiker/lfric_…
hiker Mar 19, 2026
c543cf6
Merge branch '240_add_skeleton_fab_script' into 292_fab_pfunit
hiker Mar 19, 2026
b4b7672
Merge branch 'main' into 240_add_skeleton_fab_script
hiker Mar 19, 2026
294500f
Merge branch '240_add_skeleton_fab_script' into 292_fab_pfunit
hiker Mar 30, 2026
92008c5
#292 Changed the base class into a mixin.
hiker Mar 31, 2026
5ae6376
Merge branch 'main' into 240_add_skeleton_fab_script
hiker Mar 31, 2026
06a3217
Merge branch '240_add_skeleton_fab_script' into 292_fab_pfunit
hiker Mar 31, 2026
e0984ee
#292 Fixed small bugs and incorrect name of test symbol.
hiker Apr 1, 2026
f6185d7
#292 Ignore fab-workspace directories.
hiker Apr 1, 2026
afd5c12
#292 Added pfunit tool.
hiker Apr 1, 2026
b707e15
#292 Updated documentation.
hiker Apr 1, 2026
835ab8b
#292 Fixed typo.
hiker Apr 1, 2026
280268b
#240 Addressed issues raised in review.
hiker Apr 9, 2026
ecdff1d
#240 Check that NetCDF is available before starting to compile.
hiker Apr 9, 2026
cf5b686
Merge remote-tracking branch 'origin/main' into 240_add_skeleton_fab_…
hiker Apr 9, 2026
2b7d2ae
#292 Use new Category implementation.
hiker Apr 23, 2026
ed7203e
Update lfric_build/site_specific/default/setup_script_gnu.py
hiker May 4, 2026
6ea9af2
Update lfric_build/site_specific/default/setup_script_gnu.py
hiker May 4, 2026
513da0b
Update lfric_build/site_specific/default/config.py
hiker May 4, 2026
7bf6c2a
Update lfric_build/site_specific/default/config.py
hiker May 4, 2026
101ea01
#240 Added copyright statement.
hiker May 4, 2026
bd21fdb
Merge remote-tracking branch 'origin/main' into 240_add_skeleton_fab_…
hiker May 4, 2026
489ba95
Merge branch '240_add_skeleton_fab_script' into 292_fab_pfunit
hiker May 5, 2026
e8c84ce
Merge remote-tracking branch 'upstream/main' into 240_add_skeleton_fa…
t00sa May 5, 2026
97490d7
Add fab-workspace to gitignore
t00sa May 5, 2026
3f9cc9e
#292 Removed old-style typing.
hiker May 6, 2026
6682d87
#292 Updated nci gadi config.
hiker May 6, 2026
acc5c8e
#292 Updated NCI setup.
hiker May 6, 2026
c7e03ee
#292 Fixed coding style.
hiker May 6, 2026
7d99ddf
#292 Fix pfunit build.
hiker May 6, 2026
cd3db4c
#292 Fix pfunit build by disabling a warning (needs path-specific fla…
hiker May 6, 2026
e4ccac0
Merge remote-tracking branch 'origin/main' into 240_add_skeleton_fab_…
hiker May 6, 2026
afa7fdc
Merge branch '240_add_skeleton_fab_script' into 292_fab_pfunit
hiker May 6, 2026
f676f43
#292 Use new public names for some Fab attributes.
hiker May 9, 2026
8ebad2f
#292 Abort build if OpenMP is disabled, since LFRic does not link wit…
hiker May 9, 2026
7b5f885
#292 Fixed tests (missing app_dir, linkger without netcdf support, tr…
hiker May 9, 2026
5ac67e9
#292 Added test for aborting when trying to disable OpenMP with lfric.
hiker May 9, 2026
6575f4d
Merge remote-tracking branch 'origin/main' into 292_fab_pfunit
hiker May 9, 2026
4d6d3af
Merge remote-tracking branch 'origin/main' into 292_fab_pfunit
hiker May 12, 2026
0fec60b
Merge remote-tracking branch 'origin/main' into 292_fab_pfunit
hiker May 14, 2026
4fc519e
#292 Include the files from components/science/unit-test.
hiker May 14, 2026
a779860
#292 Only copy .f90 files from components/science/unit-tests.
hiker May 14, 2026
cccfeac
#292 Added explanations.
hiker May 15, 2026
e50b673
Merge remote-tracking branch 'origin/main' into 292_fab_pfunit
hiker May 15, 2026
40961e6
#292 Rename apps_dir to app_dir.
hiker May 21, 2026
d8573cf
#371 Added first working version of transmute support.
hiker May 27, 2026
da94e44
#292 Removed outdated comment.
hiker May 27, 2026
974b55f
Merge remote-tracking branch 'origin/main' into 292_fab_pfunit
hiker May 27, 2026
ea1cbf8
Merge branch '292_fab_pfunit' into 371_fab_transmute_support
hiker May 27, 2026
e3b7dd7
#371 Renmaed psyclone_config to psyclone_control.
hiker May 27, 2026
9742b1f
#292 Added netcdf config object to lfric_core, as requested in the Fa…
hiker May 28, 2026
a1a64eb
#292 Removed pkg_config object, since it will be added to Fab.
hiker May 28, 2026
900a984
#292 Fixed typo in comment.
hiker May 28, 2026
37990ca
Merge branch '292_fab_pfunit' into 371_fab_transmute_support
hiker May 28, 2026
3b397a6
#292 Use instead of sys.path to add to python search path, since sys…
hiker May 28, 2026
f86dfcf
Merge branch '292_fab_pfunit' into 371_fab_transmute_support
hiker May 28, 2026
e33c642
#371 Better support running without a script.
hiker May 28, 2026
cbaed2e
#292 Updated unit tests.
hiker Jun 2, 2026
8c073c2
Merge branch '292_fab_pfunit' into 371_fab_transmute_support
hiker Jun 2, 2026
c14d243
#371 Fixed failing nf_config test.
hiker Jun 2, 2026
acf57a6
#371 Updated tests for new psyclone usage.
hiker Jun 2, 2026
236ad57
#371 Linting changes.
hiker Jun 2, 2026
4b1ee14
#371 Removed Fab as dependency of psyclone_control.py.
hiker Jun 3, 2026
fdfa624
#371 Fixed failing test.
hiker Jun 9, 2026
ab8ed85
#371 Small NCI bug fix.
hiker Jun 10, 2026
ba03118
#371 Add the PSyclone control file to the logger.
hiker Jun 10, 2026
2ab9ed8
#371 Added gemini-created unit test.
hiker Jun 10, 2026
6135b12
#371 Black formatted, fixed line length.
hiker Jun 10, 2026
c8138de
#371 Removed artefacts attribute, which is not used or required.
hiker Jun 10, 2026
da6643b
371 Updated fixtures to use generic flags from Fab.
hiker Jun 29, 2026
c8aed18
#371 Moved changes from dependency pr here, since they will be requir…
hiker Jul 1, 2026
36903c3
#371 Also copy the optimisations script across to be consistent.
hiker Jul 1, 2026
d5c1132
Merge remote-tracking branch 'origin/main' into 371_fab_transmute_sup…
hiker Jul 1, 2026
572bfb7
#371 Renamed psyclone_info.yaml to psyclone_control.yaml
hiker Jul 1, 2026
05669e4
Merge branch 'main' into 371_fab_transmute_support
hiker Aug 3, 2026
db20fd9
#371 Updated documentation in psyclone control file.
hiker Aug 3, 2026
9575380
#371 Added public function to add to the Python search path.
hiker Aug 3, 2026
2ee4e86
#371 Minor code cleanup in preparation for apps-specific settings.
hiker Aug 5, 2026
e34ccb6
371 Started to remove compilation flags that were required for lfric_…
hiker Aug 10, 2026
adaf728
Merge branch 'main' into 371_fab_transmute_support
MatthewHambley Aug 17, 2026
e818c14
#371 Removed debug print.
hiker Aug 18, 2026
c164dd6
Merge branch '371_fab_transmute_support' of github.com:hiker/lfric_co…
hiker Aug 18, 2026
9db6e1c
#371 Remove unused parameter (due to change in the corresponding Fab …
hiker Aug 19, 2026
38fcf64
#371 Use simpler profiling definition.
hiker Aug 27, 2026
91e7947
#371 Split tests into smaller pieces.
hiker Aug 27, 2026
3386053
#371 Support apps that do not have PSyclone optimisation scripts.
hiker Sep 1, 2026
2870f9d
#371 Added type infos now that DependencyInfo is in Fab.
hiker Sep 1, 2026
53a3057
#371 Removed modification of CONTRIBUTORS.
hiker Sep 1, 2026
38e27a4
Merge branch 'main' into 371_fab_transmute_support
hiker Sep 1, 2026
b92fd21
#371 Update to recent main, and try again to fix CONTRIBUTORS.
hiker Sep 1, 2026
66c874a
#371 Update to latest fab features, fixed coding style.
hiker Sep 15, 2026
0764da8
Support templates in the script-dir directive.
hiker Sep 15, 2026
b99230d
Added target template variable and command line option to allow selec…
hiker Sep 15, 2026
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
19 changes: 11 additions & 8 deletions applications/skeleton/fab_skeleton.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@
import logging
from pathlib import Path
import sys
from typing import Optional, Union

from fab.steps.grab.folder import grab_folder
from fab.api import grab_files

# We need to import the base class:
sys.path.insert(0, str(Path(__file__).parents[2] / "lfric_build"))
Expand All @@ -35,10 +36,13 @@ class FabSkeleton(PfUnitMixin, LFRicBase):
:param name: The name of the application.
"""

def __init__(self, name: str = "skeleton") -> None:
def __init__(self,
name: str = "skeleton",
root_symbol: Optional[Union[list[str], str]] = None) -> None:

app_dir = Path(__file__).parent
super().__init__(name=name, app_dir=app_dir)
super().__init__(name=name, app_dir=app_dir,
root_symbol=root_symbol)
# Store the root of this apps for later
this_file = Path(__file__).resolve()
self._this_root = this_file.parent
Expand All @@ -48,12 +52,12 @@ def grab_files_step(self) -> None:
Grabs the required source files and optimisation scripts.
"""
super().grab_files_step()
grab_folder(self.config, src=self.app_dir / "source",
dst_label='')
grab_files(self.config, src=self.app_dir / "source",
dst_label='')

# Copy the optimisation scripts into a separate directory
grab_folder(self.config, src=self._this_root / "optimisation",
dst_label='optimisation')
grab_files(self.config, src=self._this_root / "optimisation",
dst_label='optimisation')

def get_rose_meta(self) -> Path:
"""
Expand All @@ -65,7 +69,6 @@ def get_rose_meta(self) -> Path:

# -----------------------------------------------------------------------------
if __name__ == '__main__':

logger = logging.getLogger('fab')
logger.setLevel(logging.DEBUG)
fab_skeleton = FabSkeleton()
Expand Down
257 changes: 177 additions & 80 deletions lfric_build/lfric_base.py

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions lfric_build/pfunit_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from pathlib import Path
from typing import List, Optional, Iterable, Union

from fab.api import (ArtefactSet, Category, Exclude, grab_folder, Include,
from fab.api import (ArtefactSet, Category, Exclude, grab_files, Include,
input_to_output_fpath, step)


Expand Down Expand Up @@ -94,8 +94,8 @@ def grab_files_step(self) -> None:
unit_test = "unit-test"
# Check if there are unit tests
if (not self.args.no_test) and (self.app_dir / unit_test).is_dir():
grab_folder(self.config, src=self.app_dir / unit_test,
dst_label=unit_test)
grab_files(self.config, src=self.app_dir / unit_test,
dst_label=unit_test)
# Some tests also need the .f90 files from
# components/science/unit-tests, but not the .pf files. So, only
# pick the directories that contain f90 files (picking all files,
Expand All @@ -112,9 +112,9 @@ def grab_files_step(self) -> None:
# this when rsync-ing `a` and `a/b` you end up with duplicated
# files).
dst = path.relative_to(core_test_dir)
grab_folder(self.config,
src=path,
dst_label=unit_test / dst)
grab_files(self.config,
src=path,
dst_label=unit_test / dst)

self._has_test = True

Expand Down
Loading
Loading