Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Feature flags #1682
Once in a while we merge a highly experimental features. It is beneficial to be able to have the codepath for these features effectivelly disabled by default until the implementation is stabilized.
The feature configuration
Usage of the feature in the code
Where Subject is one of
There is a naive performance test in the test suite it does 1 million of calls to
It is not safe to allow configuration of the feature flags over http since there might be a possibility of injecting arbitrary code via name of the configuration key within
Related Issues or Pull Requests
FYI: There is already a similar config-based "features" feature implementation:
That's used by various components to indicated their presence and then those features are bubbled up to the top level API.
There are few important differences:
Ah you're right. It was mostly a capabilities thing. I just wanted to call it out in the PR so it's visible. As the old thing has the (confusing) "features" name.
Maybe it would be good to replace the old thing with this? The "config" capabilities thing was a quick adhock thing, this seems better designed.
I think IIya wants to add one more thing before merging.…
________________________________ From: Nick Vatamaniuc <email@example.com> Sent: Thursday, November 1, 2018 4:46:18 PM To: apache/couchdb Cc: garren smith; Mention Subject: Re: [apache/couchdb] Feature flags (#1682) @garrensmith<https://github.com/garrensmith> I didn't review the PR contents in detail so as far as that I am +0 so if you reviewed and looks good, go ahead and merge. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub<#1682 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AAK9An81IkitazaMSLLhWB6JfF7OQb-oks5uqwk6gaJpZM4X6XHv>.
make eunit apps=couch suites=couch_flags_tests,couch_flags_config [done in 15.251 s] ======================================================= All 5059 tests passed.
(that's a lot of new tests!)