Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
9066a14
refactor: Remove unnecessary reserve_* functions
marcosbento Mar 26, 2026
a821bc1
refactor: Make 'empty' a constant instead of a function
marcosbento Mar 26, 2026
a4c6c9a
refactor: Make 'colon' a constant instead of a function
marcosbento Mar 26, 2026
0f177f1
refactor: Make 'path_separator' a constant instead of a function
marcosbento Mar 26, 2026
adc23c1
refactor: Make node names a constant instead of a function
marcosbento Mar 26, 2026
f74b576
refactor: Make white_list_file a constant instead of a function
marcosbento Mar 26, 2026
9d43a20
refactor: Make localhost and default_port a constant instead of a fun…
marcosbento Mar 26, 2026
d0176a6
refactor: Remove unused 'state_change' function
marcosbento Mar 26, 2026
fd0625e
refactor: Make commands a constant instead of a function
marcosbento Mar 26, 2026
77d333a
refactor: Make char classes a constants instead of a function
marcosbento Mar 26, 2026
6f7c9a3
refactor: Make 'root_path' a constant instead of a function
marcosbento Mar 26, 2026
87c6f88
Move ecf::string_constants location
marcosbento Mar 27, 2026
d45a560
Remove unnecessary "optimisation"
marcosbento Mar 27, 2026
e77eaee
Rely on default data member initialisation
marcosbento Mar 27, 2026
3d813a1
Move implementation to source file to avoid include dependency
marcosbento Mar 27, 2026
b8b9e22
refactor: Improve Str
marcosbento Mar 27, 2026
c72473d
refactor: check node name validity
marcosbento Mar 28, 2026
af41988
refactor: Improve error message
marcosbento Mar 28, 2026
b620cf5
fix: correct parsing of simple expressions
marcosbento Apr 9, 2026
dea9a65
refactor: improve base64 encoding/decoding
marcosbento Apr 10, 2026
a72753a
refactor: remove unnecessary replaceall
marcosbento Apr 10, 2026
c2403f4
refactor: remove duplicate get_token implementations
marcosbento Apr 10, 2026
6234990
fix: correct configuration of __init__.py and setup.py
marcosbento Mar 26, 2026
dc328bb
refactor: remove unused make_split_iterator
marcosbento Apr 13, 2026
6e27a8b
refactor: replace class Str with standalone functions
marcosbento Mar 26, 2026
e405c5f
refactor: add split by field
marcosbento Apr 15, 2026
1d75546
refactor: replace class NodePath with standalone functions
marcosbento Apr 14, 2026
02a695f
refactor: improve documentation
marcosbento Apr 16, 2026
5621586
refactor: replace calls to [[deprecated]] Defs::suiteVec
marcosbento Apr 20, 2026
64ff902
refactor: replace calls to [[deprecated]] NodeContainer::nodeVec
marcosbento Apr 20, 2026
65b5960
refactor: remove [[deprecated]] from Node::gen_variables
marcosbento Apr 20, 2026
20b360f
fix: correct [-Woverloaded-virtual] compilation warning
marcosbento Apr 20, 2026
f3839b0
fix: correct compilation warnings
marcosbento Apr 20, 2026
7bef392
Fix compilation warnings by latest GCC/Intel compilers ECFLOW-2079
marcosbento Apr 23, 2026
0d1f57c
Add missing Qt #includes
marcosbento Apr 23, 2026
3de6943
Correct evaluation of `:NONEXISTENT - 1` expression
marcosbento Apr 28, 2026
ec13efd
Add new RepeatDateTimeList attribute
marcosbento Apr 23, 2026
6573903
Enable RepeatDateTimeList in the UI
marcosbento Apr 23, 2026
389194d
Add python tests for RepeatDateTimeList
marcosbento Apr 23, 2026
b7880ca
Add tests for Expressions including DateTime instants
marcosbento Apr 24, 2026
7975c04
Update documentation to include RepeatDateTimeList
marcosbento Apr 24, 2026
11607ce
Add e.what() to error message
marcosbento Apr 28, 2026
d0683a8
Enable iteration over list of time instants ECFLOW-2080
marcosbento Apr 28, 2026
e8a05a3
Correct handling of --help/--version with ECF_SSL
marcosbento Apr 28, 2026
fe3a462
Comment how Weak Crypto Algorithms are avoided when using SSL
marcosbento Apr 30, 2026
3e2ef5e
Sanitise authentication/authorisation log messages
marcosbento Apr 30, 2026
4ea5aab
Correct parsing of Variable entries
marcosbento May 8, 2026
7adb668
Update documentation according to latest Variable parsing
marcosbento May 8, 2026
dd96e47
Fix variable parsing ECFLOW-2089
marcosbento May 11, 2026
e17b47b
Correct parsing of Variable entries
marcosbento May 15, 2026
aa0e3bd
Fix intermittent crash in ecflow_ui
marcosbento May 14, 2026
107f012
Enable the use of ECFLOW_SHARED_DIR
marcosbento May 15, 2026
4fb1d10
Fix intermittent crash in ecflow_ui ECFLOW-2093
marcosbento May 16, 2026
f9a899d
Increase unit test coverage of all python bindings
marcosbento May 14, 2026
0b32220
Enable additional compilers in CI
marcosbento Apr 15, 2026
7c7896f
Use random http/s port for testing
marcosbento Apr 17, 2026
c1cf92d
Increase the time buffer to setup/communicate with test server
marcosbento Apr 17, 2026
08fd72f
Reinforce the checks performed when setting up REST API tests
marcosbento May 18, 2026
00fec42
Reinforce check if TCP/IP port is free
marcosbento May 18, 2026
4d85216
Enable GNU GCC 15.2.0 + Intel 2025.3.1 compilers in CI ECFLOW-2078
marcosbento May 19, 2026
2424690
Replace Boost.python with Pybind11
marcosbento Jul 19, 2025
b21a497
clean-up ExportClient
marcosbento Jul 18, 2025
1cfe81f
clean-up ExportNode
marcosbento Jul 18, 2025
950dfa7
clean-up ExportNodeAttr
marcosbento Jul 18, 2025
2fc377e
clean-up ExportSuiteAndFamily
marcosbento Jul 18, 2025
61000c2
clean-up ExportTask
marcosbento Jul 18, 2025
87be173
clean-up ExportDefs
marcosbento May 11, 2026
9028975
Add ecflow.__version__ information
marcosbento Feb 19, 2026
f78a600
Configure HPC CI to find pybind11
marcosbento Feb 23, 2026
4fc4119
Make direct use as string of dict/kwargs key
marcosbento Apr 16, 2026
c3b55db
Make extraction mechanism consistent for py::handle/py::obj
marcosbento Apr 16, 2026
cb8b821
Add documentation to the objects binding functions
marcosbento Apr 16, 2026
7d1ab71
Correct issues identified during review
marcosbento May 12, 2026
7ed66e5
Adapt documentation scripts to pybind11
marcosbento May 12, 2026
9b77983
Replace Boost.python with Pybind11 ECFLOW-2090
marcosbento May 19, 2026
f49b8aa
Add cd configuration for debian-13 server package
iainrussell May 11, 2026
6cffc18
Fix macOS build after dependencies change
marcosbento May 19, 2026
a707972
Improve test debug logging
marcosbento May 19, 2026
796bea0
Consolidate the test scaffolding
marcosbento May 19, 2026
7cbbb3e
Improve UDP options logging and tests
marcosbento May 19, 2026
3acc748
Review and update LICENSE and NOTICE with latest 3rd party dependencies
marcosbento May 19, 2026
9d202af
Review the EditHistoryMgr class documentation
marcosbento May 20, 2026
342ad09
Review InLimit ctor docstring
marcosbento May 21, 2026
1871903
Fix debug build
marcosbento May 21, 2026
1677ef8
Correct handling of '-s'/'-n' flag when adding inlimit using ecflow_c…
marcosbento May 22, 2026
0706979
Ensure Process handles arguments with space
marcosbento May 24, 2026
2e63a98
Correct handling of '-s'/'-n' flag when adding inlimit using ecflow_c…
marcosbento May 26, 2026
499024a
Enable current_index/_value for Repeat in Python API
marcosbento May 22, 2026
34b8d8d
Make current_value() return string/int
marcosbento May 25, 2026
c5e23f3
Consolidate unit tests for Repeat attributes
marcosbento May 26, 2026
4dca014
Add missing #include <optional>
marcosbento May 26, 2026
7522d70
Consolidate new methods documentation
marcosbento May 26, 2026
419b639
Correct issues from code review
marcosbento May 26, 2026
2b90b2a
Enable Repeat.current_index()/_value() in Python API ECFLOW-2084
marcosbento May 26, 2026
1504339
Exclude s_http* on intel-2021.4.0
marcosbento May 27, 2026
1509766
Add placeholder action to create docker image for ecflow
marcosbento May 27, 2026
21f0c95
Update Python documentation
marcosbento May 20, 2026
153336e
Add release notes for 5.17.0
marcosbento May 20, 2026
8f589c5
Update version to 5.17.0
marcosbento May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Checks: >
-bugprone-misplaced-widening-cast,
-bugprone-narrowing-conversions,
-bugprone-parent-virtual-call,
-bugprone-throwing-static-initialization,
cppcoreguidelines-*,
-cppcoreguidelines-avoid-const-or-ref-data-members,
-cppcoreguidelines-avoid-do-while,
Expand Down
30 changes: 30 additions & 0 deletions .github/cd-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,36 @@ builds:
install_test: true
install_test_command: /usr/bin/ecflow_client --version

