Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EIM Integration #1355

Open
wants to merge 63 commits into
base: master
Choose a base branch
from
Open

EIM Integration #1355

wants to merge 63 commits into from

Conversation

brianignacio5
Copy link
Collaborator

@brianignacio5 brianignacio5 commented Nov 29, 2024

Description

Add initial EIM integration with eim_idf.json and command to open URL for IDF-IM-UI download.

Type of change

  • New feature (breaking change which adds functionality)

Steps to test this pull request

This PR introduces breaking change to how this extension works.

  1. Use eim_idf.json to get ESP-IDF setups in the user environment. If no setups were found, fallback to resolve system environment variables IDF_TOOLS_PATH esp_idf.json and idf.customExtraVars ["IDF_TOOLS_PATH"] esp_idf.json. If no setups are found, it will try to use environment variables IDF_PATH, IDF_TOOLS_PATH and IDF_PYTHON_ENV_PATH to define the current IDF_SETUP. These variables can also be defined in idf.customExtraVars.
  2. Use workspace folder state to define the current IDF Setup for current workspace folder. IDF_PATH, IDF_TOOLS_PATH, IDF_PYTHON_ENV_PATH and other variables are used to have a better mapping with ESP-IDF. These can be see in ESP-IDF: Doctor Command.
  3. When the user select a IDF Setup from the dropdown, the extension will use the activation script created from EIM ESP-IDF setup if available.
  4. Remove old debug adapter TypeScript code.
  5. Add ESP-IDF: Open ESP-IDF Install managercommand which open a URL to download EIM releases.
  6. On extension activation, a setting "idf.currentSetup" will be read to load env variables into workspace state of the corresponding esp-idf setup. Example: "idf.currentSetup": "/path/to/esp-idf"

Things to test:

  1. Start this extension with already configured extension from before. While extension will not recognize current settings, the user can still select from dropdown and list of existing setups should appear. Selecting the new setup should works without issues. PLEASE HELP WITH IDEAS TO MINIMIZE ISSUES AND MANUAL STEPS HERE.
  2. Pick a ESP-IDF setup from status bar esp-idf version (ESP-IDF: Select Current ESP-IDF Version). This step assume no EIM setup has been done yet. The list of ESP-IDF versions from before ($IDF_TOOLS_PATH/esp_idf.json) should be listed. When one esp-idf setup is selected, settings are saved in current workspace folder in workspace state and a setting "idf.currentSetup" will be saved pointing to selected esp-idf.
  3. Perform a EIM setup using EIM (either UI or CLI). Now when using this extension and click at status bar esp-idf version (ESP-IDF: Select Current ESP-IDF Version), the list of ESP-IDF should also come from EIM's eim_idf.json. When one esp-idf setup is selected, settings are saved in current workspace folder in workspace state and a setting "idf.currentSetup" will be saved pointing to selected esp-idf.

How has this been tested?

Manual testing of scenarios described above.

Test Configuration:

  • ESP-IDF Version: 5.3.1 and 5.4
  • OS (Windows,Linux and macOS): macOS

Checklist

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

@brianignacio5 brianignacio5 self-assigned this Nov 29, 2024
Copy link

github-actions bot commented Nov 29, 2024

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.

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 12, 2025
@brianignacio5 brianignacio5 removed the stale Stale PR or Issue label Jan 13, 2025
Copy link

github-actions bot commented Feb 5, 2025

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 Feb 5, 2025
@brianignacio5 brianignacio5 removed the stale Stale PR or Issue label Feb 5, 2025
@brianignacio5 brianignacio5 force-pushed the enhance/eim branch 2 times, most recently from 6923783 to 49926a2 Compare February 8, 2025 03:30
@brianignacio5 brianignacio5 marked this pull request as ready for review February 12, 2025 07:25
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.

First of all, great job on the changes!

I've left a few comments, some related to translations, some small modification and some questions.

@@ -70,7 +77,9 @@ export async function configureProjectWithGcov(workspacePath: Uri) {
appTraceGcovEnable === "y";

if (isGcovEnabled) {
return window.showInformationMessage("Code coverage is already enabled in sdkconfig");
return window.showInformationMessage(
"Code coverage is already enabled in sdkconfig"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Not part of the change, but we should use translation here

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I've created a new more comprehensive ticket about this VSC-1609

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants