blob: 5b5d6e8a0ed4ff170e8eb99ce1bf751f3f88a754 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
#import bisect
#import re
#import yaml
##
#from packaging.version import Version
##
#set $releases_yml_path = $args[0] ## The path to a `releases.yml` file.
#set $mongo_version = $args[1] ## The value of MONGO_VERSION.
##
#set $releases_file = open($releases_yml_path, 'r')
#set $releases = yaml.safe_load($releases_file)
#set $lts_releases = list(map(Version, $releases['longTermSupportReleases']))
##
## Parse the "MAJOR.MINOR" version from mongo_version.
#set $latest = Version(re.match(r'^[0-9]+\.[0-9]+', $mongo_version).group(0))
##
## The most recent lts release prior to 'latest'.
#set $last_lts = lts_releases[bisect.bisect_left(lts_releases, latest) - 1]
##
global:
cpp_namespace: "mongo::feature_flags"
cpp_includes:
- "mongo/db/change_streams_cluster_parameter.h"
imports:
- "mongo/db/basic_types.idl"
- "mongo/idl/cluster_server_parameter.idl"
structs:
CWSPIntStorage:
description: "Storage used for cwspTestNeedsLatestFCV"
inline_chained_structs: true
chained_structs:
ClusterServerParameter: ClusterServerParameter
fields:
intData:
type: safeInt64
default: 0
feature_flags:
featureFlagToaster:
description: "Create a feature flag"
cpp_varname: gFeatureFlagToaster
default: false
shouldBeFCVGated: true
featureFlagFryer:
description: "Create a feature flag"
cpp_varname: gFeatureFlagFryer
default: false
shouldBeFCVGated: true
featureFlagFork:
description: "Create a feature flag that should not be FCV gated"
cpp_varname: gFeatureFlagFork
default: true
shouldBeFCVGated: false
#def $ver_str(v): ${'{}.{}'.format(v.major, v.minor)}
featureFlagBlender:
description: "Create a feature flag"
cpp_varname: gFeatureFlagBlender
default: true
# The version should be a valid FCV not equal to GenericFCV::kLastLTS in
# the generated 'releases.h' file.
version: $ver_str(latest)
shouldBeFCVGated: true
featureFlagSpoon:
description: "Create a feature flag"
cpp_varname: gFeatureFlagSpoon
default: true
# The version should match GenericFCV::kLastLTS in the generated 'releases.h' file.
version: $ver_str(last_lts)
shouldBeFCVGated: true
server_parameters:
spTestNeedsFeatureFlagToaster:
description: "Server Parameter gated on featureFlagToaster"
set_at: runtime
cpp_varname: gSPTestFeatureFlagToaster
cpp_vartype: bool
test_only: true
default: false
condition:
feature_flag: gFeatureFlagToaster
spTestNeedsLatestFCV:
description: "Server parameter gated on FCV >= latestFCV"
set_at: runtime
cpp_varname: gSPTestLatestFCV
cpp_vartype: int
test_only: true
default: 0
condition:
min_fcv: $ver_str(latest)
cwspTestNeedsLatestFCV:
description: "Cluster server parameter gated on latest FCV"
set_at: cluster
cpp_varname: gCWSPTestLatestFCV
cpp_vartype: CWSPIntStorage
test_only: true
condition:
min_fcv: $ver_str(latest)
spTestNeedsFeatureFlagBlender:
description: "Server Parameter gated on featureFlagBlender"
set_at: runtime
cpp_varname: gSPTestFeatureFlagBlender
cpp_vartype: int
test_only: true
default: 0
condition:
feature_flag: gFeatureFlagBlender
cwspTestNeedsFeatureFlagBlender:
description: "Cluster server Parameter gated on featureFlagBlender"
set_at: cluster
cpp_varname: gCWSPTestFeatureFlagBlender
cpp_vartype: CWSPIntStorage
test_only: true
condition:
feature_flag: gFeatureFlagBlender
|