Portenta Example Library: Release Updates not showing?

@pert

Can you suggest a link for information about setting user made libraries to update and show all releases using the official Arduino Library site? I know I am doing something wrong, but finding how to do it correct is difficult.

Anytime I Google "Arduino Libraries" I get info about Arduino Libraries. I have my Portenta Library (portenta-pro-community-solutions) working with the official library manager, but I can't figure out how to add new releases. On my github I make a new release and update my library.properties, but it never seems to get registered with the Library manager. Any suggestions?

image

Loving the simplicity of image pasting of the new forum!

Hi @jerteach. The problem is here:
https://github.com/hpssjellis/portenta-pro-community-solutions/blob/0.3.0/library.properties#L2

version=0.2.0

When you did this:

you got the order backwards. The procedure should be:

  1. Increment the version value in library.properties.
  2. Create a release or tag.

The unit of the Library Manager index is Git tags. The indexer checks out the repository to each tagged state and then runs a validation process. Only if the validation is passed is the library release added to the index. One of those validation checks is whether the release version, as specified by the library.properties version value, is already in the index. So it checked out your 0.3.0 tag, but then saw that the version was specified as 0.2.0 and that there was already a 0.2.0 release of the library in the index.

It might be confusing because we often use version numbers for tag names, but the Library Manager indexer completely ignores the actual name of the tag. It could be named foobar for all the indexer cares. All metadata for the Library Manager index comes from the library.properties file.

So you have two options to distribute the latest version of your library:

  • Create a new release. Although not required by the indexer, since there is not yet a 0.3.0 version in the index, I would still recommend bumping the library.properties version value before making the release to avoid any confusion for the visitors to the repository when they discover that the version of the library tagged as 0.3.0 is not the same as the 0.3.0 release in Library Manager.
  • Redo the existing release. This is not considered best practices in repository management, since a release is intended to be an immutable point in the project's history, but you're the boss of your project and best able to evaluate whether it is problematic.
1 Like

LOL, I understand now. Thank you.

You're welcome. I'm glad to see 0.4.0 has passed the gauntlet.

I forgot to answer your question! It is here:
https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

1 Like

@pert I would like to blog about making this Portenta Pro Community Solutions library as I add more sensors, actuators, communication and Machine Learning examples. What is the most Arduino acceptable way to do this that would get viewed by Portenta users? Just make a topic in this forum about it or is there another method?

Way cool! The forum is generally a discussion format, so I guess the answer might depend on whether you intend to have a two way conversation. When I hear "blog", I think of more of a one-way sharing of knowledge, with some limited feedback in the comments section. That said, we do get some more "blog-style" posts in the curated #using-arduino:introductory-tutorials and #community:exhibition-gallery forum categories.

Much more "bloggy" is the Arduino Project Hub.


To circle back to our previous discussion here. Since the time we last talked Arduino has released a useful new thing for library maintainers. As explained here, there is now a dedicated web page for every library in the Library Manager index where the indexer logs are published. The URL of yours is here:
https://downloads.arduino.cc/libraries/logs/github.com/hpssjellis/portenta-pro-community-solutions/

2021/06/12 21:58:38 Scraping https://github.com/hpssjellis/portenta-pro-community-solutions.git
2021/06/12 21:58:38 Checking out tag: 0.1.2
2021/06/12 21:58:38 Release portenta-pro-community-solutions:0.2.0 already loaded, skipping
2021/06/12 21:58:38 Checking out tag: 0.2.0
2021/06/12 21:58:38 Release portenta-pro-community-solutions:0.2.0 already loaded, skipping
2021/06/12 21:58:38 Checking out tag: 0.3.0
2021/06/12 21:58:39 Release portenta-pro-community-solutions:0.2.0 already loaded, skipping
2021/06/12 21:58:39 Checking out tag: 0.4.0
2021/06/12 21:58:39 Release portenta-pro-community-solutions:0.4.0 already loaded, skipping

This can be useful for investigating the sort of problem you reported here, where a library release is not appearing in the Library Manager index. Due to the way the system works, they are currently pretty subtle in communicating the issue in this particular case (the clue is the :0.2.0 version identifier suffix being shown after checking out the repository's 0.3.0 tag). I have some ideas for how to improve on that. The output when the release is rejected for other reasons is much more clear.

2 Likes

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.