Issue #13063 has been updated by Chris Price.

Status changed from In Topic Branch Pending Review to Merged - Pending Release


----------------------------------------
Refactor #13063: Cleanup of settings / defaults definitions
https://projects.puppetlabs.com/issues/13063#change-58090

Author: Chris Price
Status: Merged - Pending Release
Priority: High
Assignee: Chris Price
Category: settings
Target version: Telly
Affected Puppet version: 
Keywords: 
Branch: https://github.com/puppetlabs/puppet/pull/571


A few of the tickets that I’ve been working on for Telly (#7749) have brought 
me into repeated conflict with the way that our settings / defaults are 
implemented.  After discussion with other folks in the platform team area, I am 
proposing the following changes (note that this proposal does not include 
changes to any of the *values* of the default settings, only the code that 
expresses them.  This should not have any effect on the actual behavior of 
puppet):

1. The #newsetting method in settings.rb will be greatly simplified, or perhaps 
go away entirely.  Right now it’s purpose is to attempt to guess what the type 
of a specific setting is via a case statement that in some cases involves 
regular expressions.  This seems unnecessary, and it seems like there is 
consensus to making the settings more strongly typed so that this guesswork can 
be removed.
2. In defaults.rb, there will no longer be some settings that are specified as 
arrays and others that are specified as hashes... they will all be specified as 
hashes.
3. All of the settings in defaults.rb will explicitly specify a setting type, 
with the possible exception of string settings.  Any setting that does not 
explicitly specify a type will be treated as a string setting.
4. The “setdefaults” method in settings.rb will be renamed to 
“definesettings()”, because we feel this is a more accurate description of what 
it is actually accomplishing.

NOTE

There are several other changes that have been proposed, but I’d prefer to 
handle this somewhat incrementally so those are the only ones that I’d be 
likely to tackle during this iteration.  Future iterations might include:

1. Getting rid of the “sections” concept entirely
2. Differentiating between a “FileSetting” and a “DirectorySetting”
3. … can’t remember what else we talked about, will update this as things come 
to mind.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to