python – 在新分支上为GitHub上的存储库做贡献

假设有人拥有一个只有一个主托管代码与
Python 2.7.X兼容的存储库.我想通过对新分支new_branch的更改来为该存储库做出贡献,以提供与Python 3兼容的存储库的变体.

我按照步骤here

>我在我的帐户上将GitHub上的存储库分叉
>我在我的本地机器上克隆了我的叉子
>我在本地创建了一个新的分支new_branch
>我做了相关的修改
>我承诺并将更改推送到我自己的GitHub上
>我在浏览器上访问官方存储库的GitHub页面,并要求提取请求

以上工作,但它从“my_account:new_branch”到“official_account:master”执行拉取请求.这不是我想要的,因为Python 2.7.x和Python 3彼此不兼容.我想要做的是在官方存储库中为新分支创建PR(例如,使用相同名称“new_branch”).我怎样才能做到这一点?这有可能吗?

最佳答案 你真的不想这样做.但首先我会解释如何去做,然后我会回来解释为什么不这样做.

GitHub上的Using Pull Requests有一个非常好的概述,特别是“更改分支范围和目标存储库”一节.如果您使用主题分支,并且让上游所有者创建同名的主题分支,这是最简单的;然后你只需在菜单中下拉“base:master”,然后选择就在那里,他只需点击“合并”按钮即可.

那么,你为什么不想这样做呢?

首先,它不适合GitHub模型.与主分支并行生存并且具有多个分支的主题分支使得维护和可视化更加困难.

其次,您需要git URL和https URL代码.您需要人们能够共享链接,从树顶部点击安装,只需克隆存储库而不是克隆,然后检出不同的分支等.这意味着您的代码必须位于主分支上.

第三,如果您希望人们能够从PyPI安装3.x版本,在readthedocs等处找到文档,则需要一个包含单个源树的项目.大多数此类网站都有一个最新版本,而不是每个Python版本的最新版本,绝对不是同一版本的多个版本. (你可以完全安装fork项目,并创建一个单独的foo3项目.但是人们能够更容易地设置安装foo而不是让他们尝试,失败,来到SO并询问为什么它不起作用,并告诉他们可能有Python 3并需要pip install foo3代替.)

如何将两个版本合并到一个包中? porting docs应该有最新的建议,但是简单地说:如果可以创建一个在两个版本上运行的单个代码库,那么这是理想的;如果没有,并且如果你不能通过在安装时运行2to3或3to2来使工作正常,则为3.x代码创建一个并行目录(例如,与foo一起使用foo3)并在安装时选择适当的目录. (你总是可以从那开始,逐步向统一的代码库努力.)

点赞