Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
51 changes: 31 additions & 20 deletions .github/cd-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ builds:
dependencies:
- ecmwf/ecbuild
cmake_options:
-DPython3_EXECUTABLE: /usr/bin/python3
-DBOOST_ROOT: ${BOOST_ROOT_DIR}
-DBOOST_INCLUDEDIR: ${BOOST_INCLUDE_DIR}
-DBOOST_LIBRARYDIR: ${BOOST_LIB_DIR}
Expand Down Expand Up @@ -102,7 +101,6 @@ builds:
dependencies:
- ecmwf/ecbuild
cmake_options:
-DPython3_EXECUTABLE: /usr/bin/python3
-DBOOST_ROOT: ${BOOST_ROOT_DIR}
-DBOOST_INCLUDEDIR: ${BOOST_INCLUDE_DIR}
-DBOOST_LIBRARYDIR: ${BOOST_LIB_DIR}
Expand Down Expand Up @@ -175,10 +173,10 @@ builds:
self_test: true

stages:
- name: python312
- name: python313
modules:
- boost/1.87.0
- python3/3.12.9-01
- python3/3.13.13-01
- qt/6.6.1
- cmake/new
- ecbuild/new
Expand All @@ -193,20 +191,34 @@ builds:
-DCMAKE_PYTHON_INSTALL_TYPE: local
-DINSTALL_LIB_DIR: lib
-DUI_SYSTEM_SERVERS_LIST: /ec/vol/ecflow_def/servers.list.all
-DCMAKE_PREFIX_PATH: /usr/local/apps/python3/3.13.13-01/lib/python3.13/site-packages/pybind11/share/cmake/pybind11

- name: python312
modules:
- boost/1.87.0
- python3/3.12.9-01
- cmake/new
- ecbuild/new
test_command: *test_cmd
cmake_options:
<<: *common_cmake_options
-DCMAKE_PREFIX_PATH: /usr/local/apps/python3/3.12.9-01/lib/python3.12/site-packages/pybind11/share/cmake/pybind11
-DENABLE_UI: OFF
install_command: |
cmake --install . --component python

- name: python311
modules:
- boost/1.84.0
- boost/1.87.0
- python3/3.11.8-01
- qt/5.12.0
- cmake/new
- ecbuild/new
test_command: *test_cmd
cmake_options:
<<: *common_cmake_options
-DBoost_ROOT: /usr/local/apps/boost/1.84.0/GNU/8.5
-DBoost_INCLUDE_DIR: /usr/local/apps/boost/1.84.0/GNU/8.5/include
-DBoost_PYTHON311_LIBRARY_RELEASE: /usr/local/apps/boost/1.84.0/GNU/8.5/lib/libboost_python311.so
-DBoost_ROOT: /usr/local/apps/boost/1.87.0/GNU/8.5
-DBoost_INCLUDE_DIR: /usr/local/apps/boost/1.87.0/GNU/8.5/include
-DCMAKE_PREFIX_PATH: /usr/local/apps/python3/3.11.8-01/lib/python3.11/site-packages/pybind11/share/cmake/pybind11
-DPython3_ROOT_DIR: /usr/local/apps/python3/3.11.8-01
-DPython3_EXECUTABLE: /usr/local/apps/python3/3.11.8-01/bin/python3
-DPython3_INCLUDE_DIRS: /usr/local/apps/python3/3.11.8-01/include/python3.11
Expand All @@ -218,18 +230,17 @@ builds:

- name: python310
modules:
- boost/1.81.0
- boost/1.87.0
- python3/3.10.10-01
- qt/6.2.0
- cmake/new
- ecbuild/new
test_command: *test_cmd
cmake_options:
<<: *common_cmake_options
ENABLE_UI: OFF
-DBoost_ROOT: /usr/local/apps/boost/1.81.0/GNU/8.5
-DBoost_INCLUDE_DIR: /usr/local/apps/boost/1.81.0/GNU/12.2/include
-DBoost_PYTHON310_LIBRARY_RELEASE: /usr/local/apps/boost/1.81.0/GNU/8.5/lib/libboost_python310.so
-DBoost_ROOT: /usr/local/apps/boost/1.87.0/GNU/8.5
-DBoost_INCLUDE_DIR: /usr/local/apps/boost/1.87.0/GNU/12.2/include
-DCMAKE_PREFIX_PATH: /usr/local/apps/python3/3.10.10-01/lib/python3.10/site-packages/pybind11/share/cmake/pybind11
-DPython3_ROOT_DIR: /usr/local/apps/python3/3.10.10-01
-DPython3_EXECUTABLE: /usr/local/apps/python3/3.10.10-01/bin/python3
-DPython3_INCLUDE_DIRS: /usr/local/apps/python3/3.10.10-01/include/python3.10
Expand All @@ -240,18 +251,17 @@ builds:

