pvp icon indicating copy to clipboard operation
pvp copied to clipboard

Require smaller components to reset?

Open tfausak opened this issue 9 years ago • 3 comments

For example, going from version 1.2.3 to 2.2.3 is fine. I think if you bump a component, all of the smaller components should reset to 0. That means 1.x.y becomes 2.0.0.

tfausak avatar Dec 29 '16 04:12 tfausak

I had a need where 0.1.x.y and 0.2.x.z have almost same API except single breaking change in API: former had own FromJSONKey and latter used aeson-1. As mentioned in the other issue, we don't connect "smaller-bigger" with "older-newer", it gives us flexibility.

phadej avatar Dec 29 '16 12:12 phadej

This actually would break the compliance of packages that adopt yyyy.mm.dd versioning, and simply don't release major versions more frequently than once a month.

This fell sharply out of favor, but we wound up with a bunch of stupidly high 3000.xx version numbers as a result of folks trying to recover from its prevalence in our community for a while.

It is a good convention to adopt that you should reset (or, as i'm partial to doing, completely omit) minor versions, but it seems an awkward requirement.

ekmett avatar Dec 29 '17 19:12 ekmett

For the record, transformers-compat has something like the same issue @phadej mentioned.

In my case I have to ship multiple patch releases with different flags to allow it to package selection to properly backtrack on older versions of cabal. Otherwise, the package simply can't automatically select the right flags.

So whenever I ship a new version I ship x.y.z.2, x.y.z.3, x.y.z.4 for transformers 2, 3 and 4 compatibility, respectively and it'll get worse with additional transformers versions.

ekmett avatar Dec 29 '17 19:12 ekmett