On Tue, 2019-12-17 at 23:32 -0800, Ryan Schmitt wrote:
> It sounds like these changes aren't going to happen, but I'm going to
> press
> the point anyway because I think this is important.
> 
> > I am not sure I can agree with that. Usually one should care about
> > the
> > top level library such as HttpClient or HttpAsyncClient only. One
> > needs
> > to manually override their HttpCore dependency only in case of some
> > severe bug in core components.
> 
> HttpCore includes both :httpcore5-h2 and :httpcore5-reactive, which
> are
> brand new, highly complex components that are much less stable than
> :httpcore5 (which is not that stable in the first place). By your own
> admission, I could have written my entire SDK integration using just
> these
> three components. That's a guarantee that HttpCore will *not* be a
> mature,
> slow-moving product any time soon, and that users will need to
> explicitly
> track both versions if we persist in this scheme.
> 
> Let's not kid ourselves: HttpCore is going to be plagued with serious
> bugs
> for years, and we will regularly put out unusably defective releases.
> The
> complexity of HTTP/2 is all but unmanageable. I've seen it myself
> working
> with Netty, which *still* hasn't stabilized its high-level HTTP/2 API
> after
> all this time and effort.
> 

Since you mentioned Netty I will have to say that. Not being a big fan
of Netty in general for all sorts of reasons I think what they do with
their unified component versioning is pretty close to cheating. They
throw in a completely new codec such as HTTP/2 into their stable branch
and once of a sudden that codec looks stable and GA to a casual
bystander, though in fact it is not. I am not quite comfortable doing
the same.


> What
> resource exactly do we manage to conserve by releasing three jar
> files at a
> time, instead of six? The contradiction, by the way, is quite glaring
> here:
> why are :httpcore5, :httpcore5-h2, and :httpcore5-reactive unified
> and
> version aligned with each other, while HttpCore and HttpClient are
> decoupled? It makes no sense.
> 

The primary reason for core and client being separate projects is a
different scope and target audience most of all. 

By the way I would be open to having a separate release cycle for
httpcore5-h2. We can still release httpcore5 as GA and keep httpcore5-
h2 in BETA longer.


> > 
> Right now, to debug my sporadically failing integration tests in
> HttpClient, I want to add debug logging to various places in
> HttpCore, and
> add other types of debugging code as well. Every time I change the
> debugging code, I have to locally simulate *an entire release cycle*
> of
> HttpCore, instead of just making all of these changes through my IDE
> in a
> single workspace.

I do not know what IDE you use but IntelliJ IDEA makes it completely
effortless to run SNAPSHOT versions of multiple modules within the same
project. 

Again, this sounds like a blonde vs brunette type of debate.

Oleg


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to