python - Git 和打包 : common pattern to keep packaging-files out of the way?

标签 python git debian packaging setuptools

对于我开发的最后一个 python 项目,我使用 git 作为版本控制系统。现在是开发周期的时候了,我应该开始向 Beta 测试人员发送包(在我的情况下,它们将是 .deb 包)。

为了构建我的包,我需要一些额外的文件(copyrighticon.xpmsetup.pysetup.cfg, stdeb.cfg, etc...) 但我希望将它们与程序的源代码分开,作为源代码可能会被用来为其他平台准备软件包,让那些特定于 debian 的文件挥之不去是没有意义的。

我的问题:是否有这样做的标准方法/最佳实践?在我的谷歌漫游中,我偶然发现了几次(包括 here on SO ) git-buildpackage套件,但我不确定这是我要找的东西,因为它似乎是为从上游存储库下载 tar.gz 的包装商考虑的。

我想一个可能的方法来实现我想要的是在 git 存储库上有一个分支,我保存我的打包文件,但是这个分支也应该能够“看到”master 上的文件分支,而无需我每次都手动将 master merge 到打包分支。然而:

  • 我不知道这是不是一个好主意/应该如何做
  • 虽然我怀疑它可能涉及一些git symbolic-ref 魔法,但我不知道如何做我想象的事情

感谢您的帮助,提前感谢您的宝贵时间!

最佳答案

为什么要将它们排除在源代码控制之外?它们是生成最终构建输出的输入的一部分!您绝对不想失去对它们的跟踪,并且您可能希望在继续开发应用程序时跟踪它们随时间的变化情况。

您最有可能想要做的是为所有这些特定于发行版的文件创建一个子目录,例如 ./debian./packaging/debian 并提交他们在那里;您可以拥有一个 makefile 或类似的文件,当您在该目录中运行它时,将所有文件复制到创建包所需的位置,这样您的状态就会很好!

关于python - Git 和打包 : common pattern to keep packaging-files out of the way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7409720/

相关文章:

Dockerfile, 如何安装 snap, snapd : unrecognized service

python - 如何在应用程序中配置所有记录器

python - Python IDLE 的默认保存路径?

python - 编程错误 : column "xxxxx" of relation "xxxx" does not exist

python - DataFrame 列包含双引号内的列表

linux - 在 debian linux 中安装 octave forge dicom 包时无法识别依赖库

git - 我需要暂时撤消 merge ,以便稍后再进行一次 merge

java - 从 git 克隆 Java eclipse 项目时出现 .classpath 文件问题

python - 使用 pip install -e 指定 extras_require

debian - 如何在 debian 6.0 中安装 as86?