make dist
通过 GitHub Releases发布输出
您的第一个选项——将 Autoconf 和 Automake 生成的文件放入存储库——不是一个好主意。将生成的文件存储在源代码管理中几乎没有什么好处。在这种情况下,它会通过大量不必要的和潜在的冲突提交污染您的历史记录,特别是如果不是所有贡献者都使用相同版本的 Autotools。您的第三个选项——检查输出make dist
——是一个坏主意,原因与第一个选项完全相同。
您的第二个选项——添加一个调用 Autoconf 和 Automake 来生成脚本的“引导”configure
脚本——也是一个坏主意。这违背了 Autotools 的全部目的,即使您的源代码可跨系统移植——包括那些 Autotools 不可用的系统!(考虑如果有人想在他们没有 root 访问权限且未安装 GNU 构建系统的机器上构建和安装您的软件会发生什么。引导脚本不会帮助他们,因为他们会首先需要在本地安装 Autotools 及其所有依赖项。)
使用 Autotools 发布代码的正确方法是生成一个 tarball make dist
(或者更好的是make distcheck
,因为这也将运行测试并进行其他完整性检查),然后将此 tarball 发布到源存储库以外的其他地方。
您从 2013 年 4 月开始的原始问题指出 GitHub 已停止下载页面。然而,在 2013 年 7 月,GitHub 添加了“发布”功能,不仅可以预先打包您的源标签,还允许您将任意文件附加到每个发布。因此,在 GitHub 上,发布页面是您应该发布make dist
tarball的地方(最好还有它们的分离 GnuPG 签名)。
基本步骤
- 当您准备好发布时,标记它并将标记推送到 GitHub:
$ git tag 1.0 # Also use -s if desired
$ git push --tags
- 使用您的 Makefile 生成一个 tarball:
$ make dist # Alternatively, 'make distcheck'
- 访问您项目的 GitHub 页面并点击“发布”链接:
- 您将被带到您的项目的发布页面。第一次访问时,您将看到的只是标签列表和从源代码树自动生成的 tarball:
按“Draft a new release”按钮。
- 然后,您将看到一个表单,您应该在其中填写与发布关联的 Git 标记以及可选的标题和描述。在此下方还有一个文件选择器,标记为“通过将二进制文件拖放到此处或选择它们来附加二进制文件”。使用它来上传您在步骤 2 中创建的 tarball(也可能是它的分离 GnuPG 签名)。
完成后,按“发布版本”按钮。
- 您项目的 Releases 页面现在将显示该版本,包括附加文件的显着下载链接:
如果您不想使用 GitHub Releases,那么正如之前的回答中所指出的,您应该将 tarball 上传到其他地方,例如您自己的网站或 FTP 站点。从您的项目中添加指向此存储库的链接,README.md
以便用户可以找到它。