Skip to content
Draft
34 changes: 32 additions & 2 deletions docs/source/user_guide/parameters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,11 @@ There are 6 output-specific parameters:
- *(none)*
- Where the post-processing results (``post/`` directory) should go.
* - ``www``
- **Yes**
- *(none)*
- No
- ``""``
- Where the post-processing visuals should go (to be viewed online).
Leave empty and set ``[simboard] enabled = True`` to have ``zppy``
infer this path from Mache. See :doc:`tasks/simboard` for details.
* - ``campaign``
- No
- ``"none"``
Expand Down Expand Up @@ -404,6 +406,34 @@ These are no longer defined in ``zppy/defaults/default.ini``:
These are still defined in ``zppy/defaults/default.ini``, but have no effect:

.. code-block:: text

ncclimo_cmd
nrows
ncols

SimBoard section parameters
============================

The ``[simboard]`` section controls SimBoard-compatible publishing. It is
a configuration-only hook; see :doc:`tasks/simboard` for full details.

.. list-table::
:header-rows: 1
:widths: 22 10 18 50

* - Parameter
- Required
- Default
- Description
* - ``enabled``
- No
- ``False``
- Set to ``True`` to enable SimBoard-compatible publishing.
When ``True`` and ``[default] www`` is empty, ``zppy`` infers
``www`` from Mache's ``web_portal.base_path``.
* - ``simulation_type``
- No
- ``"production"``
- Archive sub-directory for the run. One of ``"production"``,
``"development"``, or ``"none"``.
Must not be ``"none"`` when ``enabled = True``.
3 changes: 3 additions & 0 deletions docs/source/user_guide/tasks/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ Listed for reference (bundle jobs are submitted after task jobs are generated in
- Description
* - :doc:`bundle`
- Bundle multiple tasks into a single SLURM job
* - :doc:`simboard`
- Configure SimBoard-compatible diagnostics publishing
* - :doc:`climo`
- Generate climatology files using NCO's ``ncclimo``
* - :doc:`ts`
Expand Down Expand Up @@ -50,6 +52,7 @@ Listed for reference (bundle jobs are submitted after task jobs are generated in
:hidden:

bundle
simboard
climo
ts
e3sm_to_cmip
Expand Down
90 changes: 90 additions & 0 deletions docs/source/user_guide/tasks/simboard.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
.. _task-simboard:

simboard — SimBoard Publishing Configuration
============================================

The ``simboard`` section is a configuration-only hook that controls
SimBoard-compatible publishing behavior. Like :doc:`bundle`, it does not
launch an HPC job of its own; instead it influences how other tasks are
configured — specifically, it can infer the ``www`` output path from the
machine's Mache configuration.

When ``enabled = True`` and ``www`` is left empty in ``[default]``,
``zppy`` derives ``www`` from the ``web_portal.base_path`` recorded in
Mache for the current machine:

.. code-block:: text

<web_portal_base_path>/diagnostics_archive/<simulation_type>/

This gives SimBoard a single, predictable archive root to scan for
diagnostics.

Expected behavior
-----------------

.. list-table::
:header-rows: 1
:widths: 20 15 65

* - ``simboard.enabled``
- ``www``
- Behavior
* - ``False``
- any
- ``zppy`` does nothing SimBoard-specific.
* - ``True``
- empty
- Infer the SimBoard archive path from Mache's
``web_portal.base_path``.
* - ``True``
- set
- Use the explicit ``www`` path and do not override it.
``simboard.enabled`` still controls SimBoard-specific validation
(e.g., ``simulation_type`` must not be ``"none"``).
* - ``True``
- empty, but path cannot be inferred
- Raise a clear configuration error.

Configuration example
---------------------

.. code-block:: cfg

[default]
case = v3.LR.historical_0051
input = /path/to/input
output = /path/to/output
# Leave www empty to let zppy infer it from Mache when simboard is enabled.
www =

[simboard]
enabled = True
simulation_type = production

Parameters
----------

.. list-table::
:header-rows: 1
:widths: 22 10 18 50

* - Parameter
- Required
- Default
- Description
* - ``enabled``
- No
- ``False``
- Set to ``True`` to enable SimBoard-compatible publishing behavior.
When enabled and ``[default] www`` is empty, ``zppy`` infers
``www`` from Mache's ``web_portal.base_path``.
* - ``simulation_type``
- No
- ``"production"``
- Diagnostic classification for the archive path. One of
``"production"``, ``"development"``, or ``"none"``.
Must not be ``"none"`` when ``enabled = True``.

.. note::
The ``[simboard]`` section does not support subsections.
9 changes: 9 additions & 0 deletions tests/test_sections.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,15 @@ def test_sections():
}
compare(actual_default, expected_default)

# simboard
section_name = "simboard"
actual_section = config[section_name]
expected_section = {
"enabled": False,
"simulation_type": "production",
}
compare(actual_section, expected_section)

# ts
section_name = "ts"
actual_section = config[section_name]
Expand Down
Loading