StatsKit.jl icon indicating copy to clipboard operation
StatsKit.jl copied to clipboard

Semver for Stats.jl

Open KristofferC opened this issue 7 years ago • 4 comments

Since Stats.j reexport the full API of all its dependencies, any new feature of any dependency warrants a new minor release of Stats.jl. This is likely only manageable if Stats.jl upper bounds every dependency to only allow patch upgrades. At regular intervals in time, a new minor release of Stats.jl is released whereby the minor version of dependencies are allowed to upgrade but are then locked to only allow patch releases again.

KristofferC avatar Oct 23 '18 13:10 KristofferC

Tricky issue. So basically that would require manually adjusting Stats.jl everytime we tag a minor version of a dependency... And if we forget to do that, people which have installed Stats.jl won't be able to upgrade the deps.

I'd be tempted to ditch all versioning issues and keep Stats.jl at 0.0.x. Then people who care about versions would depend on the versions of dependencies. Anyway packages should generally depend on specific packages rather than on Stats.jl.

nalimilan avatar Oct 26 '18 20:10 nalimilan

I'm of two minds about this. On the one hand, "true reproducibility" for projects comes from the Manifest.toml file, which will have the versions of packages that were actually installed. On the other, any package operation that updates packages (e.g., developing another package) will also update the packages that StatsKit includes. Of course, as @nalimilan said, people who care about specific versions of packages will just pin those packages. But I worry that users could discover (too late) that they care about specific versions of packages, and not realize that they should have pinned those. So it seems like a bit of a footgun for the casual user.

kleinschmidt avatar Feb 25 '19 15:02 kleinschmidt

That being said, a lot of confusion could be avoided by printing a warning at install, build, or load time for StatsKit.jl, that explains that StatsKit doesn't track versions of the packages it installs and to pin those if you need to guarantee continued compatibility

kleinschmidt avatar Feb 25 '19 15:02 kleinschmidt

That would be annoying IMHO. It would be quite weird for users who just want to use the package to get a warning about pinning versions (they may even not understand what's the point).

nalimilan avatar Feb 25 '19 17:02 nalimilan