Dependencies not installed during "INSTALL ALL" libraries update #2505
Labels
topic: code
Related to content of the project itself
type: imperfection
Perceived defect in any part of project
Describe the problem
Arduino libraries may have dependencies on other libraries. The library developer may specify these dependencies in the library metadata. When you use Library Manager to install or update a library, Arduino IDE displays a dialog that offers the installation of the dependencies in addition to the library:
In addition to being displayed on initial installation of a library, the dialog is displayed on updates because the set of dependencies can change from one version of the library to another.
Arduino IDE periodically checks whether newer versions of any of the installed libraries are available. If so, it displays a notification that offers to update them:
🐛 If the user clicks the "INSTALL ALL" button in the library update notification, the outdated libraries are updated as expected, but dependencies of the updated libraries are not installed.
To reproduce
Select Sketch > Include Library > Manage Libraries... from the Arduino IDE menus to open the "Library Manager" view in the left side panel.
Type
EthernetWebServer
in the "Filter your search..." field.Scroll down through the list of libraries until you see the "EthernetWebServer by Khoi Hoang" entry.
You will see a drop-down version menu at the bottom of the entry. Select "2.0.2" from the menu.
Click the "INSTALL" button at the bottom of the entry.
An "Install library dependencies" dialog will open, offering the installation of the EthernetWebServer library's Functional-Vlpp dependency.
Click the "INSTALL ALL" button in the "Install library dependencies" dialog.
The dialog will close.
Wait for the installation process to finish, as indicated by a notification at the bottom right corner of the Arduino IDE window:
If you examine the contents of the IDE's "Output" view, you will see that, in addition to version 2.0.2 of the EthernetWebServer library, the Functional-Vlpp library was installed, as expected:
Press the Ctrl+Shift+P keyboard shortcut (Command+Shift+P for macOS users) to open the "Command Palette".
A menu will appear on the editor toolbar:
Select the "Arduino: Check for Arduino Updates" command from the menu.
ⓘ You can scroll down through the list of commands to find it or type the name in the field.
An "Updates are available for some of your libraries." notification will appear at the bottom right corner of the Arduino IDE window.
Click the "INSTALL ALL" button in the library update notification.
Wait for the update process to finish.
If you examine the contents of the IDE's "Output" view, you will see that the EthernetWebServer library was updated as expected:
However, a new dependency on the Ethernet_Generic library was introduced after the time of the EthernetWebServer@2.0.2 that was updated from, and that dependency was not installed:
https://github.com/khoih-prog/EthernetWebServer/blob/v2.4.1/library.properties#L11
Expected behavior
Dependencies are automatically installed when the user performs an "INSTALL ALL" libraries update.
Arduino IDE version
1ec0a8c
Operating system
All
Operating system version
Any
Additional context
Workaround
Click the "INSTALL MANUALLY" button in the libraries update notification, then update each of the libraries via Library Manager. The dependencies installations will be offered as usual.
Issue checklist
The text was updated successfully, but these errors were encountered: