With Arduino IDE 2.3.4, I can install a .zip library using Sketch > Include Library > Add .Zip Library. Let's say the library, Foo, has a library.properties file with version=1.0.2. If I try to update this library with a new .Zip library, version=1.0.3 in the properties file, using the same Sketch > Include Library > Add .Zip Library, I get the following error:
Error: 13 INTERNAL: Library install failed: moving extracted archive to destination dir: Library Foo is already installed, but with a different version: Foo@1.0.2
I was expecting that the Arduino IDE would replace the older version with the new one. Is there anything I might be doing wrong?
I know I can manually remove the old version from the Library directory before installing the new one. But I was hoping there was a more direct way.
No need to re-install, simply go to the Library Manager and click the Update beside the library. The easiest way is to select all libraries needing updates (Type=Updateable). If you have auto-update enabled, it should have already prompted you to do an update.
@sonofcy Thanks for your reply. I just looked in the Library Manager, but when a library is installed from a local .zip file, it doesn't seem to appear?
I just tested it and a zip library DOES appear, you may need to stop/start the IDE and/or wait for the IDE to refresh it's library manager display but I removed a 3rd party lib and saw it disappear in library manager, then copied it back and again after a bit of time and stop/start the IDE it showed up.
Here are two versions of a test library that show the problem. Include the version 1.1.0 followed by version 1.1.1. Foo 1.1.0.zip (8.2 KB) Foo 1.1.1.zip (8.3 KB)
I just proved it works. Your test won't work because neither library has a valid properties in that there is no github reference.
IF your point is a user (non github) library is updated, then of course it will not be updated, you are totally on your own. That is not a bug.
Libraries that are either Arduino maintained, or approved library authors maintained with valid library.properties then they will update automatically.
However, a local .zip library without a library.properties file works as I would expect. The Arduino IDE prompts you about overwriting an existing version when you try to install a new library with an existing name. However, if the library has a library.properties file with a version in it, the IDE fails with an internal error. It seems like this behavior could be improved.
I am not an Arduino employee, so I suggest you make your case to the appropriate place.
My personal opinion is there is something wrong (incomplete) with the library.properties file so it should fail. If I could find where the Arduino doc is re 'How to create an official library', I would probably know why, but I don't know so can's say.
Good luck.
I am not positive, but maybe github? https://github.com/arduino/arduino-ide
Click Issues, then click green button on the right side.
There are 542 open issues.