-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add central interface for defining feature flags #640
Conversation
b88f020
to
aaacfc0
Compare
The intended use for colcon feature flags is to ship pre-production and prototype features in a disabled state, which can be enabled by specifying a particular environment variable value. By using an environment variable, these possibly dangerous or unstable features are hidden from common users but are enabled in a way which can be audited.
aaacfc0
to
d940985
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is handy for introducing changes in an otherwise "stable" CLI. I've left an implementation comment.
Also discussed offline:
I'd rather not directly write to |
I think warning is appropriate since feature flags are used to change default behavior in inherently unstable and under-tested ways (i.e. we will never test with the complete cartesian product of feature flag values). |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #640 +/- ##
==========================================
+ Coverage 83.24% 83.33% +0.09%
==========================================
Files 66 67 +1
Lines 3850 3877 +27
Branches 760 766 +6
==========================================
+ Hits 3205 3231 +26
Misses 556 556
- Partials 89 90 +1 ☔ View full report in Codecov by Sentry. |
The intended use for colcon feature flags is to ship pre-production and prototype features in a disabled state, which can be enabled by specifying a particular environment variable value. By using an environment variable, these possibly dangerous or unstable features are hidden from common users but are enabled in a way which can be audited.
Current examples of possible uses:
colcon test
(Add feature flag to drop dependencies from test execution #571)colcon-python-project
prototype