Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Require smaller components to reset? #14

Open
tfausak opened this issue Dec 29, 2016 · 3 comments
Open

Require smaller components to reset? #14

tfausak opened this issue Dec 29, 2016 · 3 comments

Comments

@tfausak
Copy link

tfausak commented Dec 29, 2016

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.

@phadej
Copy link
Collaborator

phadej commented Dec 29, 2016

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.

@ekmett
Copy link
Member

ekmett commented Dec 29, 2017

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
Copy link
Member

ekmett commented Dec 29, 2017

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants