-
Notifications
You must be signed in to change notification settings - Fork 314
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
[Feature Request]: Better ESP-IDF Version management (VSC-1259) #1095
Comments
This issue has been marked as |
yes i've asked for this feature as well! specifically the bottom bar switcher |
The question would be how to handle these multiple versions together ? One way is to use the same IDF_PATH and change versions by changing git branches with git. This will also requires to install IDF Tools and update submodules of IDF which can take some time in the back. The advantage of this is that you only need a single IDF_PATH Another is to have several IDF_PATH in our systems corresponding to different versions. Tools could exist in the same IDF_TOOLS_PATH and changing between one and another is as simple as updating the idf.espIdfPath to the new IDF_PATH location. There is already a way to update IDF_PATH for a single project by using existing setup in your systems with the setup wizard but saving it for the current workspace folder. The advantage of this is that a user can have multiple IDF versions for same system living together. In my opinion the second choice is more favorable, and it comes down to why is it hard to currently change between multiple IDF versions in your systems, since at the end is just updating idf.* settings in settings.json (assuming current IDF versions are already properly configured). The part of the IDF version switcher can be simple to implement after we understand 1 question:
The options of choosing different IDF setups is already available in the setup wizard with |
I think a bottom switcher, that is saved per workspace / folder would work well. |
That has the advantage of being more portable across machines, too, I think. A setting of |
This issue has been marked as |
I have had good success with multiple versions. Here is a strategy that worked for me:
If you need another version -- repeat with ADVANCED option. You may move from project to project and each will build from the IDF and tool which are specified in c_cpp_properties.json and settings.json configuration files. By default all new projects are started from your last chosen IDF version -- but if you need to re-point that to another version -- go into USE EXISTING SETUP and select the version you want to activate. All new projects and sample will pull from chosen version. |
Could you test the PR #1173 with a proposed solution for this ? Or this vsix installer |
This is fantastic, works well. I'm stoked. |
be carefull, I worked with method out a little while ago & I've noticed a few errors. I do a couple things differently than outlined here: I had a dedicated tools folder for each framework.(see attached image) probably a lot of redundancy, but its much cleaner, if I ever have a problem with a tool chain, I can just deleted it & reinstall...that would be difficult with all the different tool chains piled in one folder. I also dont do it system wide like that, I have it on a per project basis. Not to say that one is right or wrong, depends on your use. for example, right now I have a project that is 2 code bodies: one in 5.2 and one in 4.4.7, not in the same workspace, but I like to have them both open in different vscode windows. With the method described here, you cant do that, both projects will change into whatever framework you've selected. To do that, you need to change the IDF configuration save scope(ext settings). I outline that in detail here: here are the bugs / undesired behavior I've noticed: **NOTE TO DEVELOPERS: please bring back the save scope selection on the configuration menu, that would be handy, not sure why you changed it to just a read out. (i know how to change the settings, its just inconvenient ) |
Hi @mtraven Thank you for your feedback. I want to go through a few points from your comment.
On my tests I observed that when I select a new version from the dropdown and later run the doctor command I would see. the right tools for the IDF_PATH and IDF_TOOLS_PATH. Isn't this the case for you ? |
congrats on this feature @brianignacio5 !!! 🥳🥳🥳 |
Is your feature request related to a problem? Please describe.
Using multiple versions (eg. V4.4, alongside V5.1) of the ESP-IDF on one system is a pain, and very error-prone.
The way to do it seems to involve actual folder management on the system, and I've never been able to get it working quite right, especially with different IDF versions expecting specific version of the Espressif tools.
Honestly, generally, I find it easier to just delete the IDF folders entirely and start the setup procedure from scratch with the IDF version I need to use for that project.
Describe the solution you'd like
Another option in the "ESP-IDF Setup" window that can swap in between different IDF versions.
Additionally, a section at the bottom status bar, right next to the ESP32 chipset (esp32, esp32s3, etc) that shows the ESP-IDF version, and the ability to swap between them.
Describe alternatives you've considered
A clear and concise description of "officially recommended" procedures to swap in between IDF versions.
The text was updated successfully, but these errors were encountered: