Comments (9)
I am not sure this is the best idea, from point of FMF this seems quite bad. You are basically breaking the tree structure, where some leaves belong to a branch but do not take anything from it, instead they are virtually moved to different branch.
So what prevents you from moving those tests where they actually belong and keep the inheritance sane and intact?
from fmf.
I don't think we should introduce complex referencing like suggested here. At least for now. This would/could lead to many non-trivial implementation problems and would make understanding how data are inherited much harder. I can imagine we introduce some kind of plugins to support special/common scenarios (such as auto-generating directory path for beakerlib tests) but in the fmf core I would like to see only the very essential features. Among these I also count adding attributes with +
as this is related in a straightforward way to inheritance which, of course, is at the very core of the fmf concept and it would definitely not make any sense to leave this on an external tooling.
from fmf.
solved with own implementation in COLIN project.
In case similar implementation will be incorporated to some FMF extensions, plugins, I'll be very happy :-)
see implementation for inspiration, it is very straightforward and clean:
and allow do meta plans, could be named "FMMF" - flexibile meta metadata format @psss ;-)
https://github.com/user-cont/colin/pull/141/files#diff-5eb57703ea0cb920089bd5ddef755c6fR19
from fmf.
my case solved by: #36
I've decided to solve it as postprocessing step, because it could be easier to find that base objects are constructed already
from fmf.
@jkrysl Tree structure is not broken, just one thing what is chaged is that these data
elements are inherited from reference, not from parent items and also copied sources, so that easy to debug this.
But I understand you PoV.
My usecase is, that someone, wants to create virtual hierarchy based on some existing one.
(maybe could be used for linking (merging) test coverage with real cases)
see also real life example in PR
from fmf.
+1 to @jkrysl; this seems risky at best.
If you have some project-specific mapping, that's fine (most if not all projects will have some own rules), but you should always do that on project-specific tooling. Maybe I'm not understanding what you mean, but it seems like something you should write your own tools for that; FMF should really be just about discovering and collecting plain data -- not giving meaning or semantics.
from fmf.
And by the way, what if I want to have key with @
in it?
from fmf.
- No,it is not project specific, it is generic, but inspired by one project what has similar tooling. And This is PoC how it can work.
- No, it is not possible to implement it on project specific level, because there is already semantics with
+
char what is removed and I'm not able to postprocess it without changes inside. so that I cannot implement it and reuse there this semantics for+
to keys - Yep it is possible to let FMF as plain tool for collecting data and all other stuff let in other projects or at least in some another tools what are part of FMF, but in that case we have to remove all semantics in FMF like
+
handling, and also remove this data inheritance, and implement it in another tool, because actual solution leads to info merging, so unable to reconstruct original data. - I would like FMF contains some common solutions for common items, and in case you would like to do it in your way, you can use simple data and generate your own solution.
- I can also imagine, that there will be some common transformation
templates
for our common work, like for beakerlib, for avocado, for STI, like formatting like{}/{}/{}
(root, path or name, test)
- So that possible solution is also, that these functions are not enabled by default, and could be enabled and are part of
Tree
methods. or via some plugins or modules, what can be added to FMF. - And your last question. I've also thought about that, if it is good idea or not, probably could be and probably we can be inspired by
xpath
solution. But as simplest solution I've just choosed thiswhole
node inheritance as the most common case for referencing. and with+
semantics you can modify it nicely. just one think what is possible to do it with@
in keys is renaming of one attribite to another, orinherit
data from more nodes by keys.
from fmf.
Good to hear the current FMF implementation is extensible enough for your use case. We can revisit the concept of plugins later.
from fmf.
Related Issues (20)
- fmf-0.15.2-1.el7: python36-fmf is missing in EPEL-7 HOT 6
- sources are bad in cases of definition of data in upper level HOT 2
- ref is trimmed into 8 char. HOT 4
- Allow filter by values containing colon (e.g. module:stream) HOT 2
- Drop support for Python 2 HOT 2
- Checkout of the default branch fails on Rawhide HOT 4
- implement programatic expansion of metadata - macros HOT 2
- [RFE] Allow allways True condition for adjust: when HOT 5
- Allow prepending in adjust HOT 1
- [RFE] Enable using of adjust at any level HOT 1
- Add JSON schema validation functionality HOT 2
- Fail to parse fmf files on s390x HOT 7
- Traceback when defining context in a test plan HOT 4
- Use `--depth 1` when cloning git repos with no `ref` specified
- Use schema-based validation for FMF's objects consumed by FMF itself
- Context operator != matching not defined dimension
- Support for `.dot` directories for storing plans HOT 15
- Add type annotations to fmf code HOT 1
- Case-sensitivity of context adjusting is unclear HOT 4
- Add distro and arch info to guests.yaml
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fmf.