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
In some discussion in #distzilla on irc.perl.org, we realised something:
That you could potentially support at very least doing
cpanm --installdeps .
With just a META.json, and no *.PL
Presently, if all you have is META.json, cpanm --installdeps . can only go as far as installing configure_requires, because it relies on an installer being present to generate MYMETA.json and resolve subsequent dependencies.
However, it seems possible to get useful behaviour, as long as:
There is no Build.PL / Makefile.PL
META.json says "dynamic_config": "0"
Then you can safely assume that the dependencies in META.json will not change in the production of MYMETA.json, and in the absence of an installer, simply assume META.json as a viable drop in.
And this would at least render a useful behaviour from --installdeps
You could possibly even get more useful behaviour, and potentially even install distributions that didn't explicitly ship with an installer script, assuming the above conditions are true, with
Though there's a degree of debate in my mind how "safe" that is to do, especially if for example, META.json has anything at all in configure.requires
If configure.requires however only contains Module::Build::Tiny, then it is indeed safe to do the above invocation in the absence of a Build.PL
And I guess by proxy you could attempt some sane behaviour by autovivifying a configure script as long as configure.requires contained onlyExtUtils::MakeMaker or Module::Build, though I'm not 100% sure on the former.
Maybe an experimental option like --allow-no-installer would be required to trigger this behaviour.
The text was updated successfully, but these errors were encountered:
In some discussion in
#distzilla
onirc.perl.org
, we realised something:That you could potentially support at very least doing
With just a
META.json
, and no*.PL
Presently, if all you have is
META.json
,cpanm --installdeps .
can only go as far as installingconfigure_requires
, because it relies on an installer being present to generateMYMETA.json
and resolve subsequent dependencies.However, it seems possible to get useful behaviour, as long as:
Build.PL
/Makefile.PL
META.json
says"dynamic_config": "0"
Then you can safely assume that the dependencies in
META.json
will not change in the production ofMYMETA.json
, and in the absence of an installer, simply assumeMETA.json
as a viable drop in.And this would at least render a useful behaviour from
--installdeps
You could possibly even get more useful behaviour, and potentially even install distributions that didn't explicitly ship with an installer script, assuming the above conditions are true, with
Though there's a degree of debate in my mind how "safe" that is to do, especially if for example,
META.json
has anything at all inconfigure.requires
If
configure.requires
however only containsModule::Build::Tiny
, then it is indeed safe to do the above invocation in the absence of a Build.PLAnd I guess by proxy you could attempt some sane behaviour by autovivifying a configure script as long as
configure.requires
contained onlyExtUtils::MakeMaker
orModule::Build
, though I'm not 100% sure on the former.Maybe an experimental option like
--allow-no-installer
would be required to trigger this behaviour.The text was updated successfully, but these errors were encountered: