【问题标题】:How to let people collaborate on my open source project? [closed]如何让人们在我的开源项目上进行协作? [关闭]
【发布时间】:2010-12-20 20:28:50
【问题描述】:

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

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

现在:

  • 我不想失去我的项目的所有权。这是一个非常好的项目,也是很好的简历材料。我想这是我最害怕的。不过,我想对我的合作者给予应有的赞扬。
  • 我知道这就是开源的全部意义所在:协作,所以我不想成为一个白痴,对这些想要提供帮助的人说不。
  • 最近我没有太多时间为我的项目编写代码,因此需要一些帮助。

另外,我有点不愿意让任何人参与我的项目。如果他们是,恕我直言,菜鸟怎么办?我想我可以回滚它们的更改并告诉它们,请原谅表达式 gtfo,但这不是特别好。

通常是怎么做的?

【问题讨论】:

    标签: open-source collaboration


    【解决方案1】:

    有不同程度的贡献。

    首先从每个人那里获取补丁。您不必全部接受 - 如果拒绝补丁,请解释它被拒绝的原因以及可以做些什么来改进它。

    对于接受的补丁,清理它们(并在编码风格指南中记录清理)。

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

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

    【讨论】:

    • 谢谢,这就是我要做的。我已经给想要贡献的人发了电子邮件,告诉他们欢迎使用补丁。
    • 要在授予中级贡献者写入权限之前测试他们,让他们设置一个您可以从中提取的远程跟踪分支。在贡献方面,它比补丁更容易/更快,并且有助于在他们获得远程主控访问权限之前建立良好的源代码控制工作流程。
    【解决方案2】:

    有多少项目就有多少做 OSS 的风格。到目前为止,以下指南对 me 有效。 YMMV。

    1. 不要将存储库的写入权限授予所有人。 DVCS 的最大好处之一是您不必这样做,每个人都有自己的存储库,原则上与您的存储库相同。仅向您真正信任并且您认识的对项目有相似看法的人授予写入权限。
    2. 始终鼓励补丁和拉取请求。有时您将不得不拒绝某些补丁,但请确保您真的向贡献者证明您拒绝的理由;人们不喜欢被无故拒绝,这会阻止他们(以及其他人,因为其他人在跟踪器中看到问题历史记录)进一步贡献。此外,通过指出补丁的问题,您和贡献者都将从经验中吸取教训。
    3. 所有权是一个非常相对的东西。如果有人在整个项目历史中的贡献是你的 10 倍,那么谁真正拥有该项目?不要太担心所有权,专注于项目本身。确保您始终做对项目最有利的事情。其他一切都会顺其自然。

    【讨论】:

    • 好点,尤其是最后一个。
    【解决方案3】:

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

    提交的开发人员越多,项目存活很长时间的机会就越大。功劳将归您所有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多