micronaut-projects / micronaut-core

Micronaut Application Framework
http://micronaut.io
Apache License 2.0
6.08k stars 1.07k forks source link

Consider extracting HTTP modules from Core #7970

Open dstepanov opened 2 years ago

dstepanov commented 2 years ago

Issue description

Now it's one of the biggest parts of the Core. It would be better to have it extracted to the own repo.

Modules included:

WDYT @micronaut-projects/core-developers ?

yawkat commented 2 years ago

Also the buffer-netty and websocket modules

However much of the http stuff is tested in the test-suite modules, how can we move that?

dstepanov commented 2 years ago

Partially move the test suite

melix commented 2 years ago

While I think about it, something to consider when we move modules out of core. Ideally they should also get their own groupId when publishing on Maven Central. However, changing the groupId means that older modules, which were not upgraded to latest Micronaut, may bring the old modules on classpath (e.g io.micronaut:micronaut-http) and therefore introduce a conflict. We could leverage Gradle's capability declarations to handle this automatically for Gradle, but for Maven, it probably means folks would have to introduce a bunch of excludes

yawkat commented 2 years ago

i dont think we have to support mixing major versions

alvarosanchez commented 2 years ago

We have already done something similar with micronaut-discovery-client. It was spun off core with its own group id (io.micronaut.discovery).

Micronaut 2.x BOM included both versions:

In Micronaut 3, the io.micronaut version was removed from the BOM.

In this case, we have to extract those modules into their own io.micronaut.http group id (io.micronaut is reserved for core) and introduce this new version in the Micronaut 4 BOM.

alvarosanchez commented 2 years ago

BTW, the spin-off was first made by using git subtree to extract the code into its own repo even with Micronaut 2.x. Initially, it had the original io.micronaut group id, but started to be released independently.

Which means we can extract HTTP modules at any time.

sdelamo commented 1 year ago

I will move this Micronaut Framework 5. We are too late for this now.

sdelamo commented 8 months ago

I assume we will need to move the http-client and server/client TCK modules into this new repository as well.

Probably management also.