Releases

fmf-1.7.0

Context dimension names can now contain dash characters as well so that multi-word names such as deployment-mode can be used.

The merge suffix, for example + in the environment+ key, is now correctly stripped from the nodes defined in the root of the tree as well.

A new callback additional_rules_callback can now be provided to the fmf.Tree.adjust() method and affect which nodes should be adjusted using the additional_rules.

fmf-1.6.1

In order to allow adjust rules to merge dictionaries, nested dictionaries need to keep the suffix in their name. This behavior reverts to fmf-1.4.0 and is now documented in merging section.

fmf-1.6.0

In order to search Context dimension values using regular expressions, it is now possible to use operator ~ for matching patterns and operator !~ for non matching patterns.

When exploring trees using the fmf.Tree.climb() and fmf.Tree.prune() methods, optional parameter sort can be used to preserve the original order in which child nodes where inserted into the tree. See the Sort section for more details.

fmf-1.5.0

The fmf Trees can now be built from hidden files and directories as well. Use a simple Config file to specify names which should be included in the search.

The + operator now can be used for merging list of dictionaries with a single dict. This can be for example useful when extending the discover step config which defines several phases:

discover:
  - how: fmf
    url: https://github.com/project/one
  - how: fmf
    url: https://github.com/project/two

/tier1:
    summary: Run tier one tests
    discover+:
        filter: "tier:1"

/tier2:
    summary: Run tier two tests
    discover+:
        filter: "tier:2"

See the merging section for more details and examples.

The - operator no longer raises exception when the key is not defined by the parent node. This allows reducing values even for cases where user does not have write permissions for the parent data. For example, in order to make sure that the mysql package is not included in the list of required or recommended packages, you can now safely use this:

discover:
    how: fmf
    adjust-tests:
      - require-: [mysql]
      - recommend-: [mysql]

When merging inherited values from parent, merge operations are now performed in the exact order in which user specified them, the keys are no longer sorted before the merging step.

fmf-1.4.0

New merging suffixes ~ and -~ can be used to modify or remove data based on regular expressions. For example, renaming all required packages can be done easily in this way:

require~: /python2-/python3-/

The fmf.filter() function now supports searching by node name. Just specify the desired name instead of the key: value pair. For example, to search for all tests with the name starting with /test/core and tag quick you can do:

/tests/core/.* & tag: quick

It is now possible to escape boolean operators | and & as well. This allows to use more complex regular expressions like this:

tag: Tier(1\|2\|3)

The new select directive can be used to include branch nodes or skip leaf nodes when searching the tree using the fmf.Tree.climb() method.

The fmf.Tree.adjust() method now supports new parameter additional_rules for providing additional adjust rules which are applied after the rules detected in the node itself.