Skip to content

Release/v2.0#1704

Merged
brianignacio5 merged 25 commits intomasterfrom
release/v2.0
Feb 4, 2026
Merged

Release/v2.0#1704
brianignacio5 merged 25 commits intomasterfrom
release/v2.0

Conversation

@brianignacio5
Copy link
Collaborator

@brianignacio5 brianignacio5 commented Nov 3, 2025

Description

EIM Integration Release

This pull request significantly refactors the CI workflow and documentation to modernize ESP-IDF installation, simplify test execution, and update configuration guidance for additional frameworks. The most impactful changes are the removal of the custom Docker-based GitHub Action in favor of using Espressif’s official setup action, improvements to test reporting, and updates to documentation for clarity and current best practices.

CI/CD Pipeline Modernization:

  • Removed the custom .github/actions/idf Docker-based GitHub Action, including its Dockerfile, action.yml, and shell scripts, in favor of using the official espressif/install-esp-idf-action for setting up ESP-IDF in CI workflows. This simplifies maintenance and aligns with upstream best practices. [1] [2] [3] [4]
  • Updated .github/workflows/ci.yml and .github/workflows/ui-test.yml to use the official ESP-IDF setup action, improved Node.js and Yarn setup, and replaced custom test output handling with standardized test reporting using dorny/test-reporter. Also added robust JSON extraction and artifact upload for UI test results. [1] [2] [3]

Documentation Updates:

  • Revised the setup instructions in README.md to recommend using the ESP-IDF Install Manager and updated the workflow for selecting and configuring ESP-IDF versions in VS Code. This reflects the latest recommended installation and configuration processes. [1] [2]
  • Updated the documentation for integrating additional frameworks (ADF, MDF, Matter, Rainmaker, HomeKit) to use environment variables set via idf.customExtraVars instead of deprecated configuration keys, both in English and Chinese documentation. [1] [2] [3] [4] [5] [6]
  • Removed obsolete or redundant documentation, such as the "Clear Saved ESP-IDF Setups" table entry.

These changes collectively improve maintainability, reduce custom code, and ensure that both CI and user documentation are up-to-date with current Espressif tooling and extension capabilities.

Fix #1696
Fix #1759

Type of change

  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Steps to test this pull request

This PR requires an overall test of the extension to make sure all features work. This PR include breaking changes in the way the ESP-IDF is installed now using the ESP-IDF Installation Manager (EIM)

  • Expected behaviour:

Install using the EIM.

  • Expected output:

How has this been tested?

Manual testing of overall extension features.

Test Configuration:

  • ESP-IDF Version: 5.5.1
  • OS (Windows,Linux and macOS): All

Checklist

  • PR Self Reviewed
  • Applied Code formatting
  • Added Documentation
  • Added Unit Test
  • Verified on all platforms - Windows,Linux and macOS

@brianignacio5 brianignacio5 added this to the v2.0.0 milestone Nov 3, 2025
@brianignacio5 brianignacio5 self-assigned this Nov 3, 2025
@github-actions
Copy link

github-actions bot commented Nov 3, 2025

Download the artifacts for this pull request:
You can test these changes by installing this VSIX by click menu View -> Command Palette..., type Install from VSIX and then select downloaded esp-idf-extension.vsix file to install the extension.

@eMUQI
Copy link

eMUQI commented Nov 22, 2025

Hi, I noticed this PR has been open for about three weeks. May I ask when we can expect the official release of V2.0? Thank you for your work!

@github-actions
Copy link

Pull request has been marked as stale since there are no activities, and this will be closed in 5 days if there are no further activities

@github-actions github-actions bot added the stale Stale PR or Issue label Dec 21, 2025
@brianignacio5 brianignacio5 removed the stale Stale PR or Issue label Dec 25, 2025
@github-actions
Copy link

Pull request has been marked as stale since there are no activities, and this will be closed in 5 days if there are no further activities

@github-actions github-actions bot added the stale Stale PR or Issue label Jan 10, 2026
@brianignacio5 brianignacio5 removed the stale Stale PR or Issue label Jan 12, 2026
* draft eim integration

* update init extension auto config

* rm global state idf setups

* do not show invalid extension when showOnboardingOnInit is false

* rm duplicate code

* update welcome show

* fix new projext examples esp idf loading

* update default esp_ide json file

* add eim verify idf setup functions

