blob: 364c98d7987473087cad253ec42cfc145fb0e49e [file] [log] [blame]
# 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