- name: "deb-debian-13-server"
type: system-package
enabled: true
config:
os: debian-13
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}
-DBoost_DEBUG: ON
-DOPENSSL_ROOT_DIR: ${OPENSSL_ROOT_DIR}
-DENABLE_STATIC_BOOST_LIBS: OFF
-DINSTALL_PYTHON3_DIR: lib/python3/dist-packages
-DENABLE_ALL_TESTS: ON
-DENABLE_SSL: ON
-DENABLE_SERVER: ON
-DENABLE_UI: OFF
-DCPACK_PACKAGE_NAME: ecflow
ctest_options:
- -L nightly
- -E s_test|s_zombies
dependency_branch: develop
parallelism_factor: 8
install_prefix: /usr
install_test: true
install_test_command: /usr/bin/ecflow_client --version

- name: "tarball"
type: "tarball"
enabled: true
Expand Down
1 change: 1 addition & 0 deletions .github/ci-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ cmake_options: >-
-DBOOST_LIBRARYDIR=${BOOST_LIB_DIR}
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}
-DENABLE_STATIC_BOOST_LIBS=OFF
-DCMAKE_PREFIX_PATH=/opt/ecmwf/stack-deps/share/cmake/pybind11

ctest_options: >-
-L nightly
Expand Down
97 changes: 77 additions & 20 deletions .github/ci-hpc-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,34 @@ build:
ctest_options:
- -L nightly

