Commit Graph
7721 Commits
Author SHA1 Message Date
Fu Hanxi 365268ae94 ci: move dev_password and dev_user alongside the test scripts 2026-03-26 10:56:15 +01:00
Daniel Paul 914d32c101 Merge branch 'feat/move-cjson-to-root-dep' into 'master'
feat: support moving idf components to component registry

Closes PACMAN-1102

See merge request espressif/esp-idf!39704
2026-03-25 18:10:42 +08:00
Roland Dobai 0459417fed Merge branch 'feat/add_merged_hints_to_build' into 'master'
Build & Config: Create a merged hints database in the build directory

Closes IDF-15480

See merge request espressif/esp-idf!46861
2026-03-25 07:47:41 +01:00
Zhou Xiao 205bc49fd6 fix(ble_log_console): exclude from idf-ci pytest collection to fix CI
idf-ci discovers pyproject.toml pytest config and runs a separate
collection pass with --target all, which finds 0 target tests and
raises RuntimeError. Add to .idf_ci.toml exclude_dirs instead of
deleting tests. Restore all 227 unit tests with lint/mypy fixes.
2026-03-24 15:42:03 +08:00
Frantisek Hrbata 927fc8d03a test(cmakev2): add test for build with IDF_COMPONENT_MANAGER=0
Verify that setting IDF_COMPONENT_MANAGER=0 skips the component manager
flow entirely and produces a successful build. The test also asserts that
no "Component manager round" messages appear in the output, confirming
the manager loop is not entered.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-03-23 16:02:36 +01:00
Frantisek Hrbata 3cbca31571 fix(cmakev2): skip component manager flow when IDF_COMPONENT_MANAGER=0
When the component manager is disabled via IDF_COMPONENT_MANAGER=0, the
cmakev2 build system still entered the full component manager flow
(__fetch_components_from_registry), which called
__download_managed_component(). That function returned early with
result=0 without creating the expected output file, violating the
post-condition in __download_component_level_managed_components() that
checks result==0 => file exists, causing a fatal error.

Instead of patching the low-level function to write an empty stub file,
this commit properly skips the entire component manager flow when the
manager is disabled:

- Move __init_component_manager() to idf.cmake global initialization
  sequence alongside other __init_*() calls, so IDF_COMPONENT_MANAGER
  build property is available early.

- Set __SDKCONFIG_ORIG to the real sdkconfig path in __init_kconfig()
  as its default value. Previously it was only set inside
  __create_sdkconfig_orig_copy() and had a defensive fallback in
  __create_base_kconfgen_command(). The default ensures __SDKCONFIG_ORIG
  is always valid regardless of whether the component manager runs.

- Guard __create_sdkconfig_orig_copy() with an IDF_COMPONENT_MANAGER
  check. The sdkconfig backup exists solely to preserve unknown Kconfig
  options from managed components during intermediate kconfgen rounds.
  When the manager is disabled, no managed components exist, so the
  backup is unnecessary.

- Guard __fetch_components_from_registry() call in project.cmake behind
  IDF_COMPONENT_MANAGER == 1. When disabled, only the manifest warning
  is issued. No download loop runs, no temp files are created, and no
  "Component manager round N..." messages are printed.

- Remove the now-redundant IDF_COMPONENT_MANAGER guard from
  __download_managed_component(), since it is only reachable when the
  manager is enabled.

Closes https://github.com/espressif/esp-idf/issues/18372

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-03-23 16:02:36 +01:00
Zhou Xiao 391f7b7d8a docs(ble_log_console): update user guides for new features and run/build scripts
- Recommend run.sh/run.bat as primary launch method with Launch Screen description
- Add build.sh/build.bat section for standalone executable packaging
- Document buffer utilization screen (m key) and two-table stats layout (d key)
- Update menuconfig path, status panel format, and Kconfig option names
- Remove obsolete textual ModuleNotFoundError troubleshooting
- Simplify manual configuration to single toggle (defaults cover most cases)
- Fix ESP32 -> ESP chip in introduction
2026-03-23 20:36:52 +08:00
Zhou Xiao ca920a8e8f feat(ble_log_console): add buffer utilization tracker and display
Add BufUtilTracker to record per-LBM inflight peak data, wire it
through StatsAccumulator and StatsUpdated message for thread-safe
delivery to the UI. Buffer utilization is displayed in a dedicated
BufUtilScreen accessible via the 'm' keybinding, separate from
the frame stats screen ('d').

Also reject false INIT_DONE frames with version==0 caused by
misaligned data during parser sync, preventing spurious stats resets.
2026-03-23 18:29:37 +08:00
Zhou Xiao d9a4d15203 feat(ble_log_console): add BUF_UTIL internal frame decoding
Add BUF_UTIL=5 to InternalSource, BufUtilPool enum, BufUtilResult
TypedDict, BufUtilEntry dataclass, and name resolution helpers.
Add decode branch in internal_decoder with pool/index extraction
from the packed lbm_id field. Tests cover valid decode, pool/index
extraction, and truncated payload handling.
2026-03-23 18:28:29 +08:00
Roland Dobai f46452d3ab feat(cmake): Create a merged hints database in the build directory 2026-03-23 09:24:45 +01:00
Zhou Xiao a51d879d1b feat(ble_log_console): add CLI entry point, build scripts, and docs
- Click-based CLI entry point (console.py) with --port, --baudrate,
  --log-dir options and interactive Launch Screen when --port omitted
- Deprecation warning for --output CLI flag
- 'ls' subcommand to list saved capture files
- PyInstaller build scripts (build.sh, build.bat, build_exe.py)
- Convenience run scripts (run.sh, run.bat)
- README rewrite with installation, usage, architecture docs, and
  troubleshooting guide
- User guides in English and Chinese
- Remove old single-file ble_log_console.py
- Register new scripts in executable-list.txt
2026-03-23 02:10:56 +08:00
Zhou Xiao 02f1960e56 feat(ble_log_console): add Textual frontend and app wiring
TUI frontend built on Textual with thread-safe backend integration:

- Launch screen with port/baud/log-dir selection and auto-refresh
- Log view with scrollable RichLog and color-coded write methods;
  Rich markup escaped to prevent crash on bracket characters
- Stats screen split into two tables by time base:
  - Firmware Counters (since chip init): Written and Buffer Loss
  - Console Measurements (since console start): Average Throughput
    and Peak Write — each with separate frames and bytes sub-columns
  - Column widths constrained with min_width/max_width for stable layout
  - Division-by-zero guard when peak window is zero
- Shortcut screen overlay
- Status panel with sync state, checksum mode, and transport metrics;
  speed display uses named UART_BITS_PER_BYTE constant
- Main app wiring: UART reader thread with threading.Lock for serial
  access, frame parser pipeline, stats emission via StatsUpdated
  messages (including funnel snapshots via public accessor for
  thread-safe delivery), BackendStopped message for disconnect
- BackendStopped posted on open_serial failure (prevents stuck status)
- Select.BLANK guard for baud rate in launch screen
- Explicit None guards replace asserts in backend worker
- Wall-clock burst tracking for REDIR frames (no chip-side timestamp)
- SN gap alerts (FrameLossDetected) and traffic spike notifications
2026-03-23 02:10:45 +08:00
Zhou Xiao 9046c77e52 feat(ble_log_console): add backend with frame parser, stats, and data models
Modular backend for the BLE log console rewrite:

- Frame parser with sync state machine and checksum auto-detection
  (4 modes: XOR/Sum x Full/Header-only); handles incomplete frames
  during re-sync search when previously synced
- Internal frame decoder (INIT_DONE, ENH_STAT, FLUSH, INFO)
- Data models: SourceCode, FrameByteCount, FunnelSnapshot, LossType
- Stats package with composition-root StatsAccumulator orchestrating:
  - TransportMetrics (RX bytes, lifetime-average throughput)
  - FirmwareLossTracker / FirmwareWrittenTracker (ENH_STAT deltas
    with first-report absolute value initialization)
  - SNGapTracker (sliding window reorder-tolerant SN gap detection)
  - PeakBurstTracker (per-source sliding window burst density)
  - TrafficSpikeDetector (wire utilization spike detection)
  - Wall-clock burst tracker for non-timestamped sources (REDIR)
- Torn-read guard on ENH_STAT reports (baudrate-based plausibility)
  with prev-state update on discard to prevent cascading drops
- Console-local metrics (TransportMetrics, PeakBurstTracker) preserved
  across INIT_DONE resets; only ENH_STAT-coupled components reset
