Feature Flags location

22 views
Skip to first unread message

Juan Hoyos

unread,
Feb 15, 2018, 11:29:51 PM2/15/18
to Puppet Developers
Hi there!

In the COMMITTERS.md [0] file it is clearly stated that Puppet uses Feature Flags as the primary opt-in behavior, but cannot find a clear location where these are being used. In defaults.rb [1] I see configuration settings without no explicit distinction between stable or experimental features.

Where can I find the used Feature Flags with their defaults values?
How is decided that a new feature in Puppet should be behind a Feature Flag?

I'm currently undergoing an academic research regarding Technical Debt and Feature Toggles and I'm trying to determine if Puppet is a good candidate to be analyzed.

Thank you in advance,

Juan

References:

[0] - https://github.com/puppetlabs/puppet/blob/master/COMMITTERS.md
[1] - https://github.com/puppetlabs/puppet/blob/master/lib/puppet/defaults.rb

Henrik Lindberg

unread,
Feb 16, 2018, 6:58:48 AM2/16/18
to puppe...@googlegroups.com
On 16/02/18 04:56, Juan Hoyos wrote:
> Hi there!
>
> In the COMMITTERS.md [0] file it is clearly stated that Puppet uses
> Feature Flags as the primary opt-in behavior, but cannot find a clear
> location where these are being used. In defaults.rb [1] I see
> configuration settings without no explicit distinction between stable or
> experimental features.
>

An experimental status is mentioned in the documentation for such
settings/features.

> Where can I find the used Feature Flags with their defaults values?
> How is decided that a new feature in Puppet should be behind a Feature Flag?
>

In Puppet a "feature" is technically something else - it is a mechanism
to detect if being on 'windows' or if some optional thing has been
installed or not.

When we talk about a feature flag we usually mean a setting that affects
the behavior of puppet. --strict_variables in one such setting that is a
"feature flag".

We had one major "feature flag" during the 3.x series for
--compiler=future (or --compiler=current). Which enabled us to introduce
the 4.x language compiler gradually. This feature flag was dropped in
4.x as the future was then the present.

We do not have a standard way of handling "feature flags", it is done on
an ad-hoc basis. Currently we are testing having a single
"all-future-things" flag (which right now means, use with current
version of features to be released in next major). Not sure how many
such actual behaviors we have atm.

> I'm currently undergoing an academic research regarding Technical Debt
> and Feature Toggles and I'm trying to determine if Puppet is a good
> candidate to be analyzed.
>

Hope my answers above are of some help.

Best,
- henrik
> --
> 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+...@googlegroups.com
> <mailto:puppet-dev+...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-dev/a96375a0-2676-49e2-a3ee-b01ce90bb732%40googlegroups.com
> <https://groups.google.com/d/msgid/puppet-dev/a96375a0-2676-49e2-a3ee-b01ce90bb732%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.


--

Visit my Blog "Puppet on the Edge"
http://puppet-on-the-edge.blogspot.se/

Reply all
Reply to author
Forward
0 new messages