# Copyright 2023 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This file describes the rollout status of each experiment.
# Format of each entry:
# name:        name of the experiment
# default:     one of:
#              - broken  - the experiment defaults to off and is not tested
#                          in all platforms.
#              - false   - the experiment defaults to off in all platforms.
#              - debug   - the experiment defaults to on in debug builds,
#                          off in release builds in all platforms.
#              - true    - the experiment defaults to on in all platforms.
# requires:    A list of names of experiments that this experiment depends on.
#              Defaults to the empty list.
#              If any of the experiments in the required list is determined to
#              be disabled at runtime, this experiment is disabled at runtime.
#
# [OR] the default can be platform specific:
#  -----------------------------------------
#  e.g the following would mark the experiment as broken on ios, false on
#  windows and debug on posix. If a platform is un-specified, the default for
#  that platform will be set to false.
#  - name: experiment_1
#    default:
#       ios: broken
#       windows: false
#       posix: debug
#
# Supported platforms: ios, windows, posix

- name: call_tracer_in_transport
  default: true
- name: call_v3
  default: false
- name: canary_client_privacy
  default: false
- name: chaotic_good
  default:
    ios: broken
    posix: false
    windows: broken
- name: client_privacy
  default: false
- name: event_engine_application_callbacks
  default: true
- name: event_engine_client
  default:
    # not tested on iOS at all
    ios: broken
    posix: true
    windows: true
- name: event_engine_dns
  default:
    # not tested on iOS at all
    ios: broken
    posix: true
    windows: true
- name: event_engine_listener
  default:
    # not tested on iOS at all
    ios: broken
    posix: true
    windows: true
- name: free_large_allocator
  default: false
- name: local_connector_secure
  default: false
- name: max_pings_wo_data_throttle
  default: false
- name: monitoring_experiment
  default: true
- name: pending_queue_cap
  default: true
- name: pick_first_new
  default: true
- name: promise_based_client_call
  default:
    ios: broken
    windows: broken
    posix: false
- name: rstpit
  default: false
- name: schedule_cancellation_over_write
  default: false
- name: server_privacy
  default: false
- name: tcp_frame_size_tuning
  default: false
- name: tcp_rcv_lowat
  default: false
- name: time_caching_in_party
  default: true
- name: trace_record_callops
  default: true
- name: unconstrained_max_quota_buffer_size
  default: false
- name: work_serializer_clears_time_cache
  default: true
- name: work_serializer_dispatch
  default:
    # TODO(ysseung): Not fully tested.
    ios: broken
    posix: true
    # TODO(ysseung): Test flakes not fully resolved.
    windows: broken
