| # Copyright 2019 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from recipe_engine import recipe_api |
| |
| |
| class ExperimentalApi(recipe_api.RecipeApi): |
| """Experimental Fuchsia flags. |
| |
| This module is a collection of read-only flags that builders may set to opt-in to |
| specific experimental features. It is a standalone module so that other modules can |
| depend on feature flags without creating circular dependencies, and so that different |
| recipes can opt-in to the same experiments. |
| |
| Using explicit property flags prevents accidental breakages that arise from making |
| assumptions about whether a specific feature should be enabled based on some other |
| recipe-specific properties. |
| |
| New experiments should only be added to this module with an attached Bug. When an |
| experiment is "launched", meaning all existing builders are stable using the experiment |
| in production, it should be deleted from this module. |
| """ |
| |
| def __init__(self, resultstore, partial_checkout, *args, **kwargs): |
| super(ExperimentalApi, self).__init__(*args, **kwargs) |
| self._resultstore = resultstore |
| self._partial_checkout = partial_checkout |
| |
| # IN-888 |
| @property |
| def resultstore(self): |
| return self._resultstore |
| |
| # fxb/34965 |
| @property |
| def partial_checkout(self): |
| return self._partial_checkout |