将github存储库公开会导致Dist :: Zilla

时间:2018-08-31 16:37:55

标签: perl 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 个答案:

答案 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开始并在开发过程中出现痛点时添加插件通常会更好。