Make engine logs clearly communicate when a release was rejected due to forgotten version
bump
#294
Labels
criticality: medium
Of moderate impact
topic: code
Related to content of the project itself
type: enhancement
Proposed improvement
Describe the request
Background
libraries-repository-engine will reject any release that does not have a unique version number. We regularly receive support request/bug reports from library maintainers whose release was rejected due to them having forgotten to update the
version
property in theirlibrary.properties
metadata file before making a release.The situation is inherently challenging to understand due such understanding being dependent on the fairly complex concept that, although the unit of release is the Git tag, the
version
metadata property is the sole source of versioning information (the name of the tag has no significance).Request
🙂 Print a clear explanation of the cause in the logs when a release is rejected due to having a non-unique version number.
Describe the current behavior
The logs do not effectively communicate about this situation. For example:
https://downloads.arduino.cc/libraries/logs/github.com/hpssjellis/portenta-pro-community-solutions/
The code that rejects tags with a non-unique
version
value is the same as the code used to skip releases that were already indexed. So this "already loaded, skipping" message is normal and expected in every logs entry (except for the ones from the very first run after the library's addition, which only exist for the hour following that run). It is only the somewhat cryptic:0.2.0
that provides the clue as to what happened.🙁 Most library maintainer will not notice this, or not understand the significance.
libraries-repository-engine version
011349f
Additional context
A potential solution I considered was enabling Arduino Lint's rule
LP022
when in the "ARDUINO_LINT_LIBRARY_MANAGER_INDEXING
" mode used by libraries-repository-engine:This would be trivial to implement and no changes at all would be required in the libraries-repository-engine codebase.
However, this is not a 100% solution because the tag name does not have any significance at all to the engine. For example,
LP022
will pass for the0.2.0
tag of thehpssjellis/portenta-pro-community-solutions
repository, when in fact the engine rejected this tag because for some reason the prior0.1.2
tag had theversion
value of0.2.0
! The 100% correct results can not be achieved by Arduino Lint and would instead need to be implementedin the libraries-repository-engine codeRelated
library.properties
Seeed-Studio/Seeed_SHT35#12Issue checklist
The text was updated successfully, but these errors were encountered: