How libraries get to the IDE from Github?

So I create a library and make a github repository for it.

Now, once it’s complete, with library.properties and all..

I setup a release for it in github 1.0.0

Now I do the edit library repository to list it.

Do the pull..

And my library is on the IDE.

Cool!

Now, I’m messing about with my code. I change a few things in my library’s github repository. Does the IDE stuff pull in these changes automatically? Even though I have NOT setup a new release for it on Github? Is it the releases that triggers it? Or Just that the repository has been changed that triggers it?

-jim lee

No and no.

1 Like

Hi @jimLee.

There is a scheduled job set up on Arduino's server that periodically runs the libraries-repository-engine tool's sync command.

For each of the libraries in the Arduino Library Registry, libraries-repository-engine performs the following procedure:

  1. Fetch the library repository from the URL specified in the registry.
  2. Check out each of the Git tag in the library repository.
  3. Read the library.properties metadata file.
  4. Check to see if there is already an entry in the Library Manager index for that the version number specified by the version metadata property. If so, discontinue any further processing of the current tag and go to the next tag.
  5. Check to see if the library meets all the requirements for inclusion in the Library Manager index. If not, discontinue any further processing of the current tag and go to the next tag.
  6. Add an entry to the Library Manager index for the library release.

The Arduino IDE Library Manager is populated from the data provided by the index file. Arduino IDE periodically downloads a fresh copy of the index from the Internet. After that happens, Library Manager will contain the new library releases (including entirely new libraries) that were added to the index by the last runs of the indexer job.

Git tags are the unit of release for Arduino Library Manager. The indexer system only looks at the library as it was at the tagged revision. So the changes you make in the library repository will only be available to users via Library Manager once you make the next tag.

GitHub releases automatically generate a Git tag, so you are welcome to use the GitHub release feature to make new releases of your library, or if you prefer you can use Git tags only.

Thank you for that explanation!

I’d been told that -any- changes to my library’s repository would trigger an update.

From what I read here, this is not the case. If I do not create the Git tag directly, updates will only triggered by Git releases. (Because they create the Git tag for me).

Thanks again!

-jim lee

You are welcome.

I confirm.