summaryrefslogtreecommitdiff
path: root/src/mongo/db/feature_flag_test.idl.tpl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/feature_flag_test.idl.tpl')
-rw-r--r--src/mongo/db/feature_flag_test.idl.tpl48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/mongo/db/feature_flag_test.idl.tpl b/src/mongo/db/feature_flag_test.idl.tpl
new file mode 100644
index 00000000000..86a2734dfa3
--- /dev/null
+++ b/src/mongo/db/feature_flag_test.idl.tpl
@@ -0,0 +1,48 @@
+#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"
+
+feature_flags:
+ featureFlagToaster:
+ description: "Create a feature flag"
+ cpp_varname: gFeatureFlagToaster
+ default: false
+
+ featureFlagFryer:
+ description: "Create a feature flag"
+ cpp_varname: gFeatureFlagFryer
+ default: 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)
+
+ 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)