diff --git a/experiments/variants/IBoM/README.md b/experiments/variants/IBoM/README.md new file mode 100644 index 00000000..275c4a94 --- /dev/null +++ b/experiments/variants/IBoM/README.md @@ -0,0 +1,35 @@ +# IBoM variants + +This is an analysis and test of the *variants* implementation of [IBoM](https://github.com/openscopeproject/InteractiveHtmlBom) + +## What goes inside the SCH + +- The field used for variants must be specified using `--variant-field` +- The field can contain only one value. So you create some kind of component groups. + +## What goes outside the SCH + +- Two optional lists are passed to create the variant. +- Components without a group are always included. +- Whitelist: only the groups listed here are included. + - If this list is empty all groups are included, unless listed in the blacklist. +- Blacklist: groups listed here are excluded. + +## Where is in the code? + +In core/ibom.py function skip_component. + +## Conclusion + +### Advantages + +- The `Config` field is simple. +- You have "exclude from" and "include only" options. + +### Disadvantages + +- Critical part of the information is outside the project. + + + + diff --git a/experiments/variants/KiBOM/README.md b/experiments/variants/KiBOM/README.md new file mode 100644 index 00000000..ac39d1f0 --- /dev/null +++ b/experiments/variants/KiBOM/README.md @@ -0,0 +1,37 @@ +# KiBOM variants + +This is an analysis and test of the *variants* implementation of [KiBOM](https://github.com/SchrodingersGat/KiBoM) + +## What goes inside the SCH + +- The variants are implemented using the `Config` field (the name can be configured). +- By default a component is included in all variants. +- You can exclude a component from one variant adding `-VARIANT_NAME` to the `Config`. + - If you want to exclude this component from more than one variant just add more `-VARIANT_NAME` entries. Comma separated. +- If a component will be included **only** in one variant you can use `+VARIANT_NAME`. + - Again you can add more than one `+VARIANT_NAME` entry. So the component will be included only if generating one of the selected variants. + +## What goes outside the SCH + +- When you generate the BoM you can select one or more variants, again comma separated. +- The `-VARIANT_NAME` and `+VARIANT_NAME` is tested using a list of all the indicated variants. +- By default the list of variants is ['default']. So *default* is like a special variant. + +## Where is in the code? + +The Component.isFitted() method implements the functionality. + +## Conclusion + +### Advantages + +- Almost all the information is inside the project. +- You have "exclude from" and "include only" options. + +### Disadvantages + +- The `Config` field could become large. + + + +