Add optional minimum esphome version to microWakeWord manifest (#6240)

This commit is contained in:
Jesse Hills 2024-02-19 11:52:37 +13:00
parent 29ec40db5f
commit 6eb3c65445
No known key found for this signature in database
GPG key ID: BEAAE804EFD8E83A
3 changed files with 16 additions and 11 deletions

View file

@ -103,6 +103,7 @@ KEY_AUTHOR = "author"
KEY_WEBSITE = "website" KEY_WEBSITE = "website"
KEY_VERSION = "version" KEY_VERSION = "version"
KEY_MICRO = "micro" KEY_MICRO = "micro"
KEY_MINIMUM_ESPHOME_VERSION = "minimum_esphome_version"
MANIFEST_SCHEMA_V1 = cv.Schema( MANIFEST_SCHEMA_V1 = cv.Schema(
{ {
@ -116,6 +117,9 @@ MANIFEST_SCHEMA_V1 = cv.Schema(
{ {
cv.Required(CONF_PROBABILITY_CUTOFF): cv.float_, cv.Required(CONF_PROBABILITY_CUTOFF): cv.float_,
cv.Required(CONF_SLIDING_WINDOW_AVERAGE_SIZE): cv.positive_int, cv.Required(CONF_SLIDING_WINDOW_AVERAGE_SIZE): cv.positive_int,
cv.Optional(KEY_MINIMUM_ESPHOME_VERSION): cv.All(
cv.version_number, cv.validate_esphome_version
),
} }
), ),
} }

View file

@ -57,6 +57,7 @@ from esphome.const import (
TYPE_GIT, TYPE_GIT,
TYPE_LOCAL, TYPE_LOCAL,
VALID_SUBSTITUTIONS_CHARACTERS, VALID_SUBSTITUTIONS_CHARACTERS,
__version__ as ESPHOME_VERSION,
) )
from esphome.core import ( from esphome.core import (
CORE, CORE,
@ -1895,6 +1896,16 @@ def version_number(value):
raise Invalid("Not a valid version number") from e raise Invalid("Not a valid version number") from e
def validate_esphome_version(value: str):
min_version = Version.parse(value)
current_version = Version.parse(ESPHOME_VERSION)
if current_version < min_version:
raise Invalid(
f"Your ESPHome version is too old. Please update to at least {min_version}"
)
return value
def platformio_version_constraint(value): def platformio_version_constraint(value):
# for documentation on valid version constraints: # for documentation on valid version constraints:
# https://docs.platformio.org/en/latest/core/userguide/platforms/cmd_install.html#cmd-platform-install # https://docs.platformio.org/en/latest/core/userguide/platforms/cmd_install.html#cmd-platform-install

View file

@ -102,16 +102,6 @@ def valid_project_name(value: str):
return value return value
def validate_version(value: str):
min_version = cv.Version.parse(value)
current_version = cv.Version.parse(ESPHOME_VERSION)
if current_version < min_version:
raise cv.Invalid(
f"Your ESPHome version is too old. Please update to at least {min_version}"
)
return value
if "ESPHOME_DEFAULT_COMPILE_PROCESS_LIMIT" in os.environ: if "ESPHOME_DEFAULT_COMPILE_PROCESS_LIMIT" in os.environ:
_compile_process_limit_default = min( _compile_process_limit_default = min(
int(os.environ["ESPHOME_DEFAULT_COMPILE_PROCESS_LIMIT"]), int(os.environ["ESPHOME_DEFAULT_COMPILE_PROCESS_LIMIT"]),
@ -164,7 +154,7 @@ CONFIG_SCHEMA = cv.All(
} }
), ),
cv.Optional(CONF_MIN_VERSION, default=ESPHOME_VERSION): cv.All( cv.Optional(CONF_MIN_VERSION, default=ESPHOME_VERSION): cv.All(
cv.version_number, validate_version cv.version_number, cv.validate_esphome_version
), ),
cv.Optional( cv.Optional(
CONF_COMPILE_PROCESS_LIMIT, default=_compile_process_limit_default CONF_COMPILE_PROCESS_LIMIT, default=_compile_process_limit_default