TomerAberbach commented on PR #619:
URL: 
https://github.com/apache/httpcomponents-client/pull/619#issuecomment-2731261012

   Hey folks, I'm a software engineer at [Stainless](https://stainless.com). We 
generate Java/Kotlin SDKs and they all use `MultipartEntityBuilder` from this 
library.
   
   I was just made aware of this change. I don't agree with a fixed boundary 
being the default behavior, but putting that aside, does this PR change the 
default behavior in a non-major version bump? It seems like a clear breaking 
change to me.
   
   If this will not be associated with a major version bump, then we're going 
to have a serious problem. The SDKs will be stuck between the following two 
choices:
   
   1. Bump `httpcomponents-client` to the new version so that I can call 
`withRandomBoundary()` to guarantee a valid boundary
      - The problem with this is that [Maven dependency 
mediation](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html)
 may still cause an older version to be chosen (e.g. if the end-user of the SDK 
is using another version of `httpcomponents-client` directly or indirectly). In 
that case, the SDK will began crashing with `NoSuchMethodError` because 
`withRandomBoundary()` will not exist in that version. So really, I can't 
upgrade to this new version until it's been out for quite a while, unless I 
want to force all end-users to upgrade too, which is arguably a breaking change 
to my SDK.
   
   2. Don't bump `httpcomponents-client` to the latest version
      - The problem with this is that the behavior is changing in this new 
version and again, because of Maven dependency mediation, I have no control 
over which version my end-user ends up using. But because I didn't bump the 
version, I can't call `withRandomBoundary()`. So I can't guarantee the 
particular behavior I want for the SDKs.
   
   Technically I could use reflection to look up at runtime whether 
`withRandomBoundary()` exists, and call it if it does, but I would really like 
to avoid those kinds of hacks.
   
   ---
   
   So with all that being said, if you're not going to revert this PR, can you 
at least release this as a major version bump? I think it would be the 
responsible thing to do to set expectations around which versions of this 
library are backwards compatible with each other.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to