Brain dump. Comments welcome and appreciated, on the talk page.
- Understands "use base", "use parent", etc, constructs.
- Understands Moose
- "extends" - subclassing
- "with" - roles
- "metaclass" - metaclasses
- "traits" - metaclass roles
- Understands Catalyst plugin speficication syntax
- This should be extensible to other module classes
- Doesn't generate duplicates. e.g.: perl(Foo) and perl(Foo) >= 1.9
- Better able to deal with the wonders of Perl versioning; e.g.
- 1.20a stays 1.20a
- 1.20 becomes 1.020000 (version triplet)
- Should we attempt to compile? (a la
perl -wcor Module::ScanDeps)
- PROS: highly accurate
- CONS: may fail for a variety of reasons
- Should we try to normalize the versions?
use base 'XXX';
|Need also to correctly evaluate |
|No duplicate provides||We often see duplicate requires. These are harmless, except in the case where one requires is versioned and another unversioned.|
This might need to be addressed at a higher level than perl.prov.
|Mo*se traits||...in an attribute specification:
... traits => [ 'X', 'Y' ]
|This is going to be tricky.|
|Catalyst and other plugin syntax|
|Ability to include/exclude|