Closed st-vi closed 1 day ago
Can confirm this issue. Does this also affect mandatory children (which would not be core, if the mandatory root feature is enforced)? This could threaten the validity of previous evaluation results.
This is not a bug, but intented behavior. The dummy root feature is not written to the dimacs file to avoid unecessary bloating. You can disable this behavior in the FeatureIDE preference page by unchecking the option "Omit artifical root feature when saving DIMACS file".
I understand the automatic discard, but the resulting number of valid configurations is wrong, because the output does not remove Root but instead considers it a fully optional feature.
One fix could be to change p cnf 3 0
to p cnf 2 0
.
This problem is also relevant because feature models computed from Tobias Pett (https://github.com/PettTo/Measuring-Stability-of-Configuration-Sampling) also have this artificial root name. When we convert those feature models we get faulty model counts.
Ah, yes you are right. Now it is fixed.
Prerequisitives
4.28.0in
v3.11.1
openjdk 18.0.2
Issue description
Exporting a UVL featuremodel to dimacs results in a wrong cnf. Example: The feature model
results in the dimacs
which is wrong, since the root feature is not forced to be true here. When we remove the underscores from the root feature name, everything works as expected:
results in the dimacs
which is correct. A common feature model with this issue is busybox (https://github.com/Universal-Variability-Language/uvl-models/blob/main/Feature_Models/Operating_Systems/BusyBox/busybox_2010-05-02_14-17-07.uvl).