我已开发了一个功能齐全的工具,我希望不仅与感兴趣的人分享,而且得到社区的支持。这个工具是跨平台的,用C++与Qt一起编写,代码有很好的注释,但我仍然缺乏任何文档。在我把它称为稳定的、最终的版本之前,还有一些小问题和改进要做。
我需要采取哪些第一步来发布开源代码,并吸引有兴趣参与的人?
这是我第一次认真地尝试发布开源代码,我真的不知道从哪里开始。我是不是应该把它推给吉蒂布,把一个小小的wiki放在一起,祈祷一切顺利?
发布于 2011-05-15 23:01:54
如果您的代码到目前为止都是封闭源代码,那么首先要做的就是决定使用哪个开源许可证(GPL <=2,GPL 3、LGPL、BSD、月食等)。你想用。
每个代码都有正反两类,所以请阅读它们对代码的限制,并决定您希望谁能够使用它。警告,无论你选择谁,都会抱怨--这是神圣的战争领土,超出了这个问题的范围。
如果您的存储库中的代码还没有将您选择的许可证应用到它,那么到目前为止,我将检查您的整个修订历史并追溯应用它(这可能需要在引入新源文件的每个点重新建立一个基础)。然而,这将产生一个很好的干净的存储库,当您向公众发布它时,在您选择的许可证不生效的地方没有任何修改。
另一种选择是在第一个版本的时候启动您的公共存储库,在此之前,至少要有或没有历史记录。
这有一个缺点,那就是人们不能回顾你的历史,找出你是如何回到今天的位置,但它的优点是人们不能回顾你的历史,找出你如何到达今天的位置。*8')
当我工作的公司让我开发的软件开源时,我们一开始只是在发布点生成工作目录的快照。当我们转向使用公共github存储库时,我们启动了每个git
回购,即插件被移出svn
(或一组插件),很少包括任何历史记录。
如果您认为在使用您的软件时可能有商业兴趣,但对GPL 3这样的限制性重复使用许可证有意识形态上的偏好,请考虑提供双重许可。为公众下载提供GPL 3许可证,收费提供商业许可证,这两个世界都是最好的。
与以后开始提供商业许可证相比,从一开始就这么做可能会带来更少的摩擦。如果你的社区变得很受欢迎,人们可能会指责你出卖了你,如果你以后对商业开发的可能性没有直截了当的话。
如果您计划使用双重许可,或者只想保留您的代码库,那么您需要重新实现已贡献的修补程序,或者让贡献者将其贡献的权限分配给您。否则,您会发现他们的贡献阻止您在其他许可证下发布代码库。
梅森惠勒对问题开源许可我的代码以后会限制我吗?的回答提供了关于这个问题的一些很好的信息,以及libsdl项目用来处理这个问题的方法。
但是,请注意,正如您选择许可可能会限制使用和贡献您的项目的人员和组织一样,您也会选择是否有一个贡献者协议。有些人不愿意为一个要求他们签署出资人协议的项目做出贡献。
甲骨文贡献者协议 (链接很难在页面上看到)是贡献者协议的一个很好的模板。它也是许可(CC)的方式,你可以修改和重复使用它。
发布于 2011-05-16 10:16:35
马克·布斯的回答很好,但是只讨论许可/版本控制,所以我想在一个更技术性的领域上添加几点,这是我在发布开源代码时的第一步(或者不是第一步)。
发布于 2011-05-15 22:44:35
建造它,他们就会来。
如果需要你的工具,人们会发现它通过搜索引擎和文字论坛。在与你的工具所在的领域相关的特殊兴趣论坛上发表几篇文章,这一点也不伤人。如果有的话,可以和有类似兴趣的人一起跳上IRC频道,让他们知道。关于它的博客(如果你有一个个人博客)。本质上,你做的广告越多越好。话虽如此,如果没有必要,人们就是不会使用它。
所以简而言之,是的,把它推到GitHub上。启用问题特性,以便人们可以记录bug和Wiki,如果您的工具足够复杂,足以证明它的存在。不要气馁,如果你得不到即时的打击。有时,OS工具可能需要一些时间来收集蒸汽(虽然其中一些工具也是一出大门)。
祝你好运:)
https://softwareengineering.stackexchange.com/questions/76528
复制相似问题