Moose выдает ошибку при попытке собрать дистрибутив с помощью Dist::Zilla

У меня возникли проблемы с созданием дистрибутива Dist::Zilla. Каждый раз, когда я пытаюсь собрать его или действительно что-то сделать (т. е. тестировать, курить, listdeps, что бы это ни было), я получаю это сообщение об ошибке:

Attribute name must be provided before calling reader at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/MooseX/LazyRequire/Meta/Attribute/Trait/LazyRequire.pm line 40
    MooseX::LazyRequire::Meta::Attribute::Trait::LazyRequire::__ANON__('Dist::Zilla::Dist::Builder=HASH(0x53d06e0)') called at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/x86_64-linux/Class/MOP/Mixin/AttributeCore.pm line 45
    Class::MOP::Mixin::AttributeCore::default('Moose::Meta::Class::__ANON__::SERIAL::5=HASH(0x50c9c30)', 'Dist::Zilla::Dist::Builder=HASH(0x53d06e0)') called at reader Dist::Zilla::name (defined at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/Dist/Zilla.pm line 41) line 6
    Dist::Zilla::name('Dist::Zilla::Dist::Builder=HASH(0x53d06e0)') called at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/Dist/Zilla/Dist/Builder.pm line 264
    Dist::Zilla::Dist::Builder::build_in('Dist::Zilla::Dist::Builder=HASH(0x53d06e0)', undef) called at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/Dist/Zilla/Dist/Builder.pm line 315
    Dist::Zilla::Dist::Builder::ensure_built_in('Dist::Zilla::Dist::Builder=HASH(0x53d06e0)') called at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/Dist/Zilla/Dist/Builder.pm line 304
    Dist::Zilla::Dist::Builder::ensure_built('Dist::Zilla::Dist::Builder=HASH(0x53d06e0)') called at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/Dist/Zilla/Dist/Builder.pm line 322
    Dist::Zilla::Dist::Builder::build_archive('Dist::Zilla::Dist::Builder=HASH(0x53d06e0)') called at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/Dist/Zilla/App/Command/build.pm line 30
    Dist::Zilla::App::Command::build::execute('Dist::Zilla::App::Command::build=HASH(0x4aeb7b0)', 'Getopt::Long::Descriptive::Opts::__OPT__::2=HASH(0x4bdb150)', 'ARRAY(0x3873fc8)') called at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/App/Cmd.pm line 231
    App::Cmd::execute_command('Dist::Zilla::App=HASH(0x3c6f418)', 'Dist::Zilla::App::Command::build=HASH(0x4aeb7b0)', 'Getopt::Long::Descriptive::Opts::__OPT__::2=HASH(0x4bdb150)') called at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/App/Cmd.pm line 170
    App::Cmd::run('Dist::Zilla::App') called at /home/mxe/perl5/perlbrew/perls/perl-5.14.0/bin/dzil line 15

Или что-то вдоль этих линий. Содержимое моего dist.ini выглядит следующим образом:

author  = Gary Warman <[email protected]>
license = None ; this is an all rights reserved license
copyright_holder = Gary Warman
copyright_year   = 2011
[ReadmeFromPod]
[@Filter]
     -bundle = @Basic
     -remove = Readme
[AutoPrereqs]
[OurPkgVersion] ; use this instead of [PkgVersion]
[PodWeaver]
[MetaNoIndex]
    file = perlcritic.rc
[MetaJSON]
[NextRelease]
        format = %-9v %{yyyy-MM-dd}d ; make Changes Spec happy
[@TestingMania]
     disable = NoTabsTests ; TestSynopsis optional if synopsis is not perl or if it's a     largely generated codebase
     critic_config = perlcritic.rc
[ExtraTests]
[PodSpellingTests]
     wordlist = Pod::Wordlist::hanekomu ;optional
     spell_cmd = aspell list
[PruneFiles]
      filenames = dist.ini
      filenames = weaver.ini
[@Git]
[Git::NextVersion]
     first_version = 0.1.0 ; use semantic versioning if you don't know what this means     read: http://semver.org/ may switch to the semantic versioning plugin at some point.
[CheckChangesHasContent]
[Clean] ; optional, this cleans up directories upon running dzil release.

Итак, кто-нибудь здесь знает, что происходит, чтобы я мог это решить?


person ozzmotik    schedule 14.07.2011    source источник
comment
Вы используете Dist::Zilla версии 4.200009? Если нет, обновите и повторите попытку.   -  person Alexandr Ciornii    schedule 15.07.2011


Ответы (1)


Ваш файл dist.ini должен содержать задание для name, о чем сообщает эта ужасная ошибка. Вставьте в самом верху вашего файла:

name = My-Awesome-Dist

... и это сработает.

person rjbs    schedule 15.07.2011
comment
Я совершенно удивлен, что я никогда не вчитывался в это так далеко. Спасибо, что доказали мне, что мне нужно уделять больше внимания! - person ozzmotik; 03.04.2012