teemtee / fmf

Flexible Metadata Format
GNU General Public License v2.0
22 stars 28 forks source link

implement nested fmf structures #82

Open sopos opened 3 years ago

sopos commented 3 years ago

Image a node where I define a reference to another git repo where the branch continues. I can image a reserved attribute

fmf_subtree:
  url: https://github.com/...
  reference: master

such repo would be pulled and the tree would be simply extended by this part.

It is still questionable how the inheritance should behave at such points where a new fmf tree begins. This might be controlled by another attribute of _fmfsubtree, e.g. boolean inheritance.

fmf_subtree:
  url: https://github.com/...
  reference: master
  inheritance: true
sopos commented 3 years ago

one more possible extension would be usage of path attribute which would allow one to use just a sub-tree of the target repo which could be another form of filtering or selecting just a subset of the metadata (e.g. include plans only, or tests only if organized separately).

fmf_subtree:
  url: https://github.com/RedHat-SP-Security/tests
  reference: master
  inheritance: true
  path: /usbguard
sopos commented 3 years ago

I think I have another use case: as a tester of component A I want to include on test of component B to my scope. Typically I would like to add a selinux-policy tests to be executed as part of my component testing or vice versa, my test might help with selinux-policy testing. There might be better way, though.

jscotka commented 3 years ago

this PR https://github.com/psss/fmf/pull/54 probably also implements what you want. It is little bit tricky, that I needs to download remote git separately, but in fact, it works well and also allows referencing nodes inside remote tree.

Another solution what your need is clone git repo separately to subdir (of use git submodule inside your preferred path inside) and just remove .fmf dir inside this cloned dir and it will create exactly what you want. (trouble could be with semantics e.g. using relative path pargument for test execution)

psss commented 3 years ago

Hm, I guess #99 is a duplicate of this, right?

sopos commented 3 years ago

Yep, looks like the idea is basically the same. The difference might be the granularity.