Provide users with replacements for deprecated/invalid functionality where applicable (#17604)

This commit is contained in:
Ryan 2022-08-06 22:37:40 +10:00 committed by GitHub
parent 0ff8c4f6fd
commit 37345e2ace
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 7 deletions

View File

@ -9,6 +9,7 @@
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
# deprecated: Default `false`. Set to `true` to turn on warning when a value exists # deprecated: Default `false`. Set to `true` to turn on warning when a value exists
# invalid: Default `false`. Set to `true` to generate errors when a value exists # invalid: Default `false`. Set to `true` to generate errors when a value exists
# replace_with: use with a key marked deprecated or invalid to designate a replacement
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"}, "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"},
"BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"}, "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"},
"BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"}, "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
@ -108,6 +109,6 @@
"NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true}, "NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true},
"NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true}, "NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true},
"DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true}, "DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true},
"DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true}, "DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true, replace_with: "DEBOUNCE"},
"PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true}, "PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true},
} }

View File

@ -9,6 +9,7 @@
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
# deprecated: Default `false`. Set to `true` to turn on warning when a value exists # deprecated: Default `false`. Set to `true` to turn on warning when a value exists
# invalid: Default `false`. Set to `true` to generate errors when a value exists # invalid: Default `false`. Set to `true` to generate errors when a value exists
# replace_with: use with a key marked deprecated or invalid to designate a replacement
"BOARD": {"info_key": "board"}, "BOARD": {"info_key": "board"},
"BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
"BLUETOOTH": {"info_key": "bluetooth.driver"}, "BLUETOOTH": {"info_key": "bluetooth.driver"},
@ -29,7 +30,7 @@
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"}, "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
# Items we want flagged in lint # Items we want flagged in lint
"CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true}, "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true}, "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}, "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true},
} }

View File

@ -463,9 +463,16 @@ def _extract_config_h(info_data, config_c):
key_type = info_dict.get('value_type', 'raw') key_type = info_dict.get('value_type', 'raw')
try: try:
replace_with = info_dict.get('replace_with')
if config_key in config_c and info_dict.get('invalid', False): if config_key in config_c and info_dict.get('invalid', False):
_log_error(info_data, '%s in config.h is no longer a valid option' % config_key) if replace_with:
_log_error(info_data, '%s in config.h is no longer a valid option and should be replaced with %s' % (config_key, replace_with))
else:
_log_error(info_data, '%s in config.h is no longer a valid option and should be removed' % config_key)
elif config_key in config_c and info_dict.get('deprecated', False): elif config_key in config_c and info_dict.get('deprecated', False):
if replace_with:
_log_warning(info_data, '%s in config.h is deprecated in favor of %s and will be removed at a later date' % (config_key, replace_with))
else:
_log_warning(info_data, '%s in config.h is deprecated and will be removed at a later date' % config_key) _log_warning(info_data, '%s in config.h is deprecated and will be removed at a later date' % config_key)
if config_key in config_c and info_dict.get('to_json', True): if config_key in config_c and info_dict.get('to_json', True):
@ -527,9 +534,16 @@ def _extract_rules_mk(info_data, rules):
key_type = info_dict.get('value_type', 'raw') key_type = info_dict.get('value_type', 'raw')
try: try:
replace_with = info_dict.get('replace_with')
if rules_key in rules and info_dict.get('invalid', False): if rules_key in rules and info_dict.get('invalid', False):
_log_error(info_data, '%s in rules.mk is no longer a valid option' % rules_key) if replace_with:
_log_error(info_data, '%s in rules.mk is no longer a valid option and should be replaced with %s' % (rules_key, replace_with))
else:
_log_error(info_data, '%s in rules.mk is no longer a valid option and should be removed' % rules_key)
elif rules_key in rules and info_dict.get('deprecated', False): elif rules_key in rules and info_dict.get('deprecated', False):
if replace_with:
_log_warning(info_data, '%s in rules.mk is deprecated in favor of %s and will be removed at a later date' % (rules_key, replace_with))
else:
_log_warning(info_data, '%s in rules.mk is deprecated and will be removed at a later date' % rules_key) _log_warning(info_data, '%s in rules.mk is deprecated and will be removed at a later date' % rules_key)
if rules_key in rules and info_dict.get('to_json', True): if rules_key in rules and info_dict.get('to_json', True):