On Fri, May 10, 2019 at 06:49:44AM -0400, Matijs van Zuijlen via RT wrote:
Show quoted text> <URL:
https://rt.cpan.org/Ticket/Display.html?id=129506 >
>
> Thanks for your report. I'm willing to do this if there's no other
> way but first I have some questions:
>
> - Adding version info to what are essentially internal modules was a
> mistake. Is it impossible to correct this?
One would have to remove all versioned distributions of those
modules from CPAN to prevent these from replacing unversioned
ones. Not impossible but perhaps undesirable if old versions
are kept for the sake of late adopters of substantial changes.
Show quoted text> - Why do installers not take the package version into account, rather
> than versions of individual modules?
At runtime, perl will only see version numbers as they are stored
in modules, not being able to trace them back to distributions.
Thus the comparison of what is locally installed to what is in
a particular distribution can only be done at module level.
Show quoted text> - What happens if these modules go away entirely? How will the system
> respond to that?
Platforms with older versions of these modules might "upgrade"
to the latest distribution that still had them. They could still
install later versions of your distribution on top of that, though.
Killing modules for good is not trivial, as there is no standard
mechanism to make platforms uninstall an old module without
a replacement. You could create new empty module versions and
eventually put them in a separate distribution. Upgrades to
that distribution would not interfere with future versions of
the original distribution, nor would they leave lots of dead
code on the target systems.
Over time, your deprecated modules would phase out, as nobody
intentionally would name them as a prerequisite, and new
installations would deploy your module suite without them.
Maybe it is time to persuade the tool chain gang to address more
life cycle related issues in distribution metadata and tools.
This is a tricky business and not made any easier by our
devotion to maintain backwards compatibility wherever possible.
-Martin