- name: python38
modules:
- boost/1.75.0
- boost/1.87.0
- python3/3.8.8-01
- qt/5.12.0
- cmake/new
- ecbuild/new
test_command: *test_cmd
cmake_options:
<<: *common_cmake_options
-DENABLE_UI: OFF
-DBoost_ROOT: /usr/local/apps/boost/1.75.0/GNU/8.5
-DBoost_INCLUDE_DIR: /usr/local/apps/boost/1.75.0/GNU/8.5/include
-DBoost_PYTHON38_LIBRARY_RELEASE: /usr/local/apps/boost/1.75.0/GNU/8.5/lib/libboost_python38.so
-DBoost_ROOT: /usr/local/apps/boost/1.87.0/GNU/8.5
-DBoost_INCLUDE_DIR: /usr/local/apps/boost/1.87.0/GNU/8.5/include
-DCMAKE_PREFIX_PATH: /usr/local/apps/python3/3.8.8-01/lib/python3.8/site-packages/pybind11/share/cmake/
-DPython3_ROOT_DIR: /usr/local/apps/python3/3.8.8-01
-DPython3_EXECUTABLE: /usr/local/apps/python3/3.8.8-01/bin/python3
-DPython3_INCLUDE_DIRS: /usr/local/apps/python3/3.8.8-01/include/python3.8
Expand Down Expand Up @@ -284,7 +294,8 @@ builds:
- python3/3.12.9-01
- cmake/new
- ecbuild
test_command: *test_cmd
test_command: >-
ctest --output-on-failure -j 8 -L nightly -E "s_foolproof|s_test|s_zombies"
install_command: |
cmake --install .
cmake_options:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
if: |
startsWith(github.ref, 'refs/tags/') ||
github.ref_name == github.event.repository.default_branch ||
(github.event.pull_request.base.ref == github.event.repository.default_branch && github.event.label.name == 'approved-for-cd')
github.event.label.name == 'approved-for-cd'
uses: ecmwf/reusable-workflows/.github/workflows/main-cd.yml@v2
with:
ref_name: ${{ github.ref_name }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
- '**'
paths-ignore:
- ".cd/**"
- ".github/cd-config.yml"

# Trigger the workflow on pull request
pull_request: ~
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ on:
- 'main'
tags:
- '**'
paths-ignore:
- ".cd/**"
- ".github/cd-config.yml"

jobs:
# Setup environment and build ecflow documentation
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ find_package( ecbuild 3.4 REQUIRED HINTS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CUR
# Project
# =========================================================================================

project( ecflow LANGUAGES CXX VERSION 5.16.0 )
project( ecflow LANGUAGES CXX VERSION 5.17.0 )
#
# Important:
# The CMake project version is used, as generated CMake variables, to filter .../ecflow/core/ecflow_version.h.in
Expand Down
24 changes: 23 additions & 1 deletion docs/python_api/AttrType.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,24 @@ ecflow.AttrType
.. py:class:: AttrType
:module: ecflow

Bases: :py:class:`~Boost.Python.enum`
Bases: :py:class:`~pybind11_builtins.pybind11_object`

Sortable attribute type, currently [event | meter | label | limit | variable | all ]

Members:

event

meter

label

limit

variable

all


.. py:attribute:: AttrType.all
:module: ecflow
Expand All @@ -35,11 +49,19 @@ Sortable attribute type, currently [event | meter | label | limit | variable | a
:value: ecflow.AttrType.meter


.. py:property:: AttrType.name
:module: ecflow


.. py:attribute:: AttrType.names
:module: ecflow
:value: {'all': ecflow.AttrType.all, 'event': ecflow.AttrType.event, 'label': ecflow.AttrType.label, 'limit': ecflow.AttrType.limit, 'meter': ecflow.AttrType.meter, 'variable': ecflow.AttrType.variable}


.. py:property:: AttrType.value
:module: ecflow


.. py:attribute:: AttrType.values
:module: ecflow
:value: {1: ecflow.AttrType.event, 2: ecflow.AttrType.meter, 3: ecflow.AttrType.label, 4: ecflow.AttrType.limit, 5: ecflow.AttrType.variable, 6: ecflow.AttrType.all}
Expand Down
10 changes: 5 additions & 5 deletions docs/python_api/Autoarchive.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ecflow.Autoarchive
.. py:class:: Autoarchive
:module: ecflow

Bases: :py:class:`~Boost.Python.instance`
Bases: :py:class:`~pybind11_builtins.pybind11_object`

Provides a way to automatically archive a suite/family which has completed or is *idle*

Expand Down Expand Up @@ -48,25 +48,25 @@ Usage:
attr = Autoarchive( 3,true ) # archive node 3 days after complete,queued or aborted, i.e node is idle


.. py:method:: Autoarchive.days( (Autoarchive)arg1) -> bool :
.. py:method:: Autoarchive.days(self: ecflow.Autoarchive) -> bool
:module: ecflow

Returns a boolean true if time was specified in days


.. py:method:: Autoarchive.idle( (Autoarchive)arg1) -> bool :
.. py:method:: Autoarchive.idle(self: ecflow.Autoarchive) -> bool
:module: ecflow

Returns a boolean true if archiving when idle, i.e queued,aborted,complete and time elapsed


.. py:method:: Autoarchive.relative( (Autoarchive)arg1) -> bool :
.. py:method:: Autoarchive.relative(self: ecflow.Autoarchive) -> bool
:module: ecflow

Returns a boolean where true means the time is relative


.. py:method:: Autoarchive.time( (Autoarchive)arg1) -> TimeSlot :
.. py:method:: Autoarchive.time(self: ecflow.Autoarchive) -> ecflow.TimeSlot
:module: ecflow

returns archive time as a TimeSlot
Expand Down
8 changes: 4 additions & 4 deletions docs/python_api/Autocancel.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ecflow.Autocancel
.. py:class:: Autocancel
:module: ecflow

Bases: :py:class:`~Boost.Python.instance`
Bases: :py:class:`~pybind11_builtins.pybind11_object`

Provides a way to automatically delete/remove a node which has completed

Expand Down Expand Up @@ -38,19 +38,19 @@ Usage:
Autocancel(2,0,true)) # delete task 2 hours after completion


.. py:method:: Autocancel.days( (Autocancel)arg1) -> bool :
.. py:method:: Autocancel.days(self: ecflow.Autocancel) -> bool
:module: ecflow

Returns a boolean true if time was specified in days


.. py:method:: Autocancel.relative( (Autocancel)arg1) -> bool :
.. py:method:: Autocancel.relative(self: ecflow.Autocancel) -> bool
:module: ecflow

Returns a boolean where true means the time is relative


.. py:method:: Autocancel.time( (Autocancel)arg1) -> TimeSlot :
.. py:method:: Autocancel.time(self: ecflow.Autocancel) -> ecflow.TimeSlot
:module: ecflow

returns cancel time as a TimeSlot
Expand Down
4 changes: 2 additions & 2 deletions docs/python_api/Autorestore.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ecflow.Autorestore
.. py:class:: Autorestore
:module: ecflow

Bases: :py:class:`~Boost.Python.instance`
Bases: :py:class:`~pybind11_builtins.pybind11_object`

Provides a way to automatically restore a previously archived node

Expand All @@ -29,7 +29,7 @@ Usage:
attr = Autorestore( ['/s1/f1','/s1/f2'] ) # restore archived node at /s1/f1 and /s1/f2


.. py:method:: Autorestore.nodes_to_restore( (Autorestore)arg1) -> object :
.. py:method:: Autorestore.nodes_to_restore(self: ecflow.Autorestore) -> object
:module: ecflow

returns a list of nodes to be restored
Expand Down
14 changes: 7 additions & 7 deletions docs/python_api/AvisoAttr.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ecflow.AvisoAttr
.. py:class:: AvisoAttr
:module: ecflow

Bases: :py:class:`~Boost.Python.instance`
Bases: :py:class:`~pybind11_builtins.pybind11_object`

An :term:`aviso` attribute, assigned to a :term:`node`, represents an external trigger holding the node queued untilan Aviso notification matching the attribute configuration is detected.

Expand Down Expand Up @@ -51,37 +51,37 @@ Usage:
The parameters `url`, `schema`, `polling`, and `auth` are optional


.. py:method:: AvisoAttr.auth( (AvisoAttr)arg1) -> str :
.. py:method:: AvisoAttr.auth(self: ecflow.AvisoAttr) -> str
:module: ecflow

Returns the path to Authentication credentials used to contact the Aviso server


.. py:method:: AvisoAttr.listener( (AvisoAttr)arg1) -> str :
.. py:method:: AvisoAttr.listener(self: ecflow.AvisoAttr) -> str
:module: ecflow

Returns the Aviso listener configuration


.. py:method:: AvisoAttr.name( (AvisoAttr)arg1) -> str :
.. py:method:: AvisoAttr.name(self: ecflow.AvisoAttr) -> str
:module: ecflow

Returns the name of the Aviso attribute


.. py:method:: AvisoAttr.polling( (AvisoAttr)arg1) -> str :
.. py:method:: AvisoAttr.polling(self: ecflow.AvisoAttr) -> str
:module: ecflow

Returns polling interval used to contact the Aviso server


.. py:method:: AvisoAttr.schema( (AvisoAttr)arg1) -> str :
.. py:method:: AvisoAttr.schema(self: ecflow.AvisoAttr) -> str
:module: ecflow

Returns the path to the schema used to contact the Aviso server


.. py:method:: AvisoAttr.url( (AvisoAttr)arg1) -> str :
.. py:method:: AvisoAttr.url(self: ecflow.AvisoAttr) -> str
:module: ecflow

Returns the URL used to contact the Aviso server
Expand Down
Loading
Loading