Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Distinguish between requirements for distribution authors and cpan clients #11

Open
mauke opened this issue Apr 29, 2023 · 1 comment
Open

Comments

@mauke
Copy link

mauke commented Apr 29, 2023

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
Copy link
Member

Leont commented Apr 30, 2023

That is a good point, we should clarify this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants