ex-aws / ex_aws

A flexible, easy to use set of clients AWS APIs for Elixir
https://hex.pm/packages/ex_aws
MIT License
1.28k stars 527 forks source link

Semver concerns #982

Closed epinault closed 1 year ago

epinault commented 1 year ago

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)

woylie commented 1 year ago

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.

epinault commented 1 year ago

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

bernardd commented 1 year ago

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.