On Sunday, 23 January 2022 at 14:53:21 UTC, Adam Ruppe wrote:
On Sunday, 23 January 2022 at 14:33:26 UTC, Paul Backus wrote:
Absolutely-no-breakage-ever is basically the C++ approach, and
I have already explained why I think it's a bad idea, though I
recognize that reasonable people can disagree on this point.
My view is it isn't worth shipping mixed versions at all.
I'm against gratuitous breakage; it should actually provide a
benefit, and I'm against dead-end breakage; it should provide a
migration path.
But if there's a path to a benefit, people need to make a
choice: take that path, or stop updating. Any middle ground is
temporary at best anyway.
The main benefit of having multiple versions available in
separate namespaces is that it allows them to coexist in the same
project, which means that users can migrate their code
incrementally from one to the other.
In principle you could also accomplish this with a versioned dub
package and mangle-prefix [1], but progress on that initiative
seems to have stalled out.
[1] https://github.com/dlang/dmd/pull/13115