gnu-15.2.0:
build:
modules:
- boost/1.90.0
- ninja
- python3/3.13.13-01
- qt/6.6.1
- cmake/new
dependencies:
- ecmwf/ecbuild@develop
parallel: 64
cmake_options:
- >-
-DCMAKE_VERBOSE_MAKEFILE=ON
-DENABLE_ALL_TESTS=ON
-DBoost_ROOT=/usr/local/apps/boost/1.90.0/GNU/15.2
-DBoost_INCLUDE_DIR=/usr/local/apps/boost/1.90.0/GNU/15.2/include
-DBoost_PYTHON310_LIBRARY_RELEASE=/usr/local/apps/boost/1.90.0/GNU/15.2/lib/libboost_python313.so
-DPython3_ROOT_DIR=/usr/local/apps/python3/3.13.13-01
-DPython3_EXECUTABLE=/usr/local/apps/python3/3.13.13-01/bin/python3
-DPython3_INCLUDE_DIRS=/usr/local/apps/python3/3.13.13-01/include/python3.13
-DPython3_LIBRARIES=/usr/local/apps/python3/3.13.13-01/lib64/libpython3.13.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.13.13-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.13.13-01/lib/python3.13/site-packages/pybind11/share/cmake/pybind11
ctest_options:
# disable s_http* tests
- -L nightly -E '(s_http)'

