ayushsharma82 / ElegantOTA

OTA updates made slick and simple for everyone!
https://elegantota.pro
GNU Affero General Public License v3.0
643 stars 119 forks source link

Arduino 3 / ESP-IDF 5 compatibility #178

Closed mathieucarbou closed 5 months ago

mathieucarbou commented 7 months ago

This PR updates the CI system and dependencies in order to make the library compatible with Arduino 3 / ESP-IDF 5, and of course Arduino 2.

The project itself does not require any change, except the library.json for PlatformIO projects, but alternate dependencies must be used, which have been updated:

Example:

lib_deps = 
  mathieucarbou/Async TCP @ ^3.1.4
  mathieucarbou/ESP Async WebServer @ 2.10.1

Note: the change to https://github.com/mathieucarbou/esphome-ESPAsyncTCP#v2.0.0 is because ESPHome have deleted the library.properties file from the original fork.

You can see an sample of what will the CI look like here in my fork: https://github.com/mathieucarbou/ayushsharma82-ElegantOTA/actions/runs/8773016893

mathieucarbou commented 5 months ago

@ayushsharma82 : applied same recipe as ESP-DASH here. CI is passing in my fork (main and this PR branch): https://github.com/mathieucarbou/ayushsharma82-ElegantOTA/actions

mathieucarbou commented 5 months ago

Also, platform raspberrypi is declared but not tested... Not sure we want to either remove the support or add tests for that ? Same question for picow rp2040...

ayushsharma82 commented 5 months ago

Yea, there is RP2040 support in ElegantOTA so CI should test that too.

Check the other PR #170, does your fork of ESPAsyncWebServer have RP2040 support? (Ref: https://github.com/DoomHammer/ESPAsyncWebServer/commit/06062ec4940aebf636a67cd8357d88d66896f892 )

mathieucarbou commented 5 months ago

Yea, there is RP2040 support in ElegantOTA so CI should test that too.

Check the other PR #170, does your fork of ESPAsyncWebServer have RP2040 support? (Ref: DoomHammer/ESPAsyncWebServer@06062ec )

Oh boy! There's a problem here... #170 (saw it already) depends on an external fork of ESPAsyncWebserver, and, even if I could import the diff in my fork, the real issue is that it depends on a different AsyncTCP lib which is now archived (https://github.com/khoih-prog/AsyncTCP_RP2040W) and not even based (forked) from the original ones...

It seems like a dead end to me...

ayushsharma82 commented 5 months ago

Yeah... We can still add CI for testing Demo example with RP2040 target.

ayushsharma82 commented 5 months ago

Let me know if you can do it otherwise I'll tackle it next weekend. :)

mathieucarbou commented 5 months ago

RP2040

yes this one can be activated if not depending on Async stuff. What's problematic is I think making this project depend on some unsupported / archived dependencies like the forks (which are not even forks lol) of ESPAyncTCP and ESPAsyncWebServer for RPI.

Let me know if you can do it otherwise I'll tackle it next weekend. :)

You can edit my PR and commit. I never did dev on such board (I didn't see so far any reason to use them as they are too limited and expensive in terms of specs for the price) so I don't know the kind of combination to use for Arduino CI and if there are some specific flags to set or not set, and I cannot test on any board since I don't have some.

ayushsharma82 commented 5 months ago

Added raspberry pico to CI in my dev branch.

Btw, I noticed you are not using conventional commits, although it is not "required", this is something which I started using recently. I find it really great because using this 'convention' scripts can auto increment version by looking through commit history.