During the recent EBRAINS Software Distribution (ESD) Hackathon in Heidelberg, a potential weakness of Cobrawap has been pointed out.
As well documented here, for a fixed profile of analysis, different variants can be used, differentiated by using the | character. E.g., for main configuration profile config_some_profile.yaml, we could have two different variants:
Actually, the use of pipes in filenames can be a very likely pitfall, either for what regards filename parsing by external libraries (see the case of neo package), and more in general for filesystem robustness and portability. Also, many expert users may be used to manipulate files through the shell, and having |'s in filenames requires extra efforts for avoiding the interpretation of | as a "concatenate" command.
A possible solution for variants can be the already implemented use of the _ hierarchy in profile naming. So in the example above, the two variants would be:
which already have higher priority with respect to config_some_profile.yaml (exactly as it used to be before).
During the recent EBRAINS Software Distribution (ESD) Hackathon in Heidelberg, a potential weakness of Cobrawap has been pointed out.
As well documented here, for a fixed profile of analysis, different variants can be used, differentiated by using the
|character. E.g., for main configuration profileconfig_some_profile.yaml, we could have two different variants:config_some_profile|variant_1.yamlconfig_some_profile|variant_2.yamlActually, the use of pipes in filenames can be a very likely pitfall, either for what regards filename parsing by external libraries (see the case of
neopackage), and more in general for filesystem robustness and portability. Also, many expert users may be used to manipulate files through the shell, and having|'s in filenames requires extra efforts for avoiding the interpretation of|as a "concatenate" command.A possible solution for variants can be the already implemented use of the
_hierarchy in profile naming. So in the example above, the two variants would be:config_some_profile_variant_1.yamlconfig_some_profile_variant_2.yamlwhich already have higher priority with respect to
config_some_profile.yaml(exactly as it used to be before).