Merge "release_config: cleanup how default values are used" into main
This commit is contained in:
@@ -179,18 +179,23 @@ def release_config(all_flags, all_values):
|
||||
validate(all_flags, _all_flags_schema)
|
||||
validate(all_values, _all_values_schema)
|
||||
|
||||
# Final values.
|
||||
values = {}
|
||||
# Validate flags
|
||||
flag_names = []
|
||||
flags_dict = {}
|
||||
for flag in all_flags:
|
||||
if flag["name"] in flag_names:
|
||||
if equal_flag_declaration(flag, flags_dict[flag["name"]]):
|
||||
name = flag["name"]
|
||||
if name in flag_names:
|
||||
if equal_flag_declaration(flag, flags_dict[name]):
|
||||
continue
|
||||
else:
|
||||
fail(flag["declared_in"] + ": Duplicate declaration of flag " + flag["name"] +
|
||||
" (declared first in " + flags_dict[flag["name"]]["declared_in"] + ")")
|
||||
flag_names.append(flag["name"])
|
||||
flags_dict[flag["name"]] = flag
|
||||
fail(flag["declared_in"] + ": Duplicate declaration of flag " + name +
|
||||
" (declared first in " + flags_dict[name]["declared_in"] + ")")
|
||||
flag_names.append(name)
|
||||
flags_dict[name] = flag
|
||||
# Set the flag value to the default value.
|
||||
values[name] = {"name": name, "value": _format_value(flag["default"]), "set_in": flag["declared_in"]}
|
||||
|
||||
# Record which flags go on which partition
|
||||
partitions = {}
|
||||
@@ -206,7 +211,6 @@ def release_config(all_flags, all_values):
|
||||
|
||||
# Generate final values.
|
||||
# Only declared flags may have a value.
|
||||
values = {}
|
||||
for value in all_values:
|
||||
name = value["name"]
|
||||
if name not in flag_names:
|
||||
@@ -227,19 +231,13 @@ def release_config(all_flags, all_values):
|
||||
for partition, names in partitions.items():
|
||||
result["_ALL_RELEASE_FLAGS.PARTITIONS." + partition] = names
|
||||
for flag in all_flags:
|
||||
if flag["name"] in values:
|
||||
val = values[flag["name"]]["value"]
|
||||
set_in = values[flag["name"]]["set_in"]
|
||||
else:
|
||||
val = flag["default"]
|
||||
set_in = flag["declared_in"]
|
||||
val = _format_value(val)
|
||||
val = _format_value(values[flag["name"]]["value"])
|
||||
result[flag["name"]] = val
|
||||
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".PARTITIONS"] = flag["partitions"]
|
||||
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".DEFAULT"] = _format_value(flag["default"])
|
||||
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".VALUE"] = val
|
||||
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".DECLARED_IN"] = flag["declared_in"]
|
||||
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".SET_IN"] = set_in
|
||||
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".SET_IN"] = values[flag["name"]]["set_in"]
|
||||
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".ORIGIN"] = flag["origin"]
|
||||
|
||||
return result
|
||||
|
Reference in New Issue
Block a user