Open source 如何让人们在我的开源项目上进行协作?

Open source 如何让人们在我的开源项目上进行协作?,open-source,collaboration,Open Source,Collaboration,不久前,我启动了一个开源项目,这对我来说意味着(直到现在)我只是将我的源代码推送到一个公共存储库(Mercurial on Google code)。不过,最近我收到了其他人的请求,要求我在我的项目上进行合作。我以前从未在开源项目上合作过,我不知道如何继续: 我是否只给他们访问存储库的权限,以便他们可以推动更改?如果他们推我不喜欢的东西,我可以随时回滚,如果他们惹我生气,我可以随时撤销他们对存储库的访问 我是否告诉他们发送补丁(通过问题跟踪程序),然后应用我喜欢的补丁,撤销我不喜欢的补丁 现

不久前,我启动了一个开源项目,这对我来说意味着(直到现在)我只是将我的源代码推送到一个公共存储库(Mercurial on Google code)。不过,最近我收到了其他人的请求,要求我在我的项目上进行合作。我以前从未在开源项目上合作过,我不知道如何继续:

  • 我是否只给他们访问存储库的权限,以便他们可以推动更改?如果他们推我不喜欢的东西,我可以随时回滚,如果他们惹我生气,我可以随时撤销他们对存储库的访问
  • 我是否告诉他们发送补丁(通过问题跟踪程序),然后应用我喜欢的补丁,撤销我不喜欢的补丁
现在:

  • 我不想失去我项目的所有权。这是一个很好的项目,也是很好的简历材料。我想这是我最害怕的。然而,我想给予我的合作者适当的信任
  • 我知道这就是开源的全部意义:协作,所以我不想成为一个白痴,对那些想要帮助的人说不
  • 最近我没有太多的时间来编写我的项目,所以它可能需要一些帮助
另外,我有点不愿意让任何人参与我的项目。如果他们是,恕我直言,努布斯?我想我可以回滚它们的更改并告诉它们,请原谅这个表达式,gtfo,但这并不是特别好


这通常是如何做到的?

有不同程度的贡献

从每个人的补丁开始。你不必全部接受它们——如果拒绝一个补丁,请解释它被拒绝的原因以及可以做些什么来改进它

对于已接受的修补程序,请清理它们(并将清理记录在编码样式指南中)

然后,提供最多最好补丁的人可以直接访问存储库并开始自己接受补丁


在这一点上,接受这样一个事实,即项目不再只是你的,尽管你可能想继续并领导它。

做OSS的方式和做项目的方式一样多。到目前为止,以下指导原则对我有效。YMMV

  • 不要向所有人授予对存储库的写访问权。DVCS的最大好处之一是,您不必这样做,每个人都有自己的存储库,原则上与您的相同。只允许您真正信任并且对项目有类似看法的人进行写访问
  • 始终鼓励修补程序和拉取请求。有时你不得不拒绝一些补丁,但是要确保你真的向贡献者证明你的拒绝是正当的;人们不喜欢在没有正当理由的情况下被拒绝,这会阻止他们(以及其他人,因为其他人会在跟踪程序中看到问题的历史)进一步做出贡献。此外,通过指出补丁的错误,您和贡献者都将从经验中学习
  • 所有权是一个非常相对的东西。如果在整个项目历史中,有人的贡献是你的10倍,那么谁是项目的真正所有者?不要太担心所有权,专注于项目本身。确保你总是做对项目最有利的事。其他一切都会自然而然地发生

  • 这里值得一提的是,其他开发人员希望为您的项目做出贡献,因为他们需要根据自己的需要对项目进行一些更改/修改/升级。如果他们没有将更改提交到您的项目中,他们将无法轻松迁移到下一个版本。 这些开发者不想让你分享信用或任何东西。他们只希望提交他们的修改/升级


    开发人员投入的越多,项目能够长期存在的可能性就越高。这是你的功劳

    很好的观点,特别是最后一点。谢谢,这就是我要做的。我已通过电子邮件向希望贡献的人发送了电子邮件,告诉他们欢迎使用修补程序。要在授予中级贡献者写访问权之前测试他们,请让他们设置一个远程跟踪分支,您可以从中提取。当涉及到贡献时,它比补丁更容易/更快,并且它将有助于在他们访问远程主机之前建立良好的源代码管理工作流。