-
Notifications
You must be signed in to change notification settings - Fork 36
Description
Answers checklist.
- I have read the component documentation ESP-IDF Components and the issue is not addressed there.
- I am using target and esp-idf version as defined in component's idf_component.yml
- I have searched the issue tracker for a similar issue and not found any related issue.
Which component are you using? If you choose Other, provide details in More Information.
device/esp_tinyusb
ESP-IDF version.
v5.4.2
Development Kit.
ESP32-S3-DevKitC
Used Component version.
1.7.6~1 with tinyusb component 0.18.0~4
More Information.
This issue report relates to the tinyusb component, not esp_tinyusb, but that repo has GitHub issues disabled.
The documentation for ESP-IDF Component Manager says that the "Revision" version increments when "there are only downstream code changes between two revisions." This is not the case for recent revision increments of the TinyUSB component which contain unreleased breaking changes from upstream TinyUSB.
For example, TinyUSB commit hathach/tinyusb@db53786#diff-d34d3b84d6fa19c64b96ed57ceae385cfddea1c7e74e76f55ffe61f2eb2ddf2cR54-R67 makes a backwards incompatible behaviour change (new flag tx_overwritabe_if_not_connected). This change is not yet released in any TinyUSB version, but it's included in Espressif downstream releases v0.18.0~3 and v0.18.0~4. According to the versioning documentation this shouldn't happen.
This new flag has caused a regression in MicroPython (the CDC FIFO mode becomes blocking). It's hard for us to work around it because according to the TinyUSB version macros this is TinyUSB v0.18.0. This is clearly not true, this version is actually a random snapshot of TinyUSB upstream master branch.
If it's necessary to release components based on unreleased upstream TinyUSB then suggest tagging them as v0.19.0-dev0 or similar (with a change in the TUSB_VERSION macros as well, if possible, for projects like MicroPython that also use upstream TinyUSB). This would be compatible with ESP-IDF's own component version documentation, and make it easier for users to understand that there may be new - possibly unstable - code changes included from upstream.