如何让人们在我的开源项目上合作?

时间:2010-12-20 20:28:51

标签: open-source collaboration

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

  • 我是否只是让他们访问存储库以便推送更改?如果他们推送我不喜欢的东西,我总是会回滚,如果他们让我紧张,我总是可以撤销他们对存储库的访问权。
  • 我是否告诉他们发送补丁(通过问题跟踪器),然后应用我喜欢的那些并撤销我不喜欢的补丁?

现在:

  • 我不想失去我项目的所有权。这是一个非常好的项目,它是很好的简历材料。我认为这是我最害怕的。但是,我想给予我的合作者适当的信任。
  • 我知道这是开源的重点:合作,所以我不想成为一个白痴,对那些想要帮助的人说“不”。
  • 最近我没有太多时间对我的项目进行编码,因此可以使用一些帮助。

另外,我有点不愿意让任何人参与我的项目。如果他们这样做,请原谅这个表达,新手?我想我可以回滚它们的变化并告诉它们,原谅表达式,gtfo,但这不会特别好。

这个通常如何完成?

3 个答案:

答案 0 :(得分:5)

有不同程度的贡献。

首先从每个人那里获取补丁。你不必全部接受它们 - 如果拒绝补丁,解释它被拒绝的原因以及可以采取哪些措施来改进它。

对于已接受的补丁,请将其清理干净(并在编码样式指南中记录清理)。

提供最多和最佳补丁的人可以直接访问存储库并开始自己接受补丁。

此时,接受这个项目不再仅仅属于你的事实,尽管你可能希望继续并领导它。

答案 1 :(得分:3)

执行OSS的风格与项目一样多。到目前为止,以下指南对 me 起作用。 YMMV。

  1. 不要向所有人提供对您的存储库的写访问权限。 DVCS的最大好处之一就是您没有必要,每个人都有自己的存储库,原则上与您的存储库相同。只向您真正信任的人提供写入权限,并且您知道对该项目有类似的看法。
  2. 始终鼓励补丁和拉取请求。有时你必须拒绝一些补丁,但要确保你真的证明你拒绝贡献者;人们不喜欢在没有充分理由的情况下遭到拒绝,并且会阻止他们(以及其他人,因为其他人在跟踪器中查看问题历史记录)进一步做出贡献。此外,通过指出修补程序的错误,您和贡献者都将从经验中学习。
  3. 所有权是一个非常相对的事情。如果有人贡献了整个项目历史的10倍,那么谁真正拥有该项目?不要过于担心所有权,专注于项目本身。确保您始终对项目做最好的。其他一切都会自然而然地发生。

答案 2 :(得分:1)

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

越多的开发人员承担更高的机会,该项目将在很长一段时间内存在。信用将是你的。