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]
