Skip to content

Commit

Permalink
Merge changes from 'hotfix/5.13.7' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
marcosbento committed Feb 6, 2025
2 parents b6f0e64 + 38ed6c7 commit 3e0a311
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 60 deletions.
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.13.6 )
project( ecflow LANGUAGES CXX VERSION 5.13.7 )
#
# Important:
# The CMake project version is used, as generated CMake variables, to filter .../ecflow/core/ecflow_version.h.in
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@


def get_ecflow_version():
version = "5.13.6"
version = "5.13.7"
ecflow_version = version.split(".")
print("Extracted ecflow version '" + str(ecflow_version))
return ecflow_version
Expand Down
24 changes: 24 additions & 0 deletions docs/release_notes/version_5.13.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,30 @@ Version 5.13 updates
.. role:: jiraissue
:class: hidden


Version 5.13.7
==============

* `Released <https://confluence.ecmwf.int/display/ECFLOW/Releases>`__\ on 2025-02-06

General
-------

- **Improvement** allow requesting explicit execution of ecflow_start.sh :jiraissue:`ECFLOW-1991`
- **Improvement** enable mirror of non-generated inherited variables :jiraissue:`ECFLOW-1999`
- **Fix** replace use of deprecated functions to build with Boost 1.87 :jiraissue:`ECFLOW-1997`

ecFlow UI
---------

- **Fix** correct handling of Repeat DateTime values :jiraissue:`ECFLOW-1993`
- **Fix** correct selection in suite filter after Suite replacement :jiraissue:`ECFLOW-1994`

Documentation
-------------

- **Improvement** clarify use of attributes date and cron :jiraissue:`ECFLOW-1996`

Version 5.13.6
==============

Expand Down
2 changes: 1 addition & 1 deletion docs/ug/cookbook/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This cookbook will provide real examples of using the ecFlow :ref:`python_api`.
**Contents**

.. toctree::
:maxdepth: 2
:maxdepth: 1

intro
print_all_states
Expand Down
2 changes: 1 addition & 1 deletion docs/ug/elearning.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
eLearning
================

The ecFlow eLearning material is available `here <https://www.ecmwf.int/assets/elearning/ecflow/ecflow1/story_html5.html>`_.
The ecFlow eLearning material is available `here <https://learning.ecmwf.int/course/view.php?id=35>`_.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ but one that will be repeated indefinitely.

It is **highly discouraged** to create completion :term:`triggers <trigger>` on nodes/suites containing :term:`cron` attributes.

Consider combining the cron attribute together with event and complete attributes to avoid the suite never completing
-- see more about this usage pattern :ref:`here <cookbook-acquisition_task_pattern>`.

If the task aborts, the :term:`ecflow_server` will not schedule it again.

A :term:`cron` can be parameterised as follows:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ expressed with a wildcard \* to mean any valid value. For example,
**Extreme care** is advised when creating completion :term:`triggers <trigger>` on nodes/suites
containing :term:`date` attributes.

Consider combining the date attribute together with event and complete attributes to avoid the suite never completing
-- see more about this usage pattern :ref:`here <cookbook-acquisition_task_pattern>`.

