1

我有一个模块,用Dist::Zilla. 我已Dist::Zilla设置为自动将更改推送到我的 GitHub 存储库。当 repo 是私有的时效果很好。

但是,一旦我将 repo 公开,我就开始在构建过程中遇到错误。具体来说,这些行在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]
4

1 回答 1

4

您的[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随着开发过程中的痛点变得明显,从简单的开始并添加插件也往往会更好。

于 2018-09-01T09:07:18.753 回答