PlatformIO Community

Library version/revision identification issue

Hello,

In the context of OpenMQTTGateway project we have found recently build errors regarding the BMP180 & RFM69 library, here is the message for the RFM69 lib:
UndefinedPackageVersion: Could not find a version that satisfies the requirement '4a6f77ad47' for your system 'windows_amd64':

Here is the library definition in platformio.ini file:
RFM69@4a6f77ad47

When I go to the library manager of PIO:
image

I do not see above the versions that are available on the github repository

If I replace :
RFM69@4a6f77ad47
by
RFM69
PIO find the library.

Do I miss something or is there something wrong?

PIO is behaving as expected, legal syntax is described in https://docs.platformio.org/en/latest/core/userguide/lib/cmd_install.html#cmd-lib-install. lib@version for referencing release versions, <repo>#tag for referencing commits or tags, but rfm69 has lib@tag.

1 Like

Sorry for that, indeed after correcting it to the appropriate syntax it is now working.

Thanks!!!

For information this syntax didn’t generated errors 5 days ago.

This is a known issue. We rolled out a new package registry (only back-end). The front-end will be announced later. We support now only SemVer compatible packages. We will update our docs soon how anyone can publish own packages. Also, we will introduce soon owner-based dependency support. You will be able to declare in lib_deps this

[env:myenv]
lib_deps = 
   owner/libname

The current PIO Core version does not support this syntax yet. However, the new registry has this information and much more.

Also, this syntax is not valid

Please use FULL Github path. Otherwise, new PIO Core 4.4 will look for a library in a new registry owned by :owner/:libname.

P.S: Thanks for using PlatformIO!

2 Likes

Seems like my hourra was too fast. It built ok on my local env but the CI is broken

***************************************************************

* Looking for RFM69.h dependency? Check our library registry!
*
* CLI > platformio lib search "header:RFM69.h"
* Web > https://platformio.org/lib/search?query=header:RFM69.h
*
***************************************************************
 #include <RFM69.h> //https://www.github.com/lowpowerlab/rfm69
 ^
compilation terminated.
*** [.pio/build/esp32dev-all/src/main.ino.cpp.o] Error 1
========================= [FAILED] Took 53.44 seconds ========================= 

With this definition

So I have removed on my local env #4a6f77ad47 and it find the library.
I have now into .[libraries] section:
rfm69 = RFM69

Could it be related to my first screenshot on which the version in library manager doesn’t match the ones in the RFM69 repository?

This change to fix the library manifest by adding an actual version: information in RFM69 was added by Ivan 1 hour ago in https://github.com/LowPowerLab/RFM69/pull/147, so it will take a short while for the library crawler to update PIO’s lib page.

1 Like

ok, thanks for the info

ok I will change it, thanks for pointing that

So much time earned thanks to your work, a great tool!

2 Likes

1.4.1 version has been released.

Thansk for the info,
I wasn’t able to catch the 1.4.1:

    Looking for RFM69 library in registry
    Conflict: More than one library has been found by request {"requirements": "1.4.1", "name": "RFM69"}:
    RFM69
    =====
    #ID: 92
    ARutomatically chose the first available library (use `--interactive` option to make a choice)
    FM69 library for RFM69W, RFM69HW, RFM69CW, RFM69HCW (semtech SX1231, SX1231H)

    UndefinedPackageVersion: Could not find a version that satisfies the requirement '1.4.1' for your system 'windows_amd64':
    Keywords: rf, radio, wireless, spi
      File "C:\users\flori\.platformio\penv\lib\site-packages\platformio\builder\main.py", line 168:
    Compatible frameworks: Arduino
        env.SConscript("$BUILD_SCRIPT")

So I ended up pointing to the short sha revision and it worked.

Could you cleanup an API cache via pio update and try again?

It worked after this command execution, thanks!