mirror of
https://github.com/esphome/esphome.git
synced 2026-08-22 22:26:21 +00:00
Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend
This commit is contained in:
@@ -19,7 +19,6 @@ toolchain has always used, so the bits are identical); the
|
||||
from __future__ import annotations
|
||||
|
||||
import functools
|
||||
import logging
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import NamedTuple
|
||||
@@ -31,8 +30,6 @@ from esphome.core import EsphomeError, Version
|
||||
from esphome.framework_helpers import str_to_lst_of_str
|
||||
from esphome.platformio.registry import install_package
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
FRAMEWORK_PACKAGE = "framework-arduinoespressif8266"
|
||||
TOOLCHAIN_PACKAGE = "toolchain-xtensa"
|
||||
# gcc 10.3, the toolchain Arduino core 3.x builds with. The compile flags in
|
||||
@@ -75,13 +72,14 @@ def framework_package_version(ver: Version) -> str:
|
||||
f"Arduino core {ver} is not supported yet; "
|
||||
"the newest known core series is 3.x"
|
||||
)
|
||||
if ver < Version(2, 6, 3):
|
||||
# Older cores use the 1.x/2.x package-major encodings, which the
|
||||
# PlatformIO path handles before delegating here; never encode them
|
||||
# wrongly for a caller that skipped that guard
|
||||
if ver <= Version(2, 6, 2):
|
||||
# Same boundary as _format_framework_arduino_version's era guard (a
|
||||
# 2.6.2 pre-release sorts above 2.6.2 and belongs to this encoding).
|
||||
# Older cores use the 1.x/2.x package-major encodings; never encode
|
||||
# them wrongly for a caller that skipped that guard
|
||||
raise EsphomeError(
|
||||
f"Arduino core {ver} predates the package encoding this helper "
|
||||
"implements (2.6.3 and newer)"
|
||||
f"Arduino core {ver} uses an older package encoding than this "
|
||||
"helper implements (newer than 2.6.2)"
|
||||
)
|
||||
return f"3.{ver.major}{ver.minor:02d}{ver.patch:02d}.0"
|
||||
|
||||
|
||||
@@ -27,9 +27,12 @@ def test_framework_package_version() -> None:
|
||||
# A future major bump needs its own encoding, not a doomed registry lookup
|
||||
with pytest.raises(EsphomeError, match="not supported yet"):
|
||||
framework.framework_package_version(cv.Version(4, 0, 0))
|
||||
# The pre-2.6.3 eras use other encodings; the helper is total, not wrong
|
||||
with pytest.raises(EsphomeError, match="predates the package encoding"):
|
||||
# Cores up to 2.6.2 use other encodings; the helper is total, not wrong,
|
||||
# and its boundary matches the PlatformIO era guard: a 2.6.2 pre-release
|
||||
# sorts above 2.6.2 and keeps the package-major-3 encoding
|
||||
with pytest.raises(EsphomeError, match="older package encoding"):
|
||||
framework.framework_package_version(cv.Version(2, 6, 2))
|
||||
assert framework.framework_package_version(cv.Version(2, 6, 2, "b1")) == "3.20602.0"
|
||||
assert framework.framework_package_version(cv.Version(2, 6, 3)) == "3.20603.0"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user