gnu-14.2.0:
build:
modules:
Expand All @@ -30,12 +58,12 @@ gnu-14.2.0:
-DENABLE_ALL_TESTS=ON
-DBoost_ROOT=/usr/local/apps/boost/1.87.0/GNU/14.2
-DBoost_INCLUDE_DIR=/usr/local/apps/boost/1.87.0/GNU/14.2/include
-DBoost_PYTHON310_LIBRARY_RELEASE=/usr/local/apps/boost/1.87.0/GNU/14.2/lib/libboost_python312.so
-DPython3_ROOT_DIR=/usr/local/apps/python3/3.12.9-01
-DPython3_EXECUTABLE=/usr/local/apps/python3/3.12.9-01/bin/python3
-DPython3_INCLUDE_DIRS=/usr/local/apps/python3/3.12.9-01/include/python3.12
-DPython3_LIBRARIES=/usr/local/apps/python3/3.12.9-01/lib64/libpython3.12.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.12.9-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.12.11-01/lib/python3.12/site-packages/pybind11/share/cmake/pybind11
ctest_options:
# disable s_http* tests
- -L nightly -E '(s_http)'
Expand All @@ -54,15 +82,15 @@ gnu-12.2.0:
cmake_options:
- >-
-DCMAKE_VERBOSE_MAKEFILE=ON
-DENABLE_ALL_TESTS=ON
-DBoost_ROOT=/usr/local/apps/boost/1.81.0/GNU/12.2
-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/12.2/lib/libboost_python310.so
-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
-DPython3_LIBRARIES=/usr/local/apps/python3/3.10.10-01/lib64/libpython3.10.so
-DENABLE_ALL_TESTS=ON
-DBoost_ROOT=/usr/local/apps/boost/1.81.0/GNU/12.2
-DBoost_INCLUDE_DIR=/usr/local/apps/boost/1.81.0/GNU/12.2/include
-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
-DPython3_LIBRARIES=/usr/local/apps/python3/3.10.10-01/lib64/libpython3.10.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.10.10-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.10.10-01/lib/python3.10/site-packages/pybind11/share/cmake/pybind11
ctest_options:
# disable s_http* tests
- -L nightly -E '(s_http)'
Expand All @@ -82,14 +110,43 @@ gnu-8.5.0:
- >-
-DCMAKE_VERBOSE_MAKEFILE=ON
-DENABLE_ALL_TESTS=ON
-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_PYTHON310_LIBRARY_RELEASE=/usr/local/apps/boost/1.84.0/GNU/8.5/lib/libboost_python311.so
-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
-DPython3_ROOT_DIR=/usr/local/apps/python3/3.11.8-01
-DPython3_EXECUTABLE=/usr/local/apps/python3/3.11.8-01/bin/python3
-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
-DPython3_LIBRARIES=/usr/local/apps/python3/3.11.8-01/lib64/libpython3.11.so
-DPython3_LIBRARIES=/usr/local/apps/python3/3.11.8-01/lib64/libpython3.11.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.11.8-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.11.8-01/lib/python3.11/site-packages/pybind11/share/cmake/pybind11
ctest_options:
# disable s_http* tests
- -L nightly -E '(s_http)'

