Публичное использование репозитория github вызывает проблемы с Dist::Zilla
У меня есть модуль, построенный с Dist::Zilla
, я имею Dist::Zilla
настроить автоматическое распространение изменений в моем репозитории GitHub. Прекрасно работает, когда репозиторий закрыт.
Однако, как только я сделаю репо публичным, у меня начнут появляться ошибки в процессе сборки. В частности, эти строки в dist.ini
[Bugtracker]
web = http://github.com/myaccount/%s/issues
Если я закомментирую эти строки, это работает. С этими строками я получаю сообщение об ошибке:
Duplication of element resources.bugtracker.web at /Users/me/perl5/perlbrew/perls/perl-5.24.1/lib/site_perl/5.24.4/Dist/Zilla.pm line 595.
Хорошо, хорошо, я закомментирую строки. Однако возникает другая проблема. Номер версии моих сборок больше не автоинкрементен, и каждый раз, когда я пытаюсь выпустить сборку, они привязываются к одному и тому же номеру.
Есть ли какой-то параметр конфигурации, который мне нужно изменить с помощью Dist::Zilla, чтобы он хорошо работал с общедоступными репозиториями github? Вот полный файл dist.ini:
name = Module-Test
author = me
license = Perl_5
copyright_holder = Me
copyright_year = 2018
[Repository]
;[Bugtracker]
;web = http://github.com/sdondley/%s/issues
[Git::NextVersion]
[GitHub::Meta]
[PodVersion]
[PkgVersion]
[NextRelease]
[Run::AfterRelease]
run = mv Changes tmp && cp %n-%v/Changes Changes
[InstallGuide]
[PodWeaver]
[ReadmeAnyFromPod]
type = markdown
location = root
phase = release
[Git::Check]
[Git::Commit]
allow_dirty = README.mkdn
allow_dirty = Changes
allow_dirty = INSTALL
[Git::Tag]
[Git::Push]
[Run::AfterRelease / MyAppAfter]
run = mv tmp/Changes Changes
[GatherDir]
[AutoPrereqs]
[PruneCruft]
[PruneFiles]
filename = weaver.ini
filename = README.mkdn
filename = dist.ini
filename = .gitignore
[ManifestSkip]
[MetaYAML]
[License]
[Readme]
[ExtraTests]
[ExecDir]
[ShareDir]
[MakeMaker]
[Manifest]
[TestRelease]
[FakeRelease]
1 ответ
Ваш [Bugtracker]
запись приводит к дублированию, потому что вы также настраиваете багтрекер через [GitHub::Meta]
, Выберите один или другой.
Что касается управления номерами версий, обратите внимание, что [Git::NextVersion]
основан на ваших тегах git. Убедитесь, что эти теги присутствуют в вашем локальном хранилище и имеют правильный формат. Этот плагин использует вызов командной строки, подобный этому, чтобы получить все теги:
git rev-list --simplify-by-decoration --pretty=%d HEAD | grep -oE 'tag: [^,)\s]+'
Публичные репозитории GitHub не должны быть проблемой для Dist::Zilla - это именно та настройка, которую все равно использует большинство дистрибутивов dzil. Но взаимодействие между несколькими подключаемыми модулями может привести к трудным поискам ошибок, тем более что важен порядок подключаемых модулей. Это может помочь организовать ваши плагины по фазе, в которой они работают, и проверить, сохраняется ли проблема после удаления дополнительных плагинов. Также лучше начать с простого dist.ini
и добавьте плагины, как болевые точки в вашем процессе разработки становятся очевидными.