Perl-Toolchain-Gang / cpan-static

Static install specification for CPAN distributions
13 stars 3 forks source link

Distinguish between requirements for distribution authors and cpan clients #11

Open mauke opened 1 year ago

mauke commented 1 year ago

The spec currently describes requirements (using terms like must, may, etc.), but some sections do not say who these requirements apply to. It's all passive voice.

For example, the spec says a valid Build.PL or Makefile.PL "must be present as a fallback". This looks like an authoring requirement, but is it? Or does it mean a cpan client must generate a Makefile.PL if none exists? Or does it mean a cpan client must check for the presence of such a file and error out if it isn't there?

Then: "It may be copied verbatim to from META.json." Does this mean an author should cp META.json Makefile.PL before creating a distribution tarball, or does it mean the cpan client should overwrite the existing Build.PL/Makefile.PL with data from META.json?

Then: "This action must be done during configure-time." What action is meant here? The "must be present" thing? That's technically not an action, but maybe it means "the Build.PL/Makefile.PL file must be present at configure time"? Or does it refer to the copying action, cp META.json Makefile.PL? But that's an optional action ("may"). Why is it now an absolute requirement ("must")? Or does it refer to the immediately preceding sentence of "The same may be done for MYMETA.yml/META.yml"? That's also optional (and the "may" part isn't even bolded).

Leont commented 1 year ago

That is a good point, we should clarify this