* update to eim_idf json file name

* save settings as env variables

* rm settings use customExtraVars instead

* fix save docker settings

* check empty customExtraVars PATH

* fix getConfigurationSettings

* rm old setup

* fix lint

* rm setup webpack update python in project test

* use customextravars first

* add selected workspace global config

* use process env if customextra vars not available

* default tools path

* test doctor command

* write customExtraVars from process env if available

* fix workspace arg

* update menuconfig test rm doc cmd

* add PYTHON env var

* log doctor command output clean project first

* add missing timeout

* test debug vscode

* add PYTHON env var

* add env PYTHON save settings

* fallback on global state setups

* escape activation script path if spaces

* move IDF_PATH to workspace state, move frameworks settings to customExtraVars

* update rm global setups

* use env vars if idfSetups not defined, rm redudant code downloadManager and tests

* read esp idf setups from esp_idf.json

* await getConfigurationAccess

* add logger init

* fix IDF_TOOLS_PATH not defined if default

* add PYTHON to env variables

* change checkIdfSetup to isIdfSetupValid rm IEspIdfTool fields

* remove env systemDriver use C in Windows default eim_idf json path

* log activation script output

* change to error logs

* update activationScript split regex

* fix IDF_PYTHON_ENV_PATH to envDict

* loadIdfSetup save idf.gitPath

* add path to prepareEnv

* fix idf size ui

* add idf setups in doctor command

* add validation for eim load env setup

* idfSetupToUse add validation

* fix load idf.currentSetup

* rm idf.espIdfPath from docs rm duplicate idfSetups use old idf.espIdfPath if no idf.currentSetup

* add download extract install run eim from extension

* fx linux exe call

* use env shell for activation script

* allow pick mirror eim download, add l10n for msg

* fix errors

* fix env vars in clang validate

* use latest vscode-extension-tester

* use eimPath field in eim_idf json to open existing executable if exists

* rm idf setup validation, only in doctor cmd

* fix checkPyVenv object

* rm idf.toolsPath reference

* use idf toolsPath old setting to find esp_idf json file

* rm use of ESP_IDF_VERSION in status bar

* add missing v for idf version

* update walkthrough install step

* add idf.eimExecutableArgs for eim gui or cli

* use & intead of launch process

* make sure that eim_unified_release is not cached, rm quote

* close notifications befor doctor cmd

* mv dismiss to before

* fix lint

* fix ts issues

* use default tools path instead of temp for eim download

* add default EIM locations to match Espressif IDE and use EIM_PATH

* test json reporter no use of docker

* add expected test env vars

* add results in console too, rm actions idf fix doctor test

* replace user path in doctor test

* test using e2e ui reports

* test extester mocha options

* update options as object

* update reporter option

* try to parse json from console

* fix console output parsing

* update console output parse error handle

* clean json step

* update test log to test locally

* rm text after closing json

* update end regex

* update parsing with test data

* fail on test error

* update bulma packages and use new syntax
Copy link
Collaborator

@Fabricio-ESP Fabricio-ESP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed working. Tested with EIM release 0.7.1
No issues found on regular customer use cases.

Copy link
Collaborator

@Fabricio-ESP Fabricio-ESP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs update

- Navigate to ``View`` > ``Command Palette``.

- Type ``ESP-IDF: Configure ESP-IDF Extension`` and select the command to launch the setup wizard. A loading notification will appear, followed by the setup wizard.
- Type ``ESP-IDF: Open ESP-IDF Install Manager`` to download and run the ESP-IDF install manager to install the ESP-IDF framework. A loading notification will appear, followed by the execution of the installer.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ESP-IDF Installation Manager"
To follow the same name indicated on the EIM webpage.

I noticed that the command itself has a different name from the command palette or the explorer panel.

.. image:: ../../media/tutorials/setup/select-mode.png

2. Choose ``Express`` and select the download server:
2. Alternatively, you can download the ESP-IDF Install Manager from the following link `ESP-IDF Install Manager <https://dl.espressif.com/dl/eim/index.html>`_ among the following options:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ESP-IDF Installation Manager"

- ESP-IDF download progress
- ESP-IDF Tools download and installation progress
- Creation of a Python virtual environment and installation of ESP-IDF Python requirements
3. Use the ESP-IDF Install Manager to install the ESP-IDF and tools. If necessary, here is the `ESP-IDF Install Manager Documentation <https://docs.espressif.com/projects/idf-im-ui/en/latest/general_info.html>`_.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same "Installation"

