Closed per1234 closed 2 years ago
@per1234 Thanks for posting this issue. There was a problem earlier this year that came to light around the repository name. The problem was that my library updates were not getting picked up by Arduino Libraries Manager because the library name in library.properties did not match the name listed in the Arduino library register repo.
So, I took out the space ' ' between PulseSensor and Playground. I think that having that space might be the problem.?
When I go to the Libraries Manager tool on Arduino, I do see the library there, and it is up to date with the latest version available. I'm not sure I understand what replacing the space in the libraries.properties would do, except it might get broken again?
I want to be cautious in accepting your pull request until I understand the consequences.
my library updates were not getting picked up by Arduino Libraries Manager because the library name in library.properties did not match the name listed in the Arduino library register repo.
The registered name is "PulseSensor Playground":
https://github.com/arduino/library-registry/blob/0c2b17fb97f7b473c9c997e46eccb10a6630011e/registry.txt#L1398 It is defined by the third of the pipe-separated fields:
https://github.com/WorldFamousElectronics/PulseSensorPlayground.git|Contributed|PulseSensor Playground
You can see this was the name the library was locked to during the original registration four years ago: https://github.com/arduino/library-registry/commit/1135c3b07c078db5449a33c917b25ca111ed9888
I do see the library there, and it is up to date with the latest version available.
It is actually not up to date. If you install the 1.6.0 release from Library Manager, you'll see the library.properties is missing this change contained in the v1.6.0
tag: https://github.com/WorldFamousElectronics/PulseSensorPlayground/commit/0826db6955ccb126df09b6ddc818a0b4a8552141
The reason is that the 1.6.0 release was made from the v1.5.2
tag (remember that the tag name is completely disregarded by the indexer):
https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/v1.5.2/library.properties#L2
version=1.6.0
Oh, wow. OK, so I was looking at the main branch of the libraries register, and it does not have that additional |Contributed|
portion.
Alright, I have made the change to the Playground, and created the release on github with an updated version number. It might take a minute to propagate to arduino.
I was looking at the main branch of the libraries register
That list is only the repository URLs. The rest is determined automatically when the submission is accepted. There is no requirement for the name
value to match the repository name and the repository name has no special significance in the Library Manager system.
I have made the change to the Playground
Excellent! I'll close this as superseded by https://github.com/WorldFamousElectronics/PulseSensorPlayground/commit/10b028bfed9231707b8fb2bce2f5ed062eb1ff78
It might take a minute to propagate to arduino.
The indexer job runs hourly. However, there can be some additional delay as the release propagates through the CDN and local cache to become available for installation via Library Manager. So we give a conservative estimate of one day's time for the release to become available to the users.
Libraries are locked to the
name
value specified by the library.properties metadata file in the release at the time of the Library Manager submission.Any release with a different name is rejected by the Arduino Library Manager indexer. The previous name change caused the 1.6.0 release of the library to be rejected.
You can see this in the library's logs page here:
http://downloads.arduino.cc/libraries/logs/github.com/WorldFamousElectronics/PulseSensorPlayground/
Reference: https://github.com/arduino/library-registry/blob/main/FAQ.md#update-requirements
It is possible to request Arduino for a library name change. However, I saw from https://github.com/WorldFamousElectronics/PulseSensorPlayground/pull/149 that the sole motivation for the name change was that releases were not picked up by Arduino Library Manager. The intended fix actually had the opposite of the intended result, so it might as well be reverted.
I didn't find the "v153" release mentioned by the PR message of https://github.com/WorldFamousElectronics/PulseSensorPlayground/pull/149 in the repo, but I do see a common problem with some of the other releases in the logs, so I suspect it was the same for 1.5.3.
I'll explain that problem, using the 1.4.10 release as the most straightforward example.
The problem is shown here in the logs:
Unfortunately, the logs don't communicate about this particular thing very well, but what this tells us is that the
version
value in thelibrary.properties
metadata file was not updated before creating the1.4.10
tag (note that the indexer checked out tag1.4.10
, only to find the release version was1.4.9
).You can see it here:
https://github.com/WorldFamousElectronics/PulseSensorPlayground/blob/1.4.10/library.properties#L2
Even though Git tags are the unit of release for the Arduino Library Manager, all versioning is done according to the
version
field of thelibrary.properties
file. For this reason, the indexer will reject any tag that has the same value in itsversion
field as a release already in the index.So just make sure to always update the
version
field in thelibrary.properties
file before making a release.