Arguably library dependencies do not always need to be specified using a precise version number, but instead the latest compatible release can be selected. Thus instead of specifying 1.3.5
as the version, the dependency can be declared to match the latest version compatible with the major version (Ivy/Gradle: [1.0,2.0[
, Maven:[1.0.0,2.0.0)
), or the latest version compatible with the minor version (Ivy/Gradle: [1.3,1.4[
, Maven:[1.3.0,1.4.0)
).
However using non-specific versions can make with rapidly iterating version numbers can yield non-repreducable builds