Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependencies not installed during "INSTALL ALL" libraries update #2505

Open
3 tasks done
per1234 opened this issue Sep 13, 2024 · 0 comments
Open
3 tasks done

Dependencies not installed during "INSTALL ALL" libraries update #2505

per1234 opened this issue Sep 13, 2024 · 0 comments
Labels
topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project

Comments

@per1234
Copy link
Contributor

per1234 commented Sep 13, 2024

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:

image

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:

image

🐛 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

  1. Select Sketch > Include Library > Manage Libraries... from the Arduino IDE menus to open the "Library Manager" view in the left side panel.

  2. Type EthernetWebServer in the "Filter your search..." field.

  3. Scroll down through the list of libraries until you see the "EthernetWebServer by Khoi Hoang" entry.

  4. You will see a drop-down version menu at the bottom of the entry. Select "2.0.2" from the menu.

  5. 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.

  6. Click the "INSTALL ALL" button in the "Install library dependencies" dialog.
    The dialog will close.

  7. Wait for the installation process to finish, as indicated by a notification at the bottom right corner of the Arduino IDE window:

    ⓘ Successfully installed library ...

    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:

    Downloading EthernetWebServer@2.0.2
    EthernetWebServer@2.0.2
    Installing EthernetWebServer@2.0.2
    Installed EthernetWebServer@2.0.2
    Downloading Functional-Vlpp@1.0.2
    Functional-Vlpp@1.0.2
    Installing Functional-Vlpp@1.0.2
    Installed Functional-Vlpp@1.0.2
    
  8. 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:
    Command Palette

  9. 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.

  10. Click the "INSTALL ALL" button in the library update notification.

  11. 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:

Downloading EthernetWebServer@2.4.1
EthernetWebServer@2.4.1
Installing EthernetWebServer@2.4.1
Replacing EthernetWebServer@2.0.2 with EthernetWebServer@2.4.1
Installed EthernetWebServer@2.4.1

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

depends=Functional-Vlpp, Ethernet_Generic

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

  • I searched for previous reports in the issue tracker
  • I verified the problem still occurs when using the latest nightly build
  • My report contains all necessary details
@per1234 per1234 added topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project labels Sep 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project
Projects
None yet
Development

No branches or pull requests

1 participant