我目前有一些闭源应用程序是我开发的,用于学习特定技术或使用编程技术进行实验。因此,我有一些对其他人有用的软件,我已经免费提供,但是采用封闭源格式。
该软件的一些用户询问我是否愿意使用该软件开源,以便他们可以为此做出贡献。我全力以赴,但之前从未有过开源项目的经验,更不用说开始了。
理想情况下,我首先要为现有的项目做出贡献,但是我不想让这些志愿者通过推迟太长时间来平息他们的热情。所以我会盲目地向前推进。
我正在寻找的是为刚刚开始这条赛道的人管理开源项目的速成课程。
因此,我想将此作为一个问题:
你对某人有什么建议 启动他们的第一个开源 项目?
我也对您认为有用的书籍/链接建议感兴趣
答案 0 :(得分:5)
您最初有两个重要的选择。
首先应该使用哪个许可证?有dozens of Open Source licences,但它基本上归结为你是想要copyleft(GPL / AGPL)还是非copyleft(BSD,MIT,Apache),这取决于你自己的目标。
其次,您需要选择版本控制系统,并假设您不会自己托管它,提供商。这实际上是Subversion或其中一个分布式版本控制系统(Git,Mercurial,Bazaar等)之间的选择。如果您不想让他们为您的主存储库提供写入权限,DVCS可以让您更轻松地管理来自其他人的贡献。
VCS的选择将影响您对主机的选择,反之亦然,因为大多数提供商仅提供一个VCS。一个也将为您托管网站和/或维基的提供商将是理想的选择。大多数人会提供某种基本的问题跟踪器和可能的邮件列表。您还可以从Librelist获取邮件列表。
我建议您查看GitHub或Launchpad。我并不特别热衷于Google Code或Sourceforge。没有什么可以反对Subversion,我只是不喜欢他们的用户界面。
如果您希望自己的项目变得流行,而这对您来说可能并不重要,那么您必须进行推广。您可以使用Ohloh和Freshmeat进行注册。撰写有关您的项目的博客文章并将其提交到Reddit和DZone等网站可以提高可见度。还要记住Jeff正在提供free advertising on StackOverflow for Open Source projects。
无论如何,只要您有一个公共源存储库和一个供人们下载软件的网站,只需编写代码,其余部分将随之而来。
答案 1 :(得分:3)
如果您已经熟悉VCS(版本控制系统),那么您应该没问题。我建议www.github.org来托管存储库,也许在某个时候可以在网站上讨论该应用程序。 Github很好,因为它使人们特别容易贡献代码。这很简单,虽然git有一点学习曲线。
然后,一种沟通的方式!邮件列表..也许googlewave ..也许是一个论坛。
答案 2 :(得分:2)
答案 3 :(得分:2)
我手边没有任何个人建议,但我发现以下视频非常有趣。这是对一些谷歌员工的经历的回忆,以及他们在管理开源项目时学到的经验教训。
开源项目如何生存有毒人群(你也可以) https://www.youtube.com/watch?v=Q52kFL8zVoM
答案 4 :(得分:2)
不要错过Karl Fogel的精彩电子书,Producing Open Source Software免费在线提供。
答案 5 :(得分:1)
一些代码存储库网站为您完成了大量的管理工作。他们提供许可证,他们处理版本控制(在某些情况下),他们显然处理存储库。
看看这些网站:
答案 6 :(得分:1)
您需要做的最低限度是将代码作为zip发布,并附带适当的许可文件。您可以在Google Code处执行此操作 - 它非常易于使用。至于哪个许可证,从麻省理工学院(Google Code的所有许可证文本)等不受限制的许可证开始 - 如果您未接受任何更新,您可以随时重新许可。
至于书籍/链接,请查看Producing Open Source Software - 它并不完美,但我不知道更好。