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.

Reply via email to