You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently Module::Build::Tiny is having three non-core dependencies (all released by myself). When I wrote Module::Build::Tiny, this organization made sense to me, now it increasingly doesn't anymore. I want to reorganize them, specially before I do proceed with Perl-Toolchain-Gang/Module-Build#25. I'd like to do this in one go, to minimize pain for packagers.
ExtUtils::Config
This abstracts away having an overridable configuration (e.g. --config arguments in Build.PL); it was originally taken out of Module::Build. Various other pieces of next-generation toolchaining that I wrote are also made EU::C aware (ExtUtils::Builder{,::Plan}, ExtUtils::HasCompiler, Devel::FindPerl, Dist::Build, ...) though most don't have a hard dependency on it.
ExtUtils::InstallPaths
This determines the install locations based on the system configuration (using ExtUtils::Config) and various arguments. This is quite essential to the core function of any install tool, and really no one wants to reimplement this.
ExtUtils::Helpers
This is a somewhat random bag of utility functions that have only one thing in common: you'll need pretty much all of them when writing an install tool. It's pl2bat functionality really should be deduplicated (it's the third copy, after pl2bat.pl and Module::Build; with some divergence), and split_like_shell is the only part of Helpers that I've used for non-installtool purposes.
What I want to do is (in order of surely a good idea to maybe):
Create a EU::PL2Bat module
This should be the back-end for all of pl2bat, Module::Build and ExtUtils::Helpers. This would enter core.
Merge EU::C an EU::IP in one dist.
I suspect it's going to be really uncommon to want to create a EU::C object outside of an install tool, and in any installtool (other than MM which does its own thing) you'd be using it anyway.
Create a ExtUtils::ShellLike
This will contain a split_like_shell and probably detildefy. It may contain more relevant functionality later
Possibly deprecate ExtUtils::Helpers?
Once all of this is done, the remains of ExtUtils::Helpers are small (and random) enough that it might not make sense to keep existing as a separate module. Question is, what should be done with it? With ExtUtils-InstallPaths (they're generally all used together)? Merged into Module-Build-Tiny (only current user)? Remain as an independent distribution?
Currently Module::Build::Tiny is having three non-core dependencies (all released by myself). When I wrote Module::Build::Tiny, this organization made sense to me, now it increasingly doesn't anymore. I want to reorganize them, specially before I do proceed with Perl-Toolchain-Gang/Module-Build#25. I'd like to do this in one go, to minimize pain for packagers.
This abstracts away having an overridable configuration (e.g. --config arguments in Build.PL); it was originally taken out of Module::Build. Various other pieces of next-generation toolchaining that I wrote are also made EU::C aware (ExtUtils::Builder{,::Plan}, ExtUtils::HasCompiler, Devel::FindPerl, Dist::Build, ...) though most don't have a hard dependency on it.
This determines the install locations based on the system configuration (using ExtUtils::Config) and various arguments. This is quite essential to the core function of any install tool, and really no one wants to reimplement this.
This is a somewhat random bag of utility functions that have only one thing in common: you'll need pretty much all of them when writing an install tool. It's pl2bat functionality really should be deduplicated (it's the third copy, after pl2bat.pl and Module::Build; with some divergence), and
split_like_shell
is the only part of Helpers that I've used for non-installtool purposes.What I want to do is (in order of surely a good idea to maybe):
This should be the back-end for all of pl2bat, Module::Build and ExtUtils::Helpers. This would enter core.
I suspect it's going to be really uncommon to want to create a EU::C object outside of an install tool, and in any installtool (other than MM which does its own thing) you'd be using it anyway.
This will contain a
split_like_shell
and probablydetildefy
. It may contain more relevant functionality laterOnce all of this is done, the remains of ExtUtils::Helpers are small (and random) enough that it might not make sense to keep existing as a separate module. Question is, what should be done with it? With ExtUtils-InstallPaths (they're generally all used together)? Merged into Module-Build-Tiny (only current user)? Remain as an independent distribution?
Feedback is most welcome (@ether, @ribasushi, @dagolden,@haarg, @shadowcat-mst).
The text was updated successfully, but these errors were encountered: