Merge branch 'fix/update-configdep' into 'master'

fix: update version of esp-idf-configdep in tools.json

See merge request espressif/esp-idf!49582
This commit is contained in:
Roland Dobai
2026-06-12 12:12:23 +02:00
2 changed files with 38 additions and 56 deletions

View File

@@ -3,21 +3,11 @@
"""Rebuild tests with esp-idf-configdep enabled (default idf.py behavior).
esp-idf-configdep rewrites compiler .d files to depend on per-option
build/config/.../*.cdep stubs instead of sdkconfig.h. When a referenced
.cdep file does not exist yet, the wrapper creates it **after** the real
compiler has written the .obj. Those stubs then have a newer mtime than the
object. On the **next** Ninja run, those .cdep paths are prerequisites in the
merged dependency graph, so Ninja correctly treats the object as out of date and
rebuilds it—even though nothing in the source tree or sdkconfig changed.
That one-time “settling” wave is not a CMake bug; it is an artifact of how
configdep materializes stubs relative to object timestamps. The tests in
test_rebuild.py therefore disable configdep to exercise pure CMake/Ninja
incremental behavior. Here we keep configdep **on** and run **two** full
idf.py build invocations before any mtime baseline so stub/object mtimes are
consistent; then we apply the same coarse-grained checks as the classic rebuild
tests (plus relaxed expectations where configdep legitimately skips compiling
TUs that do not reference changed CONFIG_* symbols).
build/config/.../*.cdep stubs instead of sdkconfig.h. The tests in
test_rebuild.py disable configdep to exercise pure CMake/Ninja incremental
behavior. Here we keep configdep **on** and apply the same coarse-grained
checks as the classic rebuild tests (plus relaxed expectations where configdep
legitimately skips compiling TUs that do not reference changed CONFIG_* symbols).
"""
import logging
@@ -37,18 +27,10 @@ from test_build_system_helpers import rebuild_and_check
from test_build_system_helpers import replace_in_file
def _settle_configdep_graph(idf_py: IdfPyFunc) -> None:
"""Two full builds so ``.cdep`` stubs created by configdep are not newer than ``.obj`` for the next graph walk."""
logging.info('settle (configdep): first full build')
idf_py('build')
logging.info('settle (configdep): second full build reconciles obj vs .cdep mtimes')
idf_py('build')
@pytest.mark.usefixtures('test_app_copy')
def test_rebuild_no_changes_with_configdep(idf_py: IdfPyFunc, request: pytest.FixtureRequest) -> None:
"""No-op rebuild: with configdep on, baseline snapshot only after two settle builds (see module docstring)."""
_settle_configdep_graph(idf_py)
"""No-op rebuild: second build after a clean first build must not change any artifacts."""
idf_py('build')
logging.info('baseline snapshot after settle')
all_build_files = get_snapshot('build/**/*', exclude_patterns=BUILD_SNAPSHOT_EXCLUDE)
@@ -66,9 +48,9 @@ def test_rebuild_no_changes_with_configdep(idf_py: IdfPyFunc, request: pytest.Fi
@pytest.mark.usefixtures('test_app_copy')
def test_rebuild_source_files_with_configdep(idf_py: IdfPyFunc) -> None:
"""Same selective-rebuild checks as ``test_rebuild_source_files``, after configdep settle builds."""
"""Same selective-rebuild checks as ``test_rebuild_source_files``, with configdep on."""
idf_path = Path(os.environ['IDF_PATH'])
_settle_configdep_graph(idf_py)
idf_py('build')
logging.info('updating a component source file rebuilds only that component')
component_files_patterns = [

View File

@@ -1155,7 +1155,7 @@
"description": "ESP-IDF configuration dependency tool",
"export_paths": [
[
"esp-idf-configdep-0.2.2",
"esp-idf-configdep-0.2.3",
"bin"
]
],
@@ -1175,51 +1175,51 @@
"versions": [
{
"linux-amd64": {
"sha256": "999aa895c25d5c7edb6823884d3017f146b133f7ae2c580fffe4c989d7ce8c36",
"size": 28505,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.2/esp-idf-configdep-0.2.2-linux-x86_64.tar.gz"
"sha256": "c20fec39087019907efacd3721508b412a7aa47f94ea62400757b9820680dafe",
"size": 29642,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.3/esp-idf-configdep-0.2.3-linux-x86_64.tar.gz"
},
"linux-arm64": {
"sha256": "0ea8f5e0de463ecfa3354a27b32ba34c4b999570e92127952fe7363f034ab7e9",
"size": 59608,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.2/esp-idf-configdep-0.2.2-linux-arm64.tar.gz"
"sha256": "5a1491b2009c9ed805b90e8efb27704ba96cc036b7aaca343310db846a9183a9",
"size": 60457,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.3/esp-idf-configdep-0.2.3-linux-arm64.tar.gz"
},
"linux-armel": {
"sha256": "0e1663a6f9d8c030f11feb214aab0ffc3b9f6029ebc7ce10cad974db13667632",
"size": 36797,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.2/esp-idf-configdep-0.2.2-linux-armel.tar.gz"
"sha256": "c52f6cb0be77cb6561a62cf1dcf3d0855a8b063ea2279fe83aaca9b5896002c9",
"size": 38582,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.3/esp-idf-configdep-0.2.3-linux-armel.tar.gz"
},
"linux-armhf": {
"sha256": "98759c0a16e56ec96cc72f2d6b60d2f548194cfcc2adde11cd65c694241912b6",
"size": 34310,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.2/esp-idf-configdep-0.2.2-linux-armhf.tar.gz"
"sha256": "eea71661562e72ca76be8fdc158678e5f0214dd733b02527d5f6adb49abdf1ca",
"size": 36012,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.3/esp-idf-configdep-0.2.3-linux-armhf.tar.gz"
},
"linux-i686": {
"sha256": "e337582b1570ac90fcfde0b724e41d62b01581ec0a755c97ac38024c5def55ac",
"size": 32114,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.2/esp-idf-configdep-0.2.2-linux-x86.tar.gz"
"sha256": "ea1ac949cc6d77df3ac1fe24883c03c75c2f5cd5a0404baf70d0e1a48e95c0f8",
"size": 33699,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.3/esp-idf-configdep-0.2.3-linux-x86.tar.gz"
},
"macos": {
"sha256": "8e7ad2fd91214219c276c6b371f0cd3e315f22055554d60856e88d84eb6422e9",
"size": 12755,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.2/esp-idf-configdep-0.2.2-macos-x86_64.tar.gz"
"sha256": "5bf96c4b5c6850dc8af22442c2a54cd143cca76403a5cf2a2152c6e5c006384e",
"size": 13262,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.3/esp-idf-configdep-0.2.3-macos-x86_64.tar.gz"
},
"macos-arm64": {
"sha256": "458fa0e3193184ca6360bf35058c63e763545f0ef6cb0b659b01985a5dfafdbf",
"size": 13023,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.2/esp-idf-configdep-0.2.2-macos-arm64.tar.gz"
"sha256": "bd701ef6829e9eb31dca0e8e687209d9fa173489218c464f8c5da9491634b79c",
"size": 13431,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.3/esp-idf-configdep-0.2.3-macos-arm64.tar.gz"
},
"name": "0.2.2",
"name": "0.2.3",
"status": "recommended",
"win32": {
"sha256": "6bec5711daa5196df8ec3fa2d3c2c79623e7dc6cb5e0b6cede03ef49b71ac6ac",
"size": 114156,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.2/esp-idf-configdep-0.2.2-win-x86.zip"
"sha256": "c9c2b2110e2fd0dbe63bb7df0520607664b8a1d843c97304f5d1e7241bdb0c1c",
"size": 114736,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.3/esp-idf-configdep-0.2.3-win-x86.zip"
},
"win64": {
"sha256": "1827c449c9294036f94fa82f5da65f10be1edbc2de6920ce9837cbee1393cac8",
"size": 117734,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.2/esp-idf-configdep-0.2.2-win-x86_64.zip"
"sha256": "993335dafa6af3aa55a058eaff439b0454612b9bec0ae7bada4fb3cb0a8d1f14",
"size": 118222,
"url": "https://github.com/espressif/esp-idf-configdep/releases/download/v0.2.3/esp-idf-configdep-0.2.3-win-x86_64.zip"
}
}
]