我有一个用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]
答案 0 :(得分:4)
您的[Bugtracker]
条目会导致重复,因为您还通过[GitHub::Meta]
设置了bugtracker。选择一个。
关于版本号管理,请注意[Git::NextVersion]
基于您的git标签。确保这些标记存在于本地存储库中,并且格式正确。该插件使用类似于以下命令的命令行调用来获取所有标签:
git rev-list --simplify-by-decoration --pretty=%d HEAD | grep -oE 'tag: [^,)\s]+'
对于Dist :: Zilla来说,公共GitHub仓库应该不是问题-正是大多数dzil发行版使用的设置。但是,多个插件之间的交互会导致难以跟踪错误,尤其是因为插件的顺序很重要。它可以帮助您按插件的运行阶段组织它们,并测试在删除可选插件后问题是否仍然存在。从简单的dist.ini
开始并在开发过程中出现痛点时添加插件通常会更好。