Currently, a range of values cannot be used to specify any of the three numeric fields in a date.
See :ref:`text_based_def_day` for a way to specify the first seven days.
Expand Down
80 changes: 24 additions & 56 deletions libs/server/src/ecflow/server/ServerEnvironment.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -546,62 +546,30 @@ void ServerEnvironment::read_config_file(std::string& log_file_name, const std::
// read the environment from the config file.
// **** Port *must* be read before log file, and check pt files
po::options_description config_file_options("Configuration");
config_file_options.add_options()(
"ECF_HOME", po::value<std::string>(&ecfHome_)->default_value("."), "ECF_HOME, the home for all ECF files")(
"ECF_PORT",
po::value<int>(&serverPort_)->default_value(3141),
"The port number. Clients must use same port.")(
"ECF_CHECK",
po::value<std::string>(&ecf_checkpt_file_)->default_value(Ecf::CHECKPT()),
"Check point file name")(
"ECF_CHECKOLD",
po::value<std::string>(&ecf_backup_checkpt_file_)->default_value(Ecf::BACKUP_CHECKPT()),
"Backup checkpoint file name")(
"ECF_LOG", po::value<std::string>(&log_file_name)->default_value(Ecf::LOG_FILE()), "Log file name")(
"ECF_CHECKINTERVAL",
po::value<int>(&checkPtInterval_)->default_value(CheckPt::default_interval()),
"The interval in seconds to save check point file")(
"ECF_INTERVAL",
po::value<int>(&submitJobsInterval_)->default_value(defaultSubmitJobsInterval),
"Check time dependencies and submit any jobs")(
"ECF_CHECKMODE",
po::value<std::string>(&theCheckMode),
"The check mode, must be one of CHECK_NEVER, CHECK_ON_TIME, CHECK_ALWAYS")(
"ECF_JOB_CMD",
po::value<std::string>(&ecf_cmd_)->default_value(Ecf::JOB_CMD()),
"Command to be executed to submit a job.")(
"ECF_KILL_CMD",
po::value<std::string>(&killCmd_)->default_value(Ecf::KILL_CMD()),
"Command to be executed to kill a job.")(
"ECF_STATUS_CMD",
po::value<std::string>(&statusCmd_)->default_value(Ecf::STATUS_CMD()),
"Command to be obtain the job status from server.")(
"ECF_CHECK_CMD",
po::value<std::string>(&checkCmd_)->default_value(Ecf::CHECK_CMD()),
"Command to be obtain the job status from client.")(
"ECF_URL_CMD",
po::value<std::string>(&urlCmd_)->default_value(Ecf::URL_CMD()),
"Command to be obtain url.")(
"ECF_URL_BASE", po::value<std::string>(&urlBase_)->default_value(Ecf::URL_BASE()), "Defines url base.")(
"ECF_URL", po::value<std::string>(&url_)->default_value(Ecf::URL()), "The default url.")(
"ECF_MICRODEF",
po::value<std::string>(&ecf_micro_)->default_value(Ecf::MICRO()),
"Preprocessor character for variable substitution and including files")(
"ECF_LISTS",
po::value<std::string>(&ecf_white_list_file_)->default_value(Str::WHITE_LIST_FILE()),
"Path name to file the list valid users and their access rights")(
"ECF_PASSWD",
po::value<std::string>(&ecf_passwd_file_)->default_value(ecf::environment::ECF_PASSWD),
"Path name to passwd file")(
"ECF_CUSTOM_PASSWD",
po::value<std::string>(&ecf_passwd_custom_file_)->default_value(ecf::environment::ECF_CUSTOM_PASSWD),
"Path name to custom passwd file, for user who don't use login name")(
"ECF_TASK_THRESHOLD",
po::value<int>(&the_task_threshold)->default_value(JobProfiler::task_threshold_default()),
"The defaults thresholds when profiling job generation")(
"ECF_PRUNE_NODE_LOG",
po::value<int>(&ecf_prune_node_log_)->default_value(30),
"Node log, older than 180 days automatically pruned when checkpoint file loaded");
// clang-format off
config_file_options.add_options()
("ECF_HOME", po::value<std::string>(&ecfHome_)->default_value("."), "ECF_HOME, the home for all ECF files")
("ECF_PORT", po::value<int>(&serverPort_)->default_value(3141), "The port number. Clients must use same port.")
("ECF_CHECK", po::value<std::string>(&ecf_checkpt_file_)->default_value(Ecf::CHECKPT()), "Check point file name")
("ECF_CHECKOLD", po::value<std::string>(&ecf_backup_checkpt_file_)->default_value(Ecf::BACKUP_CHECKPT()), "Backup checkpoint file name")
("ECF_LOG", po::value<std::string>(&log_file_name)->default_value(Ecf::LOG_FILE()), "Log file name")
("ECF_CHECKINTERVAL", po::value<int>(&checkPtInterval_)->default_value(CheckPt::default_interval()), "The interval in seconds to save check point file")
("ECF_INTERVAL", po::value<int>(&submitJobsInterval_)->default_value(defaultSubmitJobsInterval), "Check time dependencies and submit any jobs")
("ECF_CHECKMODE", po::value<std::string>(&theCheckMode), "The check mode, must be one of CHECK_NEVER, CHECK_ON_TIME, CHECK_ALWAYS")
("ECF_JOB_CMD", po::value<std::string>(&ecf_cmd_)->default_value(Ecf::JOB_CMD()), "Command to be executed to submit a job.")
("ECF_KILL_CMD", po::value<std::string>(&killCmd_)->default_value(Ecf::KILL_CMD()), "Command to be executed to kill a job.")
("ECF_STATUS_CMD", po::value<std::string>(&statusCmd_)->default_value(Ecf::STATUS_CMD()), "Command to be obtain the job status from server.")
("ECF_CHECK_CMD", po::value<std::string>(&checkCmd_)->default_value(Ecf::CHECK_CMD()), "Command to be obtain the job status from client.")
("ECF_URL_CMD", po::value<std::string>(&urlCmd_)->default_value(Ecf::URL_CMD()), "Command to be obtain url.")
("ECF_URL_BASE", po::value<std::string>(&urlBase_)->default_value(Ecf::URL_BASE()), "Defines url base.")
("ECF_URL", po::value<std::string>(&url_)->default_value(Ecf::URL()), "The default url.")
("ECF_MICRODEF", po::value<std::string>(&ecf_micro_)->default_value(Ecf::MICRO()), "Preprocessor character for variable substitution and including files")
("ECF_LISTS", po::value<std::string>(&ecf_white_list_file_)->default_value(Str::WHITE_LIST_FILE()), "Path name to file the list valid users and their access rights")
("ECF_PASSWD", po::value<std::string>(&ecf_passwd_file_)->default_value(ecf::environment::ECF_PASSWD), "Path name to passwd file")
("ECF_CUSTOM_PASSWD", po::value<std::string>(&ecf_passwd_custom_file_)->default_value(ecf::environment::ECF_CUSTOM_PASSWD), "Path name to custom passwd file, for user who don't use login name")
("ECF_TASK_THRESHOLD", po::value<int>(&the_task_threshold)->default_value(JobProfiler::task_threshold_default()), "The defaults thresholds when profiling job generation")
("ECF_PRUNE_NODE_LOG", po::value<int>(&ecf_prune_node_log_)->default_value(30), "Node log, older than 180 days automatically pruned when checkpoint file loaded");
// clang-format on

ifstream ifs(path_to_config_file.c_str());
if (!ifs) {
Expand Down

0 comments on commit 3e0a311

Please sign in to comment.