tony-o / raku-fez

This project is for 'fez', raku's cool new shiny dist uploader & manager. If you're a module author you should definitely be using this sweet thang. ;;;;;;;;;;;;;; This project and the underlying infrastructure is supported out of my own pocket and through donations. If you'd like to donate please check here: https://www.patreon.com/oynot
Artistic License 2.0
20 stars 12 forks source link

Some observations on fez review command #92

Closed vrurg closed 1 year ago

vrurg commented 1 year ago

While testing fez review with vrurg/raku-AttrX-Mooish I've got some questions about what it actually does and wether it does it right.

>>= Depends not ok
>>=   not in meta:
        AttrX::Mooish::Attribute
        AttrX::Mooish::ParametricRoleHOW
        AttrX::Mooish::Helper
        v6.d
        AttrX::Mooish::ClassHOW

v6.d is most certainly must not be there. The other four modules are all in the provides section of META6.

>>= Provides not ok
>>=   not in meta:
        Option::Type
        NoNatives
        TypeObject
        Fatal
        TypeCheck::MooishOption
        NotAllowed
        HelperMethod
        Option::Name

These are all exceptions declared in AttrX::Mooish::X module. Do I really have to have them in the provides? Why, if so?

>>=   in meta but unexpected:
        AttrX::Mooish::Attribute
        AttrX::Mooish::Helper
        AttrX::Mooish::ClassHOW
        AttrX::Mooish::ParametricRoleHOW

From the article:

we've added Digest::FNV to our depends but don't actually use it in the code:

Hence my guess would be AttrX::Mooish::Attribute is not used in the code. But then, in lib/AttrX/Mooish.rakumod:30:

    $attr does AttrX::Mooish::Attribute;

Not mentioning the use line at the start of the module. What is treated as 'use' then? Looks like this one is a clear bug.

tony-o commented 1 year ago

This will be a little more sane in v49

pelevesque commented 1 year ago

Using fez 51

In my case, fez seems to be looking at all the classes in my module and telling me they are not provided.

>>= Provides not ok
>>=   not in meta:
         Song
         Time-Signature
         Track

I guess I should add Song and Track as they are classes provided by my module.

However, the Time-Signature class is not exported by my module, so it is not available.

Also, I do export two custom operators: ♩ and \ but fez does not complain about those not being provided.

Here is my module for reference: https://github.com/pelevesque/MIDI-Make

tony-o commented 1 year ago

@pelevesque you can ignore the warning if you know that your META is correct