我正在创建一个Perl 5模块发行版,其源代码托管在github上。我遇到了与用户Anirvan in this question相同的问题:我希望github看到README.md
文件,但.tar.gz
要包含相同的文件为普通README
。这个问题的答案是“在两种情况下使用README.pod
”,在这种情况下有效,但我想知道我是否可以让我原来的尝试工作:
README.md
,而不是README
。MANIFEST
包含README
(因为它已进入tarball),但不是README.md
(因为它不是)。MANIFEST.SKIP
包含README.md
,因为我不想在tarball中使用它。Makefile.PL
(*)在PL_FILES
下有一个条目,用于将README.md
复制到README
文件的简短脚本这会产生README
,但在此过程中:
t/manifest.t
没有make
抱怨README
在清单中,但缺少perl Makefile.PL
也抱怨README
失踪我是否误解了MANIFEST
文件或此测试的目的?是否有可能表示一个应该打包的文件,但是还没有?我已经尝试过改变测试,但我只能找到一种方法让Test::CheckManifest
忽略那里的文件,但“不应该”,不要忽略那些不存在的文件,而是“应该”。 / p>
(*)是的,我正在使用ExtUtils::MakeMaker
,因为这是module-starter
默认的,并且它到目前为止有效。不过,我不确定其他工具是否会发生太大变化。
答案 0 :(得分:0)
(在此处回答我自己的问题):ExtUtils::MakeMaker
,Module::Build
以及其他主要是安装方法。您应该忽略make
,Build
以及其他人在构建分发时抱怨的内容。 make disttest
抱怨这很重要。
就此而言,请不要放置代码来帮助在Makefile.PL
中构建您的发行版。您只应在安装时期间放置要运行的代码。因此,如果您希望README.md
成为README
,您最好还是README.md
。这显然不是你想要的(*)。
相反,请查看Dist::Zilla。这显然是一个分发创建系统,不一个安装系统。
(*)回答你自己的问题真的很奇怪......: - /