Giter VIP home page Giter VIP logo

ufs_engines's Introduction

License Linux Python Version Code style: black Documentation Status

Python Coding Standards

Overview

This repository contains tools for creating and executing workflows using supported engines. The tools within this package currently support both Cylc and Rocoto workflow engine applications.

  • Authors: Henry R. Winterbottom
  • Maintainers: Henry R. Winterbottom
  • Version: 0.0.1
  • License: LGPL v2.1
  • Copyright: Henry R. Winterbottom

Cloning

This repository utilizes several sub-modules from various sources. To obtain the entire system, do as follows.

user@host:$ git clone --recursive https://github.com/HenryWinterbottom-NOAA/ufs_engines

Dependencies

The package dependencies and the respective repository and manual installation attributes are provided in the table below.

Dependency Package
Installation Instructions
pip install cylc-flow
pip install pyrocoto
pip install git+https://www.github.com/HenryWinterbottom-NOAA/ufs_pyutils.git

Note that rocoto is not available via PyPI and must be installed as instructed within the respective repository. Further, only versions <=7.9.3 of cylc-flow are supported by the tools within this package.

Docker Containers

A Docker container containing the latest supported image can be obtained as follows.

user@host:$ /path/to/docker pull ghcr.io/henrywinterbottom-noaa/ubuntu20.04.ufs_engines:latest

The Docker container may then be used as follows.

user@host:$ /path/to/docker container run -it ghcr.io/henrywinterbottom-noaa/ubuntu20.04.ufs_engines:latest

Forking

If a user wishes to contribute modifications done within their respective fork(s) to the authoritative repository, we request that the user first submit an issue and that the fork naming conventions follow those listed below.

  • docs/user_branch_name: Documentation additions and/or corrections for the application(s).

  • feature/user_branch_name: Additions, enhancements, and/or upgrades for the application(s).

  • fix/user_branch_name: Bug-type fixes for the application(s) that do not require immediate attention.

  • hotfix/user_branch_name: Bug-type fixes which require immediate attention to fix issues that compromise the integrity of the respective application(s).

ufs_engines's People

Contributors

henrywinterbottom-noaa avatar henrywinterbottom-wxdev avatar

Watchers

 avatar  avatar  avatar

ufs_engines's Issues

Rocoto builder Jinja support

Motivation.

The Rocoto tasks should be configured using a YAML-formatted file. The respective XML-can be templated using Jinja and wrappers can be configured for both tasks and metatasks.

Proposed solution.

Parse out Rocoto tasks to use YAML-formatted file configurations. Template the Rocoto XML using Jinja templates. Add wrappers for tasks and metatask functions.

Additional context.

No response

Related issues.

No response

Docker services update.

Docker recipe for ufs_engines beneath ufs_stack Docker services needs to be updated/debugged.

  • Set environment variables PATH and PYTHONPATH accordingly;
  • Place cylc-flow, rocoto, and pyrocoto beneath /build.

Docker container runtime environments.

When building Docker container applications that have external non-Python dependencies, create a bash script beneath /etc/profile.d to be sourced when the container is entered.

Docstring updates

All modules that require ufs_pyutils should contain the appropriate documentation beneath Requirements.

Cylc workflow construction failures

When building Cylc workflow suites the templates need to be either modified for individual methods are required to correctly build the respective suite files.

The Cylc graph utility can be used to evaluate whether the format of the respective files is correct.

Task builder tool.

A new application cylc_workflow.py has been designed and is underdevelopment.

Add capabilities to read the created workflow and collect the Jinja2 formatted file run-time attributes and build a corresponding runtime.rc file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.