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

Bump version number to 5 #955

Merged
merged 1 commit into from
Dec 23, 2020
Merged

Bump version number to 5 #955

merged 1 commit into from
Dec 23, 2020

Conversation

RyanGlScott
Copy link
Collaborator

The next lens release will migrate to using the {Functor,Foldable,Traversable}WithIndex classes from the indexed-traversable package. As discussed in #951 (comment), this poses a challenge for downstream code that use instances of {Functor,Foldable,Traversable}WithIndex from indexed-traversable while also indirectly importing lens. This is because the code can succeed or fail to compile depending on what version of lens is picked in the build plan, even if there isn't a direct dependency declared against lens!

The best way to mitigate this possibility is to ensure that packages that depend on lens and define {Functor,Foldable,Traversable}WithIndex have appropriately tight version bounds on lens. At the time of writing, the most recent Hackage release is lens-4.19.*, so we could ensure that packages either declare < 4.20 or < 5. As it turns out, many packages in the Kmettiverse already declare < 5, so in order to avoid making more Hackage revisions than we absolutely need to, we have decided to just bump the version number to 5. In other words, we are bumping the "Kmett-major" version number. It's probably a good time to do this regardless, as there are enough breaking changes in the next release that it makes sense marketing-wise.

The next `lens` release will migrate to using the
`{Functor,Foldable,Traversable}WithIndex` classes from the
`indexed-traversable` package. As discussed in
#951 (comment), this poses a
challenge for downstream code that use instances of
`{Functor,Foldable,Traversable}WithIndex` from `indexed-traversable` while
also indirectly importing `lens`. This is because the code can succeed or fail
to compile depending on what version of `lens` is picked in the build plan,
even if there isn't a direct dependency declared against `lens`!

The best way to mitigate this possibility is to ensure that packages that
depend on `lens` and define `{Functor,Foldable,Traversable}WithIndex` have
appropriately tight version bounds on `lens`. At the time of writing, the most
recent Hackage release is `lens-4.19.*`, so we could ensure that packages
either declare `< 4.20` or `< 5`. As it turns out, many packages in the
Kmettiverse already declare `< 5`, so in order to avoid making more Hackage
revisions than we absolutely need to, we have decided to just bump the version
number to 5. In other words, we are bumping the "Kmett-major" version number.
It's probably a good time to do this regardless, as there are enough breaking
changes in the next release that it makes sense marketing-wise.
@RyanGlScott RyanGlScott merged commit 17f1b66 into master Dec 23, 2020
@RyanGlScott RyanGlScott deleted the lens-5 branch December 23, 2020 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant