>>>>> On Tue, 18 Mar 2008 17:56:14 +1100, Adam Kennedy <[EMAIL PROTECTED]> said:
> configure_requires MUST be static, and can NEVER be programmatic.
> That's why it exists in the first place.
It seems we must split the discussion into two or three. I'll revisit
the topic if configure_requires can be dependent on a feature once we
have gone one step further.
So let's please address now the really urgent issue of an imho blatant
spec bug. Revised patch follows.
Index: META-spec.pod
===================================================================
--- META-spec.pod (Revision 11071)
+++ META-spec.pod (Arbeitskopie)
@@ -259,13 +259,13 @@
Example:
optional_features:
- - foo:
+ foo:
description: Provides the ability to blah.
requires:
Data::Dumper: 0
File::Find: 1.03
-I<(Spec 1.1) [optional] {map} A YAML sequence of names for optional features
+I<(Spec 1.1) [optional] {map} A YAML mapping of names for optional features
which are made available when its requirements are met. For each
feature a description is provided along with any of L<"requires">,
L<"build_requires">, and L<"conflicts">, which have the same meaning in
I'm sure this spec bug is resulting from the fact that nobody can
parse YAML as well as Data::Dumper output. So let me illustrate how
the patch affects the data structure for the following case:
Watch this YAML as in the current spec:
optional_features:
- foo:
description: Provides the ability to foo
requires:
Data::Dumper: 0
File::Find: 1.03
- bar:
description: Provides the ability to bar
requires:
Data::Dumper: 0
File::Find: 1.03
Data::Dumper of this (imho broken) strucutre:
$VAR1 = {
'optional_features' => [
{
'foo' => {
'requires' => {
'File::Find' => '1.03',
'Data::Dumper' => '0'
},
'description' => 'Provides the ability to foo'
}
},
{
'bar' => {
'requires' => {
'File::Find' => '1.03',
'Data::Dumper' => '0'
},
'description' => 'Provides the ability to bar'
}
}
]
};
And now my proposed change in YAML:
optional_features:
foo:
description: Provides the ability to foo
requires:
Data::Dumper: 0
File::Find: 1.03
bar:
description: Provides the ability to bar
requires:
Data::Dumper: 0
File::Find: 1.03
And its DD counterpart:
$VAR1 = {
'optional_features' => {
'bar' => {
'requires' => {
'File::Find' => '1.03',
'Data::Dumper' => '0'
},
'description' => 'Provides the ability to bar'
},
'foo' => {
'requires' => {
'File::Find' => '1.03',
'Data::Dumper' => '0'
},
'description' => 'Provides the ability to foo'
}
}
};
I hope this is obvious enough for everybody to agree.
Thanks,
--
andreas