Lets take is_virtual as an example. That fact, and all the boolean facts, have been strings since the dawn of time. During the first days of creation people wrote manifests that went if $is_virtual == 'false' {}.
By now, most if not all, DSL consumers are aware of the 'correct' way to do this, str2bool($::is_virtual). As long as str2bool() with a bool returns that bool I see no issue with changing all the boolean facts to be actual booleans, even in a .Z release. If you're still comparing it as a string, too bad, we've had a better way for over 2 years now. What I mean is, I think there's a lot of facts we can type without breaking anything. More and more manifests validate their input using the validate_* and is_* functions in stdlib and leverage the set of 'conversion' functions we have in stdlib to transform input to their actual type. I also think a lot of active module writers are well aware of the changes coming to Facter and Puppet and we shouldn't be too afraid to use that to our advantage. As long as it's clearly announced, early so people can roll a release with fixes in time for a Facter release, I doubt there's a need for strict semver adherence. -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/4cf8a0ff-5fed-4209-b843-e3c34c97d7a7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.