intel-2025.3.1:
build:
modules:
- boost/1.90.0
- ninja
- python3/3.13.13-01
- qt/6.6.1
- cmake/new
dependencies:
- ecmwf/ecbuild@develop
parallel: 64
cmake_options:
- >-
-DCMAKE_VERBOSE_MAKEFILE=ON
-DENABLE_ALL_TESTS=ON
-DCMAKE_CXX_COMPILER=icpx
-DBoost_ROOT=/usr/local/apps/boost/1.90.0/INTEL/2025.3
-DBoost_INCLUDE_DIR=/usr/local/apps/boost/1.90.0/INTEL/2025.3/include
-DBoost_PYTHON310_LIBRARY_RELEASE=/usr/local/apps/boost/1.90.0/INTEL/2025.3/lib/libboost_python310.so
-DPython3_ROOT_DIR=/usr/local/apps/python3/3.13.13-01
-DPython3_EXECUTABLE=/usr/local/apps/python3/3.13.13-01/bin/python3
-DPython3_INCLUDE_DIRS=/usr/local/apps/python3/3.13.13-01/include/python3.10
-DPython3_LIBRARIES=/usr/local/apps/python3/3.13.13-01/lib64/libpython3.10.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.13.13-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.13.13-01/lib/python3.13/site-packages/pybind11/share/cmake/pybind11
ctest_options:
# disable s_http* tests
- -L nightly -E '(s_http)'
Expand All @@ -112,12 +169,12 @@ intel-2025.0.1:
-DCMAKE_CXX_COMPILER=icpx
-DBoost_ROOT=/usr/local/apps/boost/1.87.0/INTEL/2025.0
-DBoost_INCLUDE_DIR=/usr/local/apps/boost/1.87.0/INTEL/2025.0/include
-DBoost_PYTHON310_LIBRARY_RELEASE=/usr/local/apps/boost/1.87.0/INTEL/2025.0/lib/libboost_python312.so
-DPython3_ROOT_DIR=/usr/local/apps/python3/3.12.9-01
-DPython3_EXECUTABLE=/usr/local/apps/python3/3.12.9-01/bin/python3
-DPython3_INCLUDE_DIRS=/usr/local/apps/python3/3.12.9-01/include/python3.12
-DPython3_LIBRARIES=/usr/local/apps/python3/3.12.9-01/lib64/libpython3.12.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.12.9-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.12.9-01/lib/python3.12/site-packages/pybind11/share/cmake/pybind11
ctest_options:
# disable s_http* tests
- -L nightly -E '(s_http)'
Expand All @@ -140,14 +197,14 @@ intel-2021.4.0:
-DCMAKE_CXX_COMPILER=icpx
-DBoost_ROOT=/usr/local/apps/boost/1.81.0/INTEL/2021.4
-DBoost_INCLUDE_DIR=/usr/local/apps/boost/1.81.0/INTEL/2021.4/include
-DBoost_PYTHON310_LIBRARY_RELEASE=/usr/local/apps/boost/1.81.0/INTEL/2021.4/lib/libboost_python310.so
-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
-DPython3_LIBRARIES=/usr/local/apps/python3/3.10.10-01/lib64/libpython3.10.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.10.10-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.10.10-01/lib/python3.10/site-packages/pybind11/share/cmake/pybind11
ctest_options:
- -L nightly -E py3_
- -L nightly -E '(py3_|s_http)'

nvidia-24.11:
build:
Expand All @@ -166,12 +223,12 @@ nvidia-24.11:
-DENABLE_ALL_TESTS=ON
-DBoost_ROOT=/usr/local/apps/boost/1.87.0/NVIDIA/24.11
-DBoost_INCLUDE_DIR=/usr/local/apps/boost/1.87.0/NVIDIA/24.11/include
-DBoost_PYTHON310_LIBRARY_RELEASE=/usr/local/apps/boost/1.87.0/NVIDIA/24.11/lib/libboost_python312.so
-DPython3_ROOT_DIR=/usr/local/apps/python3/3.12.9-01
-DPython3_EXECUTABLE=/usr/local/apps/python3/3.12.9-01/bin/python3
-DPython3_INCLUDE_DIRS=/usr/local/apps/python3/3.12.9-01/include/python3.12
-DPython3_LIBRARIES=/usr/local/apps/python3/3.12.9-01/lib64/libpython3.12.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.12.9-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.12.9-01/lib/python3.12/site-packages/pybind11/share/cmake/pybind11
ctest_options:
# disable all tests
- --version
Expand All @@ -193,12 +250,12 @@ nvidia-22.11:
-DENABLE_ALL_TESTS=ON
-DBoost_ROOT=/usr/local/apps/boost/1.81.0/NVIDIA/22.11
-DBoost_INCLUDE_DIR=/usr/local/apps/boost/1.81.0/NVIDIA/22.11/include
-DBoost_PYTHON310_LIBRARY_RELEASE=/usr/local/apps/boost/1.81.0/NVIDIA/22.11/lib/libboost_python310.so
-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
-DPython3_LIBRARIES=/usr/local/apps/python3/3.10.10-01/lib64/libpython3.10.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.10.10-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.10.10-01/lib/python3.10/site-packages/pybind11/share/cmake/pybind11
ctest_options:
# disable all tests
- --version
Expand All @@ -220,12 +277,12 @@ aocc-4.0.0:
-DENABLE_ALL_TESTS=ON
-DBoost_ROOT=/usr/local/apps/boost/1.81.0/AMD/4.0
-DBoost_INCLUDE_DIR=/usr/local/apps/boost/1.81.0/AMD/4.0/include
-DBoost_PYTHON310_LIBRARY_RELEASE=/usr/local/apps/boost/1.81.0/AMD/4.0/lib/libboost_python310.so
-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
-DPython3_LIBRARIES=/usr/local/apps/python3/3.10.10-01/lib64/libpython3.10.so
-DPython3_LIBRARY_DIRS=/usr/local/apps/python3/3.10.10-01/lib64
-DCMAKE_PREFIX_PATH=/usr/local/apps/python3/3.10.10-01/lib/python3.10/site-packages/pybind11/share/cmake/pybind11
ctest_options:
# disable all tests
- --version
101 changes: 101 additions & 0 deletions .github/workflows/dockit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: dockit

