Closed Noratrieb closed 2 years ago
Thanks for the report.
prometheus
is already following semver.
Latest 0.13.1
release is compatible with the previous 0.13.0
one.
The ones before had some public-API changes which correctly resulted in semver breaks. Changelog only gives quick one-line summaries, but some improvements/bugfixes do affect the public API.
Overall, it is correct to consume (the current version of) this library as prometheus = 0.13
.
Ah ok, thanks for the quick response. (I would suggest you put the breaking changes clearly into the changelog then)
Prometheus, like all other crates, is supposed to be following cargo semver with regards to versioning.
prometheus
seems to not fully follow that model.Looking at the CHANGELOG.md, no breaking changes are made in
0.x
versions. But cargo treats0.x
changes as major changes and does therefore not unify two versions like0.13.0
and0.14.0
. This causes downstream crates ofprometheus
to use bad depedency specifiers likeprometheus = "0"
. This is bad because it behaves similar toprometheus = "*"
, allowing breaking changes to happen (see vmalloc/venta#1).It would be nice if
prometheus
started following cargo semver, by either only releasing point releases with new features, or go to1.0.0
and follow the same model as now.