README.md Outdated
</p>

7. Choose **Express** and select the download server:
7. Alternatively, you can download the ESP-IDF Install Manager from the following link [ESP-IDF Install Manager](https://dl.espressif.com/dl/eim/index.html) among the following options::
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Installation Manager" here as well.

README.md Outdated
10. If your operating system is MacOS/Linux, choose the system Python executable to create ESP-IDF virtual environment inside ESP-IDF Tools and install ESP-IDF Python package there.

> **NOTE:** Windows users don't need to select a Python executable since it is going to be installed by this setup.
8. Use the ESP-IDF Install Manager to install the ESP-IDF and tools. If necessary, here is the [ESP-IDF Install Manager Documentation](https://docs.espressif.com/projects/idf-im-ui/en/latest/general_info.html).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Installation Manager"

Copy link
Collaborator

@radurentea radurentea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, nice work!

@radurentea
Copy link
Collaborator

I've installed the .vsix and came back with some more feedback regarding the walkthroughs. The updates are not really needed but they could be a nice cleanup for 2.0 release.

  1. ESP-IDF Basic Usage Guide
  • Step 2:

    • I think the recommendation for Linux and MacOs users can be updated with EIM Prerequisites (if needed) image

    • The text for the command should be modified to ESP-IDF: Open ESP-IDF Installation Managerimage

    • Same with ESP-IDF: Select current ESP-IDF version, should be ESP-IDF: Select Current ESP-IDF Version (capitalized)

    • Same here image

  • Step 3:

    • This text should be updated: "After clicking the button, you'll be prompted to choose a location where the project will be created.", because the next step is showing the webview with multiple inputs now. (maybe add a screenshot with the page as well?)
  • Step 4:

    • All the text inside the buttons should be updated to have the same text as the associated commands (e.g having the "ESP-IDF:" prefix and be capitalised) image
    • All commands on the right panel should use the same style format as in step 5.
    • Text needs to be updated to SDK Configuration Editor (menuconfig) image
    • It seems the item for "set target" has changed
      image compared with the one in the walkthrough image
    • Maybe for serial port we can also change the image to image because the first time the user will see "detect" as the default value
    • Flash Method's icon also changed to image from image
  • Step 5:

    • Flash Device's icon also changed to image from image
    • Monitor Device's icon also changed to image from image
    • Build, Flash and Monitor's icon also change to image from image
    • Commands on left panel should have ESP-IDF: prefiximage
    • Most of the commands' capitalization on right panel needs to be updated.
  • Step 6:

    • Right panel: ESP-IDF Basic Usage Walkthrough should be change to ESP-IDF Basic Usage Guide Walkthrough
  1. ESP-IDF Advanced Features Guide
  • Step 1:
    • Update to `Completed the Basic Usage Guide Walkthrough" to be more clear, from image
  • Step 2:
    • The text of the button should be updated to ESP-IDF: Doctor Command image
  • Step 5:
    • Same for image, it should be ESP-IDF: Show ESP Component Registry
  • Step 6:
    • Same for the Open Size Analysis command here, it should be ESP-IDF: Size Analysis of the Binaries
  • Step 7:
    • Same for the Open Partition Editor, it should be ESP-IDF: Open Partition Table Editor UI
  • Step 8:
    • The button doesn't work, it's not opening the testing view.
  • Step 10 (last):
    • The list should be updated/capitalized to be similar with the one in our documentation image

@radurentea
Copy link
Collaborator

radurentea commented Feb 3, 2026

Here are some changes required for the documentation:

1) docs_espressif\en\additionalfeatures\app-tracing.rst - New Project reference needs to be updated

2) docs_espressif\en\additionalfeatures\coverage.rst - same here

3) docs_espressif\en\additionalfeatures\flash-encryption.rst - Same here (documentation is mentioning ESP-IDF: Show Example Projects

4) docs_espressif\en\additionalfeatures\heap-tracing.rst - same here

5) Skipping tag 2.0.0 - I've also noticed that in the changelog we use 2.0.2, skipping 2.0.0, I forgot if this was intentional or not.

@brianignacio5 brianignacio5 merged commit c4c38b6 into master Feb 4, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants