Skip to content

Quick start

This is the fast path for someone who already knows what they want. New to the concepts? Take the guided tutorial instead — it teaches the why at each step.

Terminal window
nwp-compose new --template bahamas-mpas-rap -o my_run.yaml
nwp-compose run my_run.yaml

nwp-compose run chains validate → generate → cylc installcylc play, stops at the first failure with a message that names the step, and prints the concrete Cylc workflow id it started (for example my_run/run1) so you never have to guess it. Add --dry-run to stop after generate and see exactly what it would run, or --dummy to exercise the graph without real binaries.

If you prefer to drive each step yourself — or you want to understand what run wraps:

  1. Scaffold a starter from the template gallery:

    Terminal window
    nwp-compose new --template bahamas-mpas-rap -o my_run.yaml
  2. Validate the schema, the component graph, and the physics (CFL, decomposition):

    Terminal window
    nwp-compose validate my_run.yaml # add --cylc to also run `cylc validate`

    A physically unsafe configuration (e.g. a CFL-violating time step) is blocked, not merely warned — see the warning catalog.

  3. Generate the runnable bundle into ./out/:

    Terminal window
    nwp-compose generate my_run.yaml -o ./out/

    This writes flow.cylc, manifest.json, the component task scripts, the runtime lib, and the rendered namelists. Use --dry-run to print flow.cylc to stdout and write nothing — the trust loop for the schema.

  4. Install with Cylc. This is the step that assigns the workflow id:

    Terminal window
    cylc install ./out/
    # INSTALLED my_run/run1 from ./out ← "my_run/run1" is your <workflow_id>
  5. Play it:

    Terminal window
    cylc play my_run/run1
    # exercise the graph without real binaries:
    cylc play --mode=dummy --main-loop dummy_bridge my_run/run1
Terminal window
nwp-compose diff baseline.yaml tweaked.yaml # diff at the rendered flow.cylc level
nwp-compose migrate my_run.yaml # dry-run upgrade; --write to apply with a .bak