- UART transport with port validation and exclusive serial access
- Comprehensive test suite (17 test files, 223 tests)
2026-03-23 02:10:29 +08:00
Zhou Xiao d51892380b change(bt/ble_log): remove BLE Log UHCI Out module
Delete ble_log_uhci_out.c and its header. Remove the UHCI Out source
from CMakeLists.txt and all BT_BLE_LOG_UHCI_OUT_* Kconfig options.
Remove per-chip BT_LE_CONTROLLER_LOG_UHCI_OUT_ENABLED Kconfig and
all UHCI Out caller references in esp32c5/c6/h2 controller bt.c.
Update ble_log_console README to reference the new BLE Log Module
UART DMA config. The functionality is superseded by the BLE Log
Module's UART DMA peripheral transport.
2026-03-20 16:01:35 +08:00
Sudeep Mohanty b0d75e86fe test(cmakev2): Remove old cmakev2/test directory, now replaced by buildv2 pytest suite
Made-with: Cursor
2026-03-18 09:27:51 +01:00
Sudeep Mohanty aa67c578fb test(cmakev2): Add pytest test for multi-binary build support
Made-with: Cursor
2026-03-18 09:27:51 +01:00
Sudeep Mohanty a1306a094c test(cmakev2): Add pytest tests for v1-to-v2 migration and utility APIs
Made-with: Cursor
2026-03-18 09:27:51 +01:00
Sudeep Mohanty d6b1fd56a4 test(cmakev2): Assert ELF output in Linux target build test
Made-with: Cursor
2026-03-18 09:27:51 +01:00
Sudeep Mohanty f00d5db927 test(cmakev2): Expand pytest tests for v2 Kconfig and sdkconfig behavior
Made-with: Cursor
2026-03-18 09:27:51 +01:00
Sudeep Mohanty 3f477b9d80 test(cmakev2): Add pytest tests for v2 component model
Made-with: Cursor
2026-03-18 09:27:51 +01:00
Sudeep Mohanty c2cba58409 test(cmakev2): Add pytest tests for build APIs
Made-with: Cursor
2026-03-18 09:25:12 +01:00
Fu Hanxi 135a9fc69f Merge branch 'ci/fix-exclude-dir-check-build-test-rules' into 'master'
ci: fix check-build-test-rules exclude-dir

See merge request espressif/esp-idf!46722
2026-03-18 08:51:43 +01:00
Sudeep Mohanty 4d15351959 Merge branch 'test/buildv2_pytest_project' into 'master'
test(cmakev2): Add pytest tests for project APIs

See merge request espressif/esp-idf!46286
2026-03-18 07:50:54 +01:00
Fu Hanxi 9f7ec2626e ci: fix check-build-test-rules exclude-dir 2026-03-18 11:39:41 +08:00
Marius VikhammerandCopilot 4e000a41d5 docs(test_build_system): add supported targets table to kconfig_test_app README
The check-all-apps-readmes pre-commit hook detected that
kconfig_test_app/README.md was missing the supported targets table.
Added the full table including esp32h21, esp32h4, and esp32s31.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-18 10:40:13 +08:00
Fu Hanxi c360d8be98 feat: support moving idf components to component registry
and mark it as root dependency
2026-03-17 21:02:49 +08:00
Fu Hanxi a3281516c4 test: stop patching env vars by tearDownClass 2026-03-17 21:02:49 +08:00
Jakub Kocka 6fc4116876 Merge branch 'ci/windows_profiling' into 'master'
Profiling for Windows runners and enhancing the tests in the scope of time complexity

Closes IDF-14137

See merge request espressif/esp-idf!44163
2026-03-17 19:45:56 +08:00
Erhan Kurubas 33e90fb10a feat(tools): update openocd version to v0.12.0-esp32-20260304 2026-03-16 21:14:45 +08:00
Jakub Kocka 31b36e4428 fix(ci): Fixed Tools related CI tests 2026-03-16 12:55:57 +01:00
Sudeep Mohanty e53d8e9a74 test(cmakev2): Add pytest tests for project APIs 2026-03-16 10:57:26 +01:00
Jan Beran a2277f14df ci(tools): Move misspelled KConfig test to dedicated kconfig_test_app
Separate the misspelled KConfig.projbuild test case into its own test app
so it doesn't interfere with the general-purpose build_test_app. The test
now uses a pytest marker to select kconfig_test_app as the source.
2026-03-16 08:57:40 +01:00
Jakub Kocka 7551e82048 ci(tools): Changed the approach of some build tests to cmake reconfigure
Where actually building the app is not needed cmake reconfigure was introduced instead.
This should be performance upgrade especially for Windows runners, where build is quite slow
2026-03-16 08:57:40 +01:00
Roland Dobai 648818c9f3 Merge branch 'feat/mcp_server_with_eim' into 'master'
feat(tools): Fixed mcp-server functionality + EIM integration

Closes IDF-13051

See merge request espressif/esp-idf!45998
2026-03-16 08:57:17 +01:00
Jakub Kocka 82cc3b55b6 ci(tools): Updated approach of copying files to using git worktree 2026-03-16 08:53:47 +01:00
Jakub Kocka d860da47c0 ci(tools): Avoiding full rebuilds where not needed to improve performance 2026-03-16 08:53:41 +01:00
Marius Vikhammer 02c8a8b99d Merge branch 'ci/fix_non_running_core_tests' into 'master'
ci: restore runnable pytest configs

See merge request espressif/esp-idf!46536
2026-03-16 15:32:32 +08:00
Marius VikhammerandCopilot 25a2747dfd ci: restore runnable pytest configs
Use real CI config names and minimal config aliases so these tests are
collected and built again instead of silently being skipped.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Made-with: Cursor
2026-03-16 13:45:26 +08:00
Marek Fiala c07737ee17 feat(tools): mcp_ext.py commands adjustments 2026-03-16 13:27:54 +08:00
morris 35f6c201ad Merge branch 'ci/ast_grep_rule_soc_reg_h' into 'master'
feat(ci): add rule to prevent inclusion of <stdint.h> in soc *reg.h headers

See merge request espressif/esp-idf!46624
2026-03-16 12:39:57 +08:00
Alexey Lapshin 108dd9bdea Merge branch 'fix/cmake_flags_passing_to_external_project' into 'master'
fix(build): fix passing CMAKE_<LANG>_FLAGS from ExternalProject_Add

See merge request espressif/esp-idf!46541
2026-03-16 06:14:44 +04:00
morris 950c094e4e feat(ci): add rule to prevent inclusion of <stdint.h> in soc *reg.h headers 2026-03-16 00:02:41 +08:00
Frantisek Hrbata e494fb6284 Merge branch 'fix/cmakev2_ulp_fixes' into 'master'
fix(cmakev2): allow building ULP apps with cmakev2

Closes IDF-15435

See merge request espressif/esp-idf!46470
2026-03-13 11:39:57 +01:00
Alexey Lapshin 338cc50125 fix(build): fix passing CMAKE_<LANG>_FLAGS from ExternalProject_Add 2026-03-13 17:23:11 +08:00
Evgeny Torbin d0f062c018 ci: remove unused test cases 2026-03-12 12:02:10 +01:00
Sudeep Mohanty d51d96ed98 Merge branch 'test/buildv2_pytest_infra' into 'master'
test(cmakev2): Add placeholder hooks to buildv2_test_app

Closes IDF-13056

See merge request espressif/esp-idf!46284
2026-03-12 02:36:17 +01:00
Marek Fiala 45c2190fa7 Merge branch 'feat/add_ar_binaries' into 'master'
feat(tools): Added cmake and ninja arm binaries

Closes IDFGH-17282

See merge request espressif/esp-idf!46119
2026-03-12 03:57:46 +08:00
Sudeep Mohanty e7848fc243 test(cmakev2): Add placeholder hooks to buildv2_test_app
Made-with: Cursor
2026-03-11 13:52:16 +01:00
Tomas Rezucha 506dbc2985 Merge branch 'docs/usb-docs-link-esp-usb' into 'master'
docs(usb): Move USB docs to esp-usb and add redirects

Closes IDF-13559

See merge request espressif/esp-idf!45997
2026-03-11 11:41:52 +01:00
Frantisek Hrbata aad1f9845b fix(cmakev2/project): export build properties as variables for project_include.cmake
In cmake v1, __build_process_project_includes() exports all build
properties as CMake variables before including project_include.cmake
files. cmakev2 was missing this step, causing components like ULP that
reference build properties as CMake variables (e.g. ${SDKCONFIG_HEADER})
to receive empty values.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-03-11 15:44:30 +08:00