-
Notifications
You must be signed in to change notification settings - Fork 0
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
Build a small release #1
Conversation
@Jason2866 thank you so much! Can you please help me understand what your change does & how it works? |
Dont want to litter the closed issue...
The project in mind is nearly always Tasmota. Tasmota is written in or with? Arduino. |
@gojimmypi It is easy :-) Enable GH Actions. Draft an release with a tag beginning with Before doing this add the version.txt and the package.json! Just merge PR #2 before. If you have done this, you can use the URL to the released zip in Platformio with |
@gojimmypi Your current attempt is not working ;-) If you don't want to use my GH Actions zip releaser (I do understand, using stuff from Internet strangers ;-)) |
lol, indeed, just as I was scratching my head on the closer, but different error messages!
embarrassingly, yes... as I don't fully understand what's going on... plus I didn't want remote wildcard dependencies.
ok, I have the fork! :) Will my release_zips.yml work now? @Jason2866 thank you so much for your help! |
@gojimmypi Your fork of the action just has the main branch. The used one is NOT branch main. For IDF release zips the branch https://github.com/Jason2866/github-actions/tree/release_idf is used If you want no unnecessary SPAM actions. remove or rename all other *.yaml files in the IDF repo workflows folder |
edit: removed irrelevant, auto-generated |
@gojimmypi Merge this PR and you are there :-) |
@Jason2866 thank you a LOT for all your help today. I seem to be really close. Definitely a bit of a learning curve here. The releases seem to have been created. But they cannot be used:
|
@gojimmypi How do you tag? Something goes wrong here. Verified working is doing no tagging before. Just use the "draft a new release" button from github Web page. Enter the version tag here and hit the button "publish release" No draft publish! The release needs to be visible for everyone. |
@Jason2866 I've been creating tags like this:
My web page looks slightly different from yours: I've manually created a release now https://github.com/gojimmypi/esp-idf/releases/tag/v5.4.1f I thought the GitHub actions did some things automatically for the releases? |
@gojimmypi Do NOT use or open an existing tag. Do not tag via Git. This will not work. You have to "draft a new release" and generate the tag there! You can enter the tag where you see "choose a tag" before choose the branch via "target". This will start the GH Actions zip release and the builded zip will be pushed in this tagged release. You can't use an existing tag. If you want to reuse you have to delete the release and the tag. Edit: Probably there is a way to do via Git, never did it this way. I guess there is just a step missing... EDIT2: There is no need to do a code change for doing a release (try). |
@Jason2866 , ok I see the "draft a new release". That's the same page when visiting https://github.com/gojimmypi/esp-idf/releases vs clicking the "create a new release": I followed your instructions and pressed the "draft a new release" from https://github.com/gojimmypi/esp-idf/releases Odd thing is: the zip files for the release are created almost immediately, even though the workflow is still running. Eventually the workflow finishes, long after the release zip files are presented in the web UI:
And I see a different zip file is available upon completion! And so this is my latest
Is doesn't work, but it is closer than ever! I think the issue is that there are binary toolchain versions different from the latest PlatformIO version. My release is based on the latest upstream master.
The message "fatal: not a git repository (or any of the parent directories): .git" is likely benign; I think I know where that's happening & easily remedied. So I think I'll need to apply my changes to an ESP-IDF release v5.2 and try again. Open to suggestions otherwise if you have an idea. In the meantime, thank you again! Please send me an email jim@wolfssl.com - I'll get you in touch with someone that can send you some cool wolfSSL swag in appreciation for all your help. |
This
Will send you an email, Thx! |
@gojimmypi You can use the newer espressif toolchains from here https://github.com/espressif/crosstool-NG/releases matching to your platform with For example:
|
@Jason2866 got your email and thanks for the tips on toolchain! I'll follow up later today. Cheers |
Hi @Jason2866 I've been working on a sample pio app. I am nearly there, with "only" a linker problem. Your toolchain suggestion was nearly successful, but as presented I saw this error when the environment initializes:
Using your idea though, I was able to get this working with my local copy of the same toolchain version using [env:esp32dev]
platform = espressif32
board = esp32dev
framework = espidf
monitor_speed = 115200
platform_packages =
framework-espidf @ https://github.com/gojimmypi/esp-idf/releases/download/v5.4.1k/esp-idf-v5.4.1k.zip
toolchain-xtensa-esp-elf @ file:///SysGCC//esp32-master//tools//xtensa-esp-elf//esp-13.2.0_20240530//xtensa-esp-elf
; toolchain-xtensa-esp-elf @ https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-x86_64-linux-gnu.tar.gz
lib_deps = wolfssl/wolfssl@^5.7.0-rev.3d It compiles to the end! Yay! But... (ya, no fun if it is too easy, eh?) ... but the linker fails at line 497 with a syntax error for this:
Here's the full output:
I've fussed with various settings in This should be a good toolchain, something I've used quite a lot in Visual Studio with VisualGDB. Have you seen anything like this? Any suggestions where to go from here? Perhaps I'll be back-porting my changes to ESP-IDF v5.2 after all. Thank you again for your help.
I was able to use the latest
Error as before:
So the issue is not with the Sysprog's version of the toolchain.
I can confirm the very latest ESP-IDF master branch works with the Sysprogs toolchain in Visual Studio with another example: So the problem is definitely specific to PlatformIO. |
Platformio build system is very different compared to native IDF. |
Hi @Jason2866 I've continued to attempt to get the latest Espressif ESP-IDF (unrelease v5.4 master branch) to work with PlatformIO without success. The closest I've been able to get is that linker error, mentioned above. Just to prove I could create a custom ESP-IDF release, I created a new
I have my various attempts documented in my platformio.ini. Did you ever try to get a latest master branch release working? I didn't see any on your https://github.com/Jason2866/esp-idf/releases |
Hi @gojimmypi |
I am currently porting the espressif esp32 Arduino which is build with IDF 5.1.4 to a version which is based on IDF 5.2.2. Surprisingly not so many changes needed :-) |
Hi @Jason2866 I'm seeing this error for custom ESP-IDF builds... have you encountered anything like this?
It seems to be only for a custom build, of any flavor, release version, even from a local install. (e.g. SysProgs). Same code, omit the platformio.ini The error occurs at startup time in nvs_flash_init() |
@gojimmypi No, haven't had such an issue. Which IDF version? Example? |
Nearly any ESP-IDF version in the 5.2.x series (master, .1 tag, .2 tag) from either my generated version of the locally installed, known working SysGCC/VisualGDB file system. I've updated the example (nothing much of interest changed, but it's the very latest) From
Then
Remove the framework-espidf @ and the code works fine:
code works just fine.... thanks a log @Jason2866 for taking a look. |
@gojimmypi i will have a look. Will probably have no time for this before Monday
|
@gojimmypi You have to apply the change mentioned in this issue platformio/platform-espressif32#1379 The patch is not backported in branch IDF 5.2 I have added and forgot about this. |
Hi @Jason2866 and thank you SO MUCH for that tip. I'm fairly certain it would have taken me an unreasonable amount of time to find that. There were several potential fixes mentioned, but the real one is the comment on editing I have that applied in my 5.2.2 branch and YAY! have successfully created ESP-IDF 5.2.2 Release v5.2.2.20240714 that seems to work. Not at all intuitive for a Cache disabled but cached memory region accessed error, but whew, glad this is resolved.
your release, (sans my wolfSSL updates) works great!! I had gone back to that yesterday after creating an unreasonable number of failing releases.
I assume each of the releases have their own quirks, eh? I tried to go back even further with this v5.1 release of yours: https://github.com/Jason2866/esp-idf/releases/download/v5.1.4.240702/esp-idf-v5.1.4.240702.zip and encountered this bizarre error (no worries, as I'm happy with the 5.2.2 for now):
|
The Platformio Platform espressif32 has to fit to the IDF version. The IDF 5.1.4 try from you fails since the not matching toolchain version is used. The package build is fine, you just used it with the not fitting Platform. You can see the needed dependencies in https://github.com/espressif/esp-idf/blob/release/v5.1/tools/tools.json for the current IDF version Here are the changes needed to support IDF > 5.2. Honestly I don't have a clue what to change and what is the reason for failing. |
Hi @Jason2866 - Thank you again for all of your help. I've settled on the ESP-IDF v5.2.2 branch for now and I have this example that I'm working with to test using wolfSSL instead of mbedTLS in the esp-tls layer. The example works for both PlatformIO I'm having difficulty using a PlatformIO component as an ESP-IDF component, since the PlatformIO installs as a library in Do you think it is possible for the ESP-IDF to "see" the local pio library? The idf_component_get_property appears to only work for components in the |
Hello @gojimmypi |
Understood, no worries. :) |
Mhh, maybe working if you upload the component you want to use to espressif registry @gojimmypi Edit: Just looked, you have already uploaded a wolfssl version to espressif registry. |
Yes! :) That's exactly the solution, thanks valeros : platformio/platform-espressif32#1157 (comment)
That's the less-than-ideal part: it needs to be done manually, and one needs to just know that the file is
The alternative is to use the
I still think I could persuade the pio to see the installed library as component source via the magic of cmake, but given the option of using the Managed Components, even if not quite as graceful as with Thank you again for all your help and feedback. You've been awesome. Much appreciated. Cheers. |
Great, that you found a way to get it working. |
Hey @Jason2866 ! Just a heads up that I have improved It still needs a custom ESP-IDF, but my https://github.com/gojimmypi/esp-idf/releases/tag/v5.2.2.20240904b seems to work well. |
Nice work @gojimmypi |
Thanks @Jason2866 ! Your tips on making an ESP-IDF release have been very helpful. Good to know about v5.3. ESP-IDF PR is next on the agenda. At the moment, I'm working on improving PlatformIO support for Certificate Bundles as mentioned in that PR. I'm having a dreadful time as the build process does not seem to process any of the file system scripts in the Espressif CMakeLists.txt files, such as a critical one to assemble the Certificate Bundle output file. Details, details! lol. oh, btw - I sent you an email on Aug 18. Nothing critical but related to Tasmota. Let me know if you are interested. Cheers |
@Jason2866 I have a sample 5.3.1 release, but it is >1.5GB instead of ~70MB. I supposed I could just edit the script, looks like it is including the GitHub files. Have you seen this before? Any idea why the same script has such a different outcome? |
@gojimmypi You are using the orig https://github.com/gojimmypi/esp-idf/blob/v5.3.1.20240925a/.github/workflows/release_zips.yml |
Hi @Jason2866 and thank you! Yes, I had missed that step in my summarized instructions and forgot to look at the whole point of this PR from earlier this year. I made that change and it seems to work great! The resultant size is much smaller. yay! I've created my first ESP-IDF v5.3.1 release from my_531 branch with wolfSSL support in esp-tls here: https://github.com/gojimmypi/esp-idf/releases/tag/v5.3.1.20240926b The latest wolfSSL for that is in wolfSSL/wolfssl#7936 and should be included in the next release. Let me know if you have a chance to take it for a test drive. |
For reference: this thread started at platformio/platform-espressif32#1398 and was moved here to not clutter up that closed issue. |
@gojimmypi Release GH for building a small release zip