As users begin to mix more publicly available modules into SIMP systems, we run the risk of fact conflicts where the first one that gets loaded wins. This is quite likely to cause unexpected consequences in both our code and the code of other people.
...
Option 0:
Option 1:
Option 2:
Option 3:
Description
simp_<fact_name>
<modulename>_<fact_name> (single_underscore)
<modulename>__<fact_name> (double underscore)
<module_name>-<fact_name>
Pros and cons
Easy to understand
The hard-coded simp_ prefix would make transitioning ownership of a module to another organization awkward.
Easy to understand
May run into issues if <module_name> corresponds to a fact with an underscore
Minimizes risk of conflicts with any system fact value
Kind of strange syntactically (but not incorrect)
VERY unlikely to conflict with anything
The hyphen is a non-idiomatic character for fact names
Facts using this can't be accessed in classic $::fact_name format
Facter and Puppet (via $facts[]) accept this syntax , but there may be weird edge cases or tools that don't
Puppet recommends not making facts that are not valid puppet variable names since the behavior will be non-deterministic.