For the next League URI major version I will merge the uri and the uri-components packages but how should the merge occurs:

Should I keep the Components subnamespace or get rid of it completely 🤔 .

Keeping it reduces BC break but then postpone to the next major version some changes.

Removing the Component namespace adds a bigger BC break BUT simplify greatly the package usage for newcomers 🤷 So should I

Keep the subnamespace
100%
Get rid of it
0%
Either way I do not care
0%
Poll ended at .
@nyamsprod what about declaring aliases to ease the BC? So that the classes are reachable both from the old and the new namespace, at least for a while.
@alessandrolai the middleground may be keeping the Components subnamespace but BC break in the fact that all the interfaces are completely removed and no longer supported. Because outside of my package I do not think anyone will ever implement them so they are practically useless ... most not all of the interfaces
@nyamsprod aren't the interfaces still useful for mocking purposes?
@alessandrolai Most if not all classes are Value Objects ... I see no reason or added value in mocking a value object. And the real contract is the RFC not a PHP interface which will never fully represent the RFC. at this point you it would even be a better choice to have marker interfaces with 0 method attached to them.