The CPAN META Spec is the basis for the META.yml metadata files included in most modern CPAN distributions. Since the spec was last updated two years ago, there have been suggestions in many forums for how it could be improved in clarity or functionality, but nothing has been done.
To move from ideas to implementation, I have convened a working group of Perl/CPAN toolchain developers, maintainers, packagers and indexers -- the people responsible for the tools you use to configure, build, install or search for CPAN modules -- to review proposals, reach consensus and ultimately implement a new CPAN META Spec.
To ensure that we benefit from the best ideas in the Perl community, on behalf of this working group, I am issuing a public call for proposals.
Process
Here is the process and timeline:
Criteria
Since the work of implementation requires volunteer effort, the working group is looking for incremental improvements rather than complete rewrites of the spec. Proposal are more likely to be adopted if they:
Resources
The current spec: Browse the current spec, as converted to HTML, here: http://module-build.sourceforge.net/META-spec.html.
The repository: The official spec draft file, META-spec.pod, has been moved from the Module-Build repository into its own repository on github. Please feel free to include proposed patches as part of proposals:
The wiki: Proposals will be kept on the Perl QA Wiki: http://perl-qa.hexten.net/wiki/index.php/CPAN_Meta_Spec_Proposals
The mailing list: Subscribe to cpan-workers by emailing cpan-workers-subscribe@perl.org. List archives are available at http://www.mail-archive.com/cpan-workers@perl.org/
One major problem with YAML files, is support for Unicode, more specifically: different YAML parsers have a different default for assuming a file is in UTF-8, or not.
Why would we need Unicode? Most of all, to spell people's names correctly.
My proposal to resolve the issue is to have a default encoding for plain text files, my preference being ISO-Latin-1 (which is, I presume, the default for source code on CPAN, too...?), and that for using Unicode (including UTF-8), it requires a BOM marker.
(p.s. I cannot be bothered to learn how to properly edit the wiki, just for making one single suggestion...)
Re:YAML and Unicode
dagolden on 2009-08-28T11:05:31
Already there in the "Other brainstorming" section:
* Make Unicode support explicit (whether allowed or prohibited)
If someone expands that into a proper proposal, it will be considered.
To be clear, the proposal process is not a "wishlist" process. The working group is not volunteering to implement every suggestion anyone has.
Proposals that someone cares enough to write up formally indicate issues that are important enough for someone to invest time in. If it's not important enough for someone to spend time on a proposal, why would the working group spend time on it, either?
Bart -- I don't mean this as a personal attack, so please forgive me if you felt that way, but you touched a nerve and I wanted to clarify that suggestions alone are not likely to lead to change. That's what we had for years and it rarely worked.
-- xdg
Re:YAML and Unicode
srezic on 2009-08-30T18:13:46
Isn't YAML 1.1 specified to be utf-8 anyway?
Re:YAML and Unicode
dagolden on 2009-08-30T18:24:14
The current CPAN META Spec is implemented in YAML 1.0 and few of the existing Perl YAML parsers are 1.1 ready. That's part of the issue.
-- dagolden
Re:YAML and Unicode
srezic on 2009-08-30T19:05:16
Anyway, I will write a proposal to define the META spec in terms of (Perl) data structures, and not anymore in terms of YAML. Though examples could still be in YAML (it's more readable than Perl or JSON or anything else); and there should be an appendix with recommended serialization formats (which would be YAML 1.0/1.1/Tiny/whatever, but probably also a Perl data dump).