Release notes

Version 2.7.1

Release: 2024-05-30

  • Added: GitLab-CI tests for make commands.

  • Added: jube continue test for tagging example.

  • Fixed: Only in the case of jube run, check that there is a tag attribute description for tags that are not used in the input file.

  • Fixed: Glossar and jube help.

Version 2.7.0

Release: 2024-05-21

  • Added: New <tags> tag, which includes the <tag> tag to write a description for each tag specified in the input file.

  • Added: New command jube tag to print out the tag description of a given input file or benchmark directory.

  • Added: A new operator ^ (exclusive disjunction (xor)) for the tag attribute and <check_tags>.

  • Added: New primekey attribute for the key-tag of the database to define whether this key is a primary key of the database or not. Can be set to true or false (default: false).

  • Added: New environment variable JUBE_VERBOSE to set the verbosity level.

  • Added: Warning when the current verbosity level from the command line or environment variable is out of range.

  • Added: New environment variable JUBE_BENCHMARK_OUTPATH to set the benchmark outpath.

  • Added: New command line option –outpath of jube run to specify the benchmark outpath.

  • Changed: The jube info command now also shows information about all sets, steps, analyser and result from the configuration.xml.

  • Changed: The outpath attribute of the <benchmark> tag no longer needs to be specified in the input file if either the command line option –outpath is set or the new environment variable JUBE_BENCHMARK_OUTPATH is used. The command line option overrides the environment variable, which in turn overrides the attribute in the input file.

  • Changed: The modified convert type warning is only logged to the analyse.log file and no longer printed to the console output.

  • Changed: If the title attribute of a <database> <key> is set, then this title is used as the name of the database column instead of the parameter or pattern name.

  • Changed: The <check_tags> tag is now a subelement of the new <tags> tag.

  • Changed: Changed the name of the source directory from jube2 to jube and adapted the code to the name change. The links to the documentation on the websites have also been adjusted accordingly.

  • Deprecated: The primekeys attribute of the <database> is no longer supported. Use the new primekey attribute of the <database> <key> instead.

  • Deprecated: <check_tags> will no longer be supported on a global level. Instead, it should be specified in the <tags> tag.

  • Removed: Comma character (,) is no longer supported in <check_tags> and the tag attribute. Instead use |, ^ + and !.

  • Fixed: Allow YAML scripts to include a list of nested parametersets with !include.

  • Fixed: Allow YAML scripts to use the tag attribute in the <path> of the <include-path>-tag.

Version 2.6.2

Release: 2024-04-05

  • Added: CONTRIBUTING.md file

  • Added: New parameter named jobname in parameterset systemParameter of file platform/slurm/platform.xml to modify the value of the –job-name argument in submit.job. During substitution in executesub, quotes are added around the value of jobname.

  • Added: Test to verify that a step with a do operation that contains a done_file has been successfully executed.

  • Added: CODE_OF_CONDUCT.md file

  • Added: JUBE logo in svg and eps format

  • Fixed: Resolved deprecation warnings

  • Fixed: Parameters of a dependent step with an update_mode step are updated when a jube continue is executed.

  • Fixed: Allow YAML and XML scripts to include paths per include in include-path.

  • Fixed: Use correct continue log file for parallel step execution.

  • Deprecated: Comma character (,) will not be supported anymore in tag attributes. Instead use |, + and !.

  • Changed: The unit of a parameter or pattern will also be displayed in the results output when a title is specified.

  • Changed: Redesign of the README.md file

  • Changed: Colors on website

Version 2.6.1

Release: 2023-11-28

  • Added: CITATION.cff file

  • Added: New argument -w for command line option jube info to print information about the given workpackage.

  • Fixed: Overwrite the sub with the same source, so that the substitution with init_with will work again.

  • Changed: The substitute_tests has been adapted so that the tests fail when the bug fixed in this release occurs.

Version 2.6.0

Release: 2023-11-16

  • Added: New option <check_tags>, which allows you to specify tags that must be set for the script to run.

  • Added: New optional mode attribute to the sub-tag, allowing regex substitution as an alternative to text-based substitution. The latter remains the default.

  • Added: The jube result command line call has been extended by the options –select and –exclude to show and hide selected result columns.

  • Added: New command line option jube output to print out the path and the contents of the files stdout and stderr.

  • Added: A new unit attribute to parameter, which has the same function as the unit attribute of pattern.

  • Added: New jube variable $jube_wp_status which contains the status of the current workpackage at the time the variable is evaluated.

  • Added: New YAML schema file.

  • Added: Missing database-tag to dtd, rnc and xsd schema files. (Issue #1 on GitHub)

  • Added: A validity check by use of the pip package ruamel.yaml is introduced. This package is used if it is installed. Otherwise, there will be no validity check for yaml files.

  • Fixed: The include-path for YAML scripts and added an usage example to the advanced tutorial. (Issue #2 on GitHub)

  • Fixed: export of an empty parameter. (Issue #3 on GitHub)

  • Fixed: Backward compatibility for floating number value definitions of parameters of type int was restored such that only warning messages are printed in this case.

  • Fixed: Typos and bugs in the glossary and the help message.

  • Changed: The files_and_sub, parallel_workpackages, result_creation, result_database and tagging example has been updated.

  • Changed: The jube complete help output was debugged.

  • Changed: The tests for the examples have been completely rewritten to avoid using run.log files.

  • Changed: Improved CI: separated tests and automatic tasks for releases.

Version 2.5.1

Release: 2022-08-24

  • The default behaviour of replacing two parameters with different options without throwing an error was restored.

  • The testing suite was extended.

  • The schema files were corrected such that they contain the duplicate option.

Version 2.5.0

Release: 2022-08-22

  • Several independent workpackages within a step can be executed by multiple processes in parallel by stating procs=#number_of_parallel_processes# within the step tag. An example and a documentation entry was added.

  • A result database can be produced by use of the database tag. An example and a documentation entry was added.

  • python2-support was removed.

  • A couple of unittests were added which now include the testing of most of the examples.

  • Sample run.log of most examples were added to tests/examples_output.

  • Some yaml example scripts were corrected.

  • The MANIFEST file was removed.

  • A typo in the error message was fixed.

  • Fix result command documentation.

  • A wrong result entry in the glossary was fixed.

  • A bug for the usage of a newline separator within yaml scripts is resolved.

  • A feature to create a do_log file for every workpackage of a step is integrated. The do_log file contains the whole environment while execution, the execution shell, the change of current work directories, comments if a directive was executed in a shared fashion and the do directives of the steps.

  • The execution cancels now, when a parameter is of type int or float and the parameter value has not the form of a int or float correspondingly.

  • The FAQ documentation was extended with yaml examples.

  • The option duplicate for parametersets and parameters was introduced.

Version 2.4.3

Release: 2022-07-20

  • Fixes a bug related to <include> and init-with combinations.

  • JUBE_EXEC_SHELL is now also taken into account during parameter evaluation.

  • jube status now also returns ERROR state.

  • Fixes a bug of using $$ in shell commands.

  • Updates SLURM gres default value in platform files.

  • Fixes a bug of having a list of benchmarks in YAML format.

Version 2.4.2

Release: 2021-11-30

  • JUBE will raise an error if an changed work_dir contains unknown variables.

  • A bug was solved which enabled dotall=”true” by default for all pattern, which can make those costly to evaluate.

  • Fixes a bug in result data processing.

  • Fixes a bug in YAML input format if benchmark key is not used.

  • A empty value in YAML input format will now be treated liek an empty String not as a None value.

  • Avoid crash due to overflow error for huge pattern values.

  • Fixes a bug, which blocked include blocks to include other include blocks.

  • setup.py now moves all additional non-code data to …/share/jube, which allows better utilization of pip based installation

Version 2.4.1

Release: 2021-02-09

  • A bug was solved, if a benchmark used the older ,-separated tag= format in contrast to the new layout introduced in version 2.2.2.

  • A warning message in context of newer YAML versions was removed.

  • A Python3 problem inside the YAML parser was solved.

  • A bug was solved, which was raised if the benchmark was started on a different filesystem then the one which was configured within outpath.

  • The jube base script within bin will now use python3 by default. This is necessary as many newer systems does not have a “standard” python defined by default. In addition the additional script jube-python2 is now available, which utilizes python2. So far Python 2 is still fully supported but can be seen deprecated and future versions of JUBE might break the Python 2 backwards compatibility.

  • All style=pretty tables in JUBE will now use a markdown like format to allow easier integration within other tools.

Version 2.4.0

Release: 2020-07-03

  • New YAML based JUBE input format. The existing XML format still stays available. Both formats cover the same amount of features. If you plan to use YAML based JUBE input files, you have to add the pyyaml-module to your Python module library. See also Input format

  • New <do> attribute: error_file="...". In contrast to the existing done_file this file handle can be used to mark a broken asynchronous execution (the job templates in the platform folder were updated accordingly)

  • The analyse step is now automatically called when a result is shown and if it was not executed before (instead of showing an error message).

  • New option --workpackage for remove command line sub command. Allows to remove an individual workpackage from a benchmark. See also: Restart a workpackage execution

  • New table output format: aligned

Version 2.3.0

Release: 2019-11-07

  • New command line option -s {pretty,csv}, --style {pretty,csv} for the result command allows to overwrite the selected table style

  • New command line option -o OUTPATH, --outpath OUTPATH for the run command allows to overwrite the selected outpath for the benchmark run

  • New parameter modes: env and tag

    • mode="env: include the content of an available environment variable

    • mode="tag: include the tag name if the tag was set during execution, otherwise the content is empty

  • New option dotall=true in <pattern> (default: false) allows that . within a regular expression also matches newline characters. This can be very helpfull to extract a line only after a specific header was mentioned. See Extract data from a specifc text block

  • --tags used in combination with the --update option will now be added to the existing tags of the original run instead of overwriting the old tags. If no new tags need to be added within an update --tags can now be skipped.

  • parse.log is now automatically moved into the specifc job run folder and is also available within the jube log command

Version 2.2.2

Release: 2019-02-04

  • New tag handling: Tags can now be mixed by using boolean operations (+ for and, | for or), brackets are allowed as well. Old , separated lists of tags are automatically converted. See Tagging

  • Extend parameter update documentation. See Parameter update

  • Platform files were renamed (system specific to queuing system specific)

  • Fix $jube_wp_relpath and $jube_wp_abspath if JUBE is executed from a relative directory

  • Fixed missing or wrong environment variable evaluation within JUBE parameters

  • Fix for derived pattern handling if no match for regular pattern was found

  • Fix default value handling for derived pattern

  • Fix unicode decoding problems for environment variables

Version 2.2.1

Release: 2018-06-22

  • Allow separator selection when using the jube info ... -c option

  • Fix internal handling if a script parameter or a template is evaluated to an empty value

  • Fix for different Python3 parsing conflicts

Version 2.2.0

Release: 2017-12-21

  • New feature: step cycles. See Step cycle

  • New parameter update_mode. See Parameter update

  • Result creation by scanning multiple steps now automatically creates a combined output

  • Speed up of the JUBE internal management if a large number of work packages is used

  • JUBE 1 conversion tool is not available any more

  • New general commandline option --strict stops JUBE if there is a version mismatch

  • Broken analysis files will now be ignored

  • Fix combination of active and shared

  • Fix sorting problem for multiple result columns

  • Fix parameter problem, if the continue command is used and the parameter holds a value having multiple lines

Version 2.1.4

Release: 2016-12-20

  • --id indices on the commandline can now be negative to count from the end of the available benchmarks

  • JUBE now allows a basic auto completion mechanism if using BASH. To activate: eval "$(jube complete)"

  • Fix result sorting bug in Python3

  • New jube_benchmark_rundir variable which holds the top level JUBE directory (the absolute outpath directory)

  • Fix CSV output format, if parameter contain linebreaks.

  • active attribute can now be used in <prepare>, <copy> and <link>

  • New FAQ entry concerning multiple file analysis: Frequently Asked Questions

  • <parameter> using mode="shell" or mode="perl" will now stop program execution if an error occurs (similar to mode="python")

  • <do> specfic work_dir is now created automatically if needed

  • directory attribute in <link> and <copy> was renamed to source_dir (old attribute name is still possible)

    • source_dir now allows parameter substitution

  • New attribute target_dir in <link> and <copy> to specify the target directory path prefix

Version 2.1.3

Release: 2016-09-01

  • Fix broken CSV table output style

  • Fix jube_wp_... parameter handling bug, if these parameter are used inside another script parameter

  • Added new optional argument suffix="..." to the <step> tag

    • Parameter are allowed inside this argument string.

    • The evaluated string will be attached to the default workpackage directory name to allow users to find specific directories in an easier way (e.g. 000001_stepname_suffix ).

  • The XML schema files can now be found inside the contrib folder

  • Added new advanced error handling

    • JUBE will not stop any more if an error occurs inside a run or continue. The error will be marked and the corresponding workpackage will not be touched anymore.

    • There is also a -e/--exit option to overwrite this behaviour to directly exit if there is an error.

Version 2.1.2

Release: 2016-07-29

  • The internal parameter handling is much faster now, especially if a large number of parameter is used within the same step.

  • Fix critical bug when storing environment variables. Environment variables wasn’t read correctly inside a step if this step was only executed after a jube continue run.

  • Fix bug inside a <sub> if it contains any linebreak

  • Quotes are added automatically inside the $jube_wp_envstr variable to support spaces in the environment variable argument list

  • Combining -u and tags in a jube result run will not filter the result branches anymore

  • Allow lowercase false in bool expressions (e.g. the active option)

  • Fix bug when using JUBE in a Python3.x environment

  • The jube help output was restructed to display separate key columns instead of a keyword list

  • <pattern> can now contain a default=... attribute which set their default value if the pattern can’t be found or if it can’t be evaluated

  • null_value=... was removed from the <column> and <key>-tag because the new default attribute matches its behaviour

  • Added first JUBE FAQ entries to the documentation: Frequently Asked Questions

  • New active-attribute inside a <step>-tag. The attribute enables or disables the corresponding step (and all following steps). It can contain any bool expression and available parameter.

  • Fix bug in <link> handling if an alternative link name is used which points to a sub directory

  • Added new option -c / --csv-parametrization to jube info command to show a workpackage specfic parametrisation by using the CSV format (similar to the existing -p option)

  • Allow Shell expansion in <link> tags. <link> now also support the *

  • Restructure internal <copy> and <link> handling

  • All example platform files were updated an simplified

Version 2.1.1

Release: 2016-04-14

  • JUBE will now show only the latest benchmark result by default, --id all must be used to see all results

  • Bool expressions can now be used directly in the <do active=""> attribute

  • Added filter attribute in <table> and <syslog> to show only specifix result entries (based on a bool expression)

  • New <parameter> and <pattern> mode: mode="shell"

  • Allow multiline output in result tables

  • Fix wrong group handling if JUBE_GROUP_NAME is used

  • Scripting parameter (e.g. mode="python") can now handle $ to allow access to environment variables

  • Fix $$ bug ($$ were ignored when used within a parameter)

  • Fix $jube_wp_parent_..._id bug if $jube_wp_parent_..._id is used within another parameter

  • Fix bug in std calculation when creating statistical result values

  • Fix bug if tags are used within <include>

Version 2.1.0

Release: 2015-11-10

  • Fix slow verbose mode

  • Fix empty debug output file

  • Fix broken command line --include-path option

  • Allow recursive <include-path> and <selection> handling (additional include-paths can now be included by using the <include> tag)

  • Allow multiple <selection> and <include-path> areas

  • New transpose="true" attribute possible in <table>

  • Allow recursive parameter name creation in <do> or <sub> (e.g. ${param${num}})

  • Extend iteration feature

    • iteration=#number can be used in the <step> tag, the work package will be executed #number times

    • New reduce attribute in analyser, possible values: true or false (default: true)

      • true: use a single result line to combine all iterations

      • false: each iteration will get its separate result line

  • Fix pattern_cnt bug

  • New pattern suffix: _std (standard deviation)

  • reduce option in <pattern> not needed anymore (all possible reduce options are now calculated automatically)

  • Fix jube-autorun and add progress check interval

  • Added --force command line option to skip JUBE version check

  • Added optional out_mode attribute in <iofile>. It can be a or w to allow appending or overwriting an existing out-file (default: w).

  • New version numbering model to divide between feature and bugfix releases

Version 2.0.7

Release: 2015-09-17

  • JUBE will ignore folders in the benchmark directory which does not contain a configuration.xml

  • New pattern reduce example Statistic pattern values

  • New internal directory handling to allow more flexible feature addition

  • New internal result structure

  • Fix derived pattern bug when scanning multiple result files

  • JUBE version number will now be stored inside the configuration.xml

  • JUBE version number will be checked when loading an existing benchmark run

  • New JUBE variable: $jube_wp_relpath (contains relative workpackage path)

  • Add Verbose-Mode -v / --verbose

    • Enable verbose console output jube -v run ...

    • Show stdout during execution: -vv

    • Show log and stdout during execution: -vvv

  • Change version mode to -V / --version

  • jube_parse.log will now be created next to the <input_config>.xml file

  • New syslog result type (thanks to Andy Georges for contribution), see syslog_tag

  • New environment variable JUBE_GROUP_NAME: By setting and exporting JUBE_GROUP_NAME to an available UNIX group, JUBE will create benchmark directory structures which can be accessed by the given group.

  • Benchmark results can now be created also by user without write-access to the benchmark directory

  • Parametersets are now available within each dependent step. There is no need to reuse them anymore.

Version 2.0.6

Release: 2015-06-16

  • users can now change the JUBE standard Shell (/bin/sh) by using the new environment variable JUBE_EXEC_SHELL, see Configuration

  • fixes a bug if a Shell filename completion results to a single file name (inside the <copy>-tag)

  • fixes stderr reading bug if work_dir was changed in a specific <do>

  • changes include path order, new order: commandline (--include-path ...), config file (<include-path>), Shell var (JUBE_INCLUDE_PATH), .

  • fixes some unicode issues

  • units in the result dataset will now be shown correctly if a file specific patternset is used

Version 2.0.5

Release: 2015-04-09

  • argparse is now marked as a dependency in setup.py. It will be automatically loaded when using setuptools.

  • tags will now also be used when including external sets by using <use from="...">

  • change default platform output filenames: using job.out and job.err instead of stdout and stderr for default job output

  • new internal workflow generation alogrithm

  • parameter can now be used in step <use>, e.g. <use>set_$number</use>

    • external sets had to be given by name to allow later substitution: <use from="file:set1:set2">set$nr</use>

    • also multiple files can be mixed: <use from="file:set1,file2:set2">set$nr</use>

    • new example Parameter dependencies

  • allow use-attribute in file-tag to select file specific patternsets <file use="patternset">

  • Shell and parameter substitution now allowed in analyse files selection <file>*.log</file>

  • default stdout and stderr file will now stay in the default directory when changing the work_dir inside a <do>

  • start of public available JUBE configuration files repository: https://github.com/FZJ-JSC/jube-configs

Version 2.0.4

Release: 2015-02-23

  • fix bug when using JUBE in a Python3.x environment

  • time information (start, last modified) will now be stored in a seperate file and are not extracted out of file and directory metadata

  • jube run now allows the --id/-i command line option to set a specific benchmark id

  • jube result now automatically combines multiple benchmark runs within the same benchmark directory. JUBE automatically add the benchmark id to the result output (except only a specific benchmark was requested)

    • new command line option: --num/-n allow to set a maximum number of visible benchmarks in result

    • new command line option: --revert/-r revert benchmark id order

  • new attribute for <column>: null_value="..." to set a NULL representation for the output table (default: "")

  • new command: jube update checks weather the newest JUBE version is installed

  • new id options: --id last to get the last benchmark and --id all to get all benchmarks

Version 2.0.3

Release: 2015-01-29

  • missing files given in a fileset will now raise an error message

  • jube info <benchmark-dir> --id <id> --step <step_name> now also shows the current parametrization

  • jube info <benchmark-dir> --id <id> --step <step_name> -p only shows the current parametrization using a csv table format

  • add new (optional) attribute max_async="..." to <step>: Maximum number of parallel workpackages of the correspondig step will run at the same time (default: 0, means no limitation)

  • switch <analyzer> to <analyser> (also <analyzer> will be available) to avoid mixing of “s” and “z” versions

  • fix bug when using , inside of a <pattern>

  • JUBE now return a none zero error code if it sends an error message

  • update platform files to allow easier environment handling: <parameter ... export="true"> will be automatically used inside of the corresponding jobscript

  • update platform jobscript templates to keep error code of running program

  • fix bug when adding ; at the end of a <do>

  • last five lines of stderr message will now be copied to user error message (if shell return code <> 0)

  • fix Python2.6 compatibility bug in converter module

  • fix bug when using an evaluable parameter inside of another parameter

Version 2.0.2

Release: 2014-12-09

  • fix a bug when using init-with to initialize a <copy>-tag

  • use cp -p behaviour to copy files

  • fix error message when using an empty <do>

  • added error return code, if there was an error message

Version 2.0.1

Release: 2014-11-25

  • --debug option should work now

  • fixes problem when including an external <prepare>

  • update Python 2.6 compatibility

  • all <do> within a single <step> now shares the same environment (including all exported variables)

  • a <step> can export its environment to a dependent <step> by using the new export="true" attribute (see new environment handling example)

  • update analyse behaviour when scanning multiple files (new analyse run needed for existing benchmarks)

  • in and out substitution files (given by <iofile>) can now be the same

  • <sub> now also supports multiline expressions inside the tag instead of the dest-attribute: <sub source="..."></sub>

Version 2.0.0

Release: 2014-11-14

  • complete new Python kernel

  • new input file format

  • please see new documentation to get further information