Ken Williams wrote:
On Mar 6, 2006, at 4:44 PM, Randy W. Sims wrote:
There are a number of problems it could be intended to solve, but I'm
not sure which one(s).
1) For automated builders/testers, it could indicate that a module
requires user intervention. Eg. it queries the user for input during
install.
2) The dependencies listed in META.yml are not static. Maybe a
Win32::* module is required only when run under Windows, but is not
listed in META.yml because there is currently no way to express
conditional dependencies.
3) The description in the spec would seem to imply that a static
config indicates that module can be installed without the builder
(i.e. Module::Build)), that the modules could simply be copied into
the proper folders by any tool. This would mean any module with with
XS or compiled code as well as anything under (1) and (2) above are
dynamic?
I'd intended it as 1 & 2 but not 3. In other words, whether the
information in the META.yml is definitive or not. If it weren't, then
a cautious or curious user might want to read the Build.PL before
installing.
Everything is on the honor system of course, so it's not really a
security thing, just a convenience thing.
Maybe that section could be clarified a bit:
:>>>
(Spec 1.0) [optional] {boolean} A boolean flag indicating that the
content of the META.yml does *not* represent a complete and static
description of the distribution. If the properties of the distribution
as described by META.yml change depending on operating environment or
user choice, this should be set to 1 (true).
For example, if one of the prerequisites this distribution 'requires' is
only needed on BSD flavored platforms, the metadata would be considered
"dynamic", so the 'dynamic_config' field should be set to 1 (true).
If this field is omitted, it defaults to 1 (true).
:<<<
The above with other clarifications and corrections you've made could
maybe be a 1.2.1 release maybe?
And/Or with the following a 1.3 release:
The alternative listed under "recommends" should probably be removed or
made an official part of the spec.
The repository field could be constructed as a mapping:
repository:
type: cvs
location: :pserver:[EMAIL PROTECTED]:/cvsroot/module-build
or possibly some type of (icky) compound field:
repository: [svn] https://svn.versiondude.net/randys/CPAN-Metadata
Randy.