wolfSSL / Arduino-wolfSSL

This repository is a restructured copy of https://github.com/wolfSSL/wolfssl/ for the Arduino environment. Any Pull Requests for code changes should be opened there.
https://www.wolfssl.com
GNU General Public License v2.0
11 stars 7 forks source link

wolfSSL Library Naming Convention for Arduino & PlatformIO #7

Closed gojimmypi closed 4 months ago

gojimmypi commented 5 months ago

@ivankravets over at PlatformIO made a comment regarding the name of wolfSSL in the Arduino registry:

Please fix the name of Arduino library https://github.com/wolfSSL/Arduino-wolfSSL/blob/main/library.properties . It should be name = Arduino-wolfSSL

The issue being that if there's a name consistency, the wolfSSL for Arduino library will apparently propagate automatically to PlatformIO.

The instance of wolfSSL currently in the PlatformIO registry was published manually:

https://registry.platformio.org/libraries/wolfssl/wolfssl

Although that sounds simple enough, there are implications. For one, I would be concerned that when searching for wolfSSL in the Arduino registry, that having a name other than wolfssl might not be entirely desirable.

I like the fact that wolfSSL is call, well, simply wolfssl in the Arduino registry:

image

However, I also agree that there's some inconsistency in this repo Arduino-wolfSSL being the same as wolfssl, but restructured for Arduino compatibility as noted in https://github.com/wolfSSL/Arduino-wolfSSL/pull/1#issuecomment-1944819248 and in particular https://github.com/arduino/arduino-cli/issues/631.

There's probably an argument that the PlatformIO version of wolfSSL should have a unique name. In fact, we are going to need at least two unique names for wolfSSL in the PlatformIO registry: not only should there be an Arduino environment version of wolfSSL, but also at least one other for the Espressif ESP-IDF environment in a different format / layout.

My inclination is to leave the Arduino properties as-is, and continue to manually publish to PlatformIO.

I'm looking for input regarding the desired naming convention.

See also:

https://www.arduino.cc/reference/en/libraries/wolfssl/

https://downloads.arduino.cc/libraries/logs/github.com/wolfSSL/Arduino-wolfSSL/

ivankravets commented 5 months ago

You can have only 1 library in the PlatformIO Registry which will be the mirror of https://github.com/wolfSSL/wolfssl. Having library.json manifest and platform-build.py extra script will let developers use original source code for any framework including Arduino. Regarding Arduino-wolfSSL - we don't need it in the PlatformIO Registry, the original https://github.com/wolfSSL/wolfssl will be enough.

gojimmypi commented 4 months ago

I've addressed this by publishing two different libraries: We are providing two different Official wolfSSL libraries: standard and another specifically for Arduino:

There are also two different versions: the stable release versions (above) and these staging updates, with the latest post-release changes.

The stable release versions will generally follow our standard release cycle. The initial 5.7.0 versions include post stable-release updates needed for the Initial PlatformIO support.

You can have only 1 library in the PlatformIO Registry which will be the mirror of https://github.com/wolfSSL/wolfssl

I chose to have two different libraries as publishing the Arduino-wolfSSL is a trivial matter as the files are already in the proper directory format. Plus, the included examples are specific to Arduino, such as the wolfssl_client.ino.

Publishing the regular wolfSSL was considerably more complex, and required a somewhat similar reorganization of directories in order to work properly in the PlatformIO environment. The respective examples (currently only in my fork, PR coming soon) ... are also different, and not .ino files. If there's a better way of doing this, I'm open to suggestions.

There's definitely work remaining for PlatformIO, as although wolfSSL seems to be working well for the ESP32, I had a much more difficult time with an STM32 board.

In any case, this naming convention issue can be closed.