Skip to content

Distinguish between requirements for distribution authors and cpan clients #11

@mauke

Description

@mauke

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions