Преглед на файлове

Merge remote-tracking branch 'origin/master' into develop

QMK Bot преди 2 години
родител
ревизия
820371c31b
променени са 3 файла, в които са добавени 23 реда и са изтрити 7 реда
  1. 2 1
      data/mappings/info_config.json
  2. 3 2
      data/mappings/info_rules.json
  3. 18 4
      lib/python/qmk/info.py

+ 2 - 1
data/mappings/info_config.json

@@ -9,6 +9,7 @@
     # 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
     # 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"},
     "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"},
     "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
@@ -110,7 +111,7 @@
     "NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true},
     "NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "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},
     "RGBLIGHT_ANIMATIONS": {"info_key": "rgblight.animations.all", "value_type": "bool", "deprecated": true},
     "QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true},

+ 3 - 2
data/mappings/info_rules.json

@@ -9,6 +9,7 @@
     # 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
     # 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"},
     "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
     "BLUETOOTH": {"info_key": "bluetooth.driver"},
@@ -32,7 +33,7 @@
     "STENO_PROTOCOL": {"info_key": "stenography.protocol"},
 
     # Items we want flagged in lint
-    "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true},
-    "CONVERT_TO_PROTON_C": {"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, "replace_with": "CONVERT_TO=proton_c"},
     "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true},
 }

+ 18 - 4
lib/python/qmk/info.py

@@ -523,10 +523,17 @@ def _extract_config_h(info_data, config_c):
         key_type = info_dict.get('value_type', 'raw')
 
         try:
+            replace_with = info_dict.get('replace_with')
             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):
-                _log_warning(info_data, '%s in config.h is deprecated and will be removed at a later date' % config_key)
+                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)
 
             if config_key in config_c and info_dict.get('to_json', True):
                 if dotty_info.get(info_key) and info_dict.get('warn_duplicate', True):
@@ -589,10 +596,17 @@ def _extract_rules_mk(info_data, rules):
         key_type = info_dict.get('value_type', 'raw')
 
         try:
+            replace_with = info_dict.get('replace_with')
             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):
-                _log_warning(info_data, '%s in rules.mk is deprecated and will be removed at a later date' % rules_key)
+                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)
 
             if rules_key in rules and info_dict.get('to_json', True):
                 if dotty_info.get(info_key) and info_dict.get('warn_duplicate', True):