ex-aws / ex_aws

A flexible, easy to use set of clients AWS APIs for Elixir

Home Page:https://hex.pm/packages/ex_aws

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Semver concerns

epinault opened this issue · comments

  • Do not use the issues tracker for help or support (try Elixir Forum, Slack, IRC, etc.)
  • Questions about how to contribute are fine.

First thank you for your work on the library.

So I see the new version of ex_aws was push as 2.5 with the following

v2.5.0

* \[Breaking\] Bump minimum elixir version to 1.11
* Replace retired HTTPotion with Req as default web client

First one is a breaking change so should likely be a major release since it is not backward compatible possibly

the 2nd one is even more a problem as Req does not use the same adapter underlying than HTTPotion (Finch vs hackney I believe) . there are some risk of breaking change on how pull, and configurations are done. Seems like another breaking change

based on https://semver.org/, it seems to me that a major would have been a bit of a better choice? While the API may not have changed, the actual client as a default might behave very differently in production (performance, timeout, configuration, etc..) . It might be backward compatible from the internal api point of view, but if feels that there is a risk still (pool will be have differently too)

Regarding HTTPotion, it seems like it was only changed in the tests. Otherwise, the default HTTP client still seems to be Hackney. The changelog entry is a bit misleading.

Ah gotcha . Yea that's quite misleading . Might want to update the change log then as it for us quite a bit concerned with the changes

I don't really agree that no longer supporting a deprecated version of Elixir should be a new major version number (though I understand the point of view). The fact that the language version itself is no longer receiving security patches means that upgrading that should be a much higher priority than sticking to the latest version of ex_aws. And on the other hand, if we did increment the major version, bumping the minimum supported Elixir version to be the...minimum supported Elixir version (if you follow me) would mean a new major version every six months, which would be a bit silly.

More than happy to fix up the changelog, though - I'll tweak it shortly.