Related area
Components
Is your feature request related to a problem?
Recently in MicroPython we had the situation:
- We include
espressif/esp_tinyusb component in our project via idf_component.yml.
espressif/esp_tinyusb component includes the espressif/tinyusb component as a dependency.
- We needed to apply a "hot fix" by overriding the version of the
espressif/tinyusb component (specifically, redirecting it to a branch in a github repo).
Our idf_component.yml looks something like:
dependencies:
espressif/esp_tinyusb:
version: "~1.7.6"
I tried explicitly changing it to something like:
dependencies:
espressif/esp_tinyusb:
version: "~1.7.6"
espressif/tinyusb:
git: https://github.com/micropython/tinyusb-espressif.git
version: cherrypick/dwc2_zlp_fix
Component manager sees both components, but ultimately the version added as a dependency of esp_tinyusb replaces the first one (without any error or warning printed):
NOTICE: Processing 5 dependencies:
NOTICE: [1/5] espressif/esp_tinyusb (1.7.6~1)
NOTICE: [2/5] espressif/mdns (1.1.0)
NOTICE: [3/5] espressif/tinyusb (e4c0ec3caab3d9c25374de7047653b9ced8f14ff)
NOTICE: [4/5] espressif/tinyusb (0.18.0~6)
NOTICE: [5/5] idf (5.5.1)
Describe the solution you'd like
It'd be very helpful if the logic of override_path could be generalised to allow any dependency in the project to be overridden by the top level manifest. i.e. something like:
espressif/esp_tinyusb:
version: "~1.7.6"
espressif/tinyusb:
override: true # New flag, means that any `espressif/tinyusb` component in the project will be replaced with this one
git: https://github.com/micropython/tinyusb-espressif.git
version: cherrypick/dwc2_zlp_fix
Describe alternatives you've considered
The only way forward that I can see would be to also make a repo with a fork of esp_tinyusb component, change it's tinyusb dependency, and then have my project manifest point to that.
I didn't try this as it was too fiddly.
Additional context
No response
I have checked existing list of Feature requests and I have provided enough information.
Related area
Components
Is your feature request related to a problem?
Recently in MicroPython we had the situation:
espressif/esp_tinyusbcomponent in our project viaidf_component.yml.espressif/esp_tinyusbcomponent includes theespressif/tinyusbcomponent as a dependency.espressif/tinyusbcomponent (specifically, redirecting it to a branch in a github repo).Our
idf_component.ymllooks something like:I tried explicitly changing it to something like:
Component manager sees both components, but ultimately the version added as a dependency of
esp_tinyusbreplaces the first one (without any error or warning printed):Describe the solution you'd like
It'd be very helpful if the logic of
override_pathcould be generalised to allow any dependency in the project to be overridden by the top level manifest. i.e. something like:Describe alternatives you've considered
The only way forward that I can see would be to also make a repo with a fork of
esp_tinyusbcomponent, change it'stinyusbdependency, and then have my project manifest point to that.I didn't try this as it was too fiddly.
Additional context
No response
I have checked existing list of Feature requests and I have provided enough information.