on:
# Trigger the workflow manually
workflow_dispatch: ~

jobs:

# Create the ecflow package
build-and-package:
name: build
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-docker' }}

strategy:
max-parallel: 8
fail-fast: false
matrix:
os:
- debian-13.5
preset:
- linux.gcc.serveronly.relwithdebinfo
jobs: [ 4 ]

runs-on: ubuntu-latest

container:
image: marcosbento/lumen:${{ matrix.os }}
options: --user root

timeout-minutes: 60

steps:

- name: Display build context
run: |
echo "Working directory: ${{ github.workspace }}"
echo "Environment:"
echo "$(env)"
echo "OS info:"
echo "$(cat /etc/os-release)"
echo "CPU info:"
echo "$(cat /proc/cpuinfo)"
echo "Memory info:"
echo "$(cat /proc/meminfo)"
echo "Disk info:"
echo "$(df -h)"

- name: Checkout 'ecbuild'
uses: actions/checkout@v4
with:
repository: ecmwf/ecbuild
path: ecbuild

- name: Checkout 'ecflow'
uses: actions/checkout@v4
with:
path: ecflow

- name: Generate ecflow debian package custom version
id: generate-package-custom-version
run: |
cd ${RUNNER_WORKSPACE}/ecflow/ecflow

- name: Define ecflow build environment
id: vars
run: |
cd ${RUNNER_WORKSPACE}/ecflow/ecflow
sha1=$(git rev-parse --short HEAD)
version=$(cat VERSION)
echo "sha1=${sha1}" >> $GITHUB_OUTPUT
echo "version=${version}" >> $GITHUB_OUTPUT

- name: Configure ecflow
id: configure-ecflow
run: |
cd ${RUNNER_WORKSPACE}/ecflow/ecflow
cmake --preset ${{ matrix.preset }} \
-DCUSTOM_DEBIAN_PACKAGE_VERSION=${{ steps.vars.outputs.version }}_${{ steps.vars.outputs.sha1 }} \
-DCMAKE_BUILD_TYPE=RelWithDebInfo

- name: Build ecflow
run: |
cd ${RUNNER_WORKSPACE}/ecflow/ecflow
cmake --build --preset ${{ matrix.preset }} --jobs ${{ matrix.jobs }} --target all

- name: Test ecflow
run: |
cd ${RUNNER_WORKSPACE}/ecflow/ecflow
ctest --preset ${{ matrix.preset }} --output-on-failure -L nightly -j ${{ matrix.jobs }}

- name: Package ecflow
run: |
cd ${RUNNER_WORKSPACE}/ecflow/ecflow
cmake --build --preset ${{ matrix.preset }} --target package

- name: Create ecflow docker image
run: |
cd ${RUNNER_WORKSPACE}/ecflow/ecflow
cp -v ${RUNNER_WORKSPACE}/ecflow/ecflow/build/${{ matrix.preset }}/ecflow-*.deb \
${RUNNER_WORKSPACE}/ecflow/ecflow/releng/imachination/ecflow/ecflow-latest-Linux.deb || true
docker build -t ecflow:latest -f ${RUNNER_WORKSPACE}/ecflow/ecflow/releng/imachination/ecflow/Dockerfile ${RUNNER_WORKSPACE}/ecflow/ecflow/releng/imachination/ecflow
3 changes: 2 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
build:
if: ${{ (github.event_name == 'pull_request' && github.event.action != 'closed') || github.event_name == 'push' }}

runs-on: ubuntu-22.04
runs-on: ubuntu-24.04

outputs:
artifact-id: ${{ steps.archivedocs.outputs.artifact-id }}
Expand All @@ -28,6 +28,7 @@ jobs:
sudo apt update
sudo apt install -y \
libboost-all-dev \
pybind11-dev \
libssl-dev \
doxygen \
graphviz \
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
13 changes: 1 addition & 12 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -175,18 +175,7 @@

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]
Copyright 1996- European Centre for Medium-Range Weather Forecasts (ECMWF)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
Loading
Loading