Summary of CPAN Meta Spec public discussions

Reading time: 3 minutes

The public discussion period for CPAN Meta Spec Proposals is now closed. I would like thank everyone who contributed proposals, feedback and patches. We received 34 proposals, which resulted in over 340 discussion emails on the cpan-workers list from 23 people.

Of the 34 proposals, 18 had some degree of consensus and at least a rough draft patch (or git branch) to use to revise the spec. Two more proposals had patches but one was controversial and the other clarifies an existing field in lieu of adopting the proposal.

All of these will now be merged into a single draft 2.0 META spec and circulated to the working group for review and refinement. The working group will finalize the new specification by December 1, at which point it will be released as final and work will begin to implement the spec in the CPAN toolchain and other downstream consumers.

Again, thank you to all who contributed. A summary of the results is provided below. All of the proposed patches are also available in branches at the CPAN Meta Spec github repository

Summary of Results 🔗︎

Some consensus and patch written:

    1. Formally switch to “YAML Tiny” (patch by Ricardo Signes)
    1. Deprecate YAML Tiny dialect for JSON (patch by Ricardo Signes)
    1. Formalize allowed version number formats (patch by David Golden)
    1. Data structures (examples in spec), not YAML (patch by Ricardo Signes)
    1. Enhance granularity of prerequisites (patch by Ricardo Signes and David Golden)
    1. Extensibly Group Prereqs (patch by Ricardo Signes)
    1. Clarify intent of ‘recommends’ and add ‘suggests’ (patch by David Golden)
    1. Allow Sequences (Arrays) for Prereqs (patch by David Golden)
    1. Add development_requires (patch by David Golden)
    1. Better formalization of license field (patch by David Golden)
    1. Make dynamic_config mandatory (patch by David Golden)
    1. Make repository resource a hash (patch by Ricardo Signes)
    1. Make bugtracker resource a hash (patch by Ricrado Signes)
    1. Formalize optional_features (patch by David Golden)
    1. Clarify author field (patch by Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯)
    1. Add a “release_status” field (patch by David Golden)
    1. Long description (patch by David Golden)
    1. Formally reserve keys for private ‘in-house’ use (patch by David Golden)

Controversial, but patch written:

    1. Language (patch by Ricardo Signes)

Not adopted, but patch written to clarify existing, similar field:

    1. Trove-Like Categories (patch by David Golden)

**No consensus or consensus opposes or duplicative or other reasons for

not including in 2.0:**

    1. Update the YAML version declaration</1>
      1. Schema</1>
        1. Add a free-text prerequisite field</1>
          1. OS/arch/platform-specific requirements</1>
            1. Add a post_depends set</1>
              1. Prerequisites should be mutually exclusive</1>
                1. Binary Package Dependencies</1>
                  1. Have a “development version” flag</1>
                    1. Controlling test suite runs</1>
                      1. Specify a DLSIP resource</1>
                        1. Short description</1>
                          1. Version changes</1>
                            1. Steal from other package meta specs</1>
                              1. Install Meta files and make them queryable</1>

•      •      •

If you enjoyed this or have feedback, please let me know by or