使用这些步骤来为你的第一个或接下来的项目打下坚实的基础。
开源 是一个蓬勃发展且有益的生态系统,它通过分散模式和社区贡献开发的软件,公开解决社区和行业问题。
随着这个生态系统的爆炸式发展,许多开发者想要参与并且构建新的开源项目。问题是:如何成功实现这一目标呢?
这篇文章将会揭秘开源项目的生命周期与结构。给你一个对开源项目内部运作的概述,并根据我个人的经验,向你展示如何构建一个成功和可持续发展的项目。
开源促进会 Open Source Initiative (OSI)提供了对“ 开源 Open Source ”的正式、详细的定义,但是维基百科提供了一个很好的总结:
开源软件是指根据许可证发布的计算机软件,版权持有人授予用户使用、研究、更改和向任何人、为了任何目的分发软件和它的源代码的权利。
开源软件通常在网络上有公开的代码,它由多人合作或一人开发。这就需要与来自不同地区、不同文化和不同技术背景的人合作,而且往往是远程合作。
就像人类的身体,一个开源项目由多个结构组成,这些结构构成了整个系统。我认为它们是两个分支:人员(微观)和文档(宏观)。
通常,一个开源项目包括以下人群:
当你准备构建一个新项目时,你需要考虑以上列表中的每一个群组。你对他们每个人有什么计划?
你不必在你项目的起始阶段解决上面所有问题。然而,在早期阶段思考它们是很明智的,这样你就能打下正确的基础,确保未来的扩建项目能够站稳脚跟并取得成功。
开源项目通常包括下列文档,通常为纯文本或 markdown 格式:
License
): 这份法律文件解释了如何以及在何种程度上可以自由使用、修改和共享本项目。OSI 网站上有 OSI 认可的许可证列表。如果没有明确的许可证,你的项目在法律上就不是开源的!README
):这个文件向新用户介绍你的项目。在很多 Git 托管网站上,比如 GitLab、GitHub 和 Codeberg,自述文件会显示在仓库的初始文件列表下。这里通常会提供文档,以及其他必要文档的链接。Documentation
):这是一个包含所有本项目文件资源的文件或目录,包括指南、API 参考、教程等。Contributing
):包含一份说明如何为项目做出贡献的文件,包括安装指南、配置等。Security
):包括一个解释如何提交漏洞报告或安全问题的文件。此外,一个项目通常有用于议题、支持和协作的网页。
大致包括:
大多数项目还通过在线聊天的形式为社区成员之间的对话和互动提供交流渠道。
许可证 也许是创建开源项前需要考虑的最简单但也是最重要的标准。许可证定义了允许使用、修改和共享项目源代码和其他组件的条款和条件。
许可证包含大量的法律术语,很多人并不完全理解。我使用 choosealicense.com,它可以帮助你根据你的目标社区、你从使用你的代码的人那里获得补丁的愿望,或者你允许别人使用你的代码而不分享他们对你的代码所做的改进来选择许可证。
这为何时使用 MIT 许可或 GNU GPLv3 许可提供了指导。它还建议为社区做出贡献的人们使用该社区所偏好的许可证。该图表还指出,还有更多许可证可供选择。网站 choosealicense.com 有一个基于文本的版本,可以链接到更详细的信息。
现在是关键问题:如何开始开源软件项目?
以下是我所认为的开源项目的各个阶段。
随着项目的进展,对项目的不同部分进行评估非常重要。这将为你提供可用于评估和未来发展战略的数据。
我希望这篇文章能帮助你推进你一直在考虑的项目。
你可以将其用作指南,并在构建你的一流开源软件项目时填补我遗漏的任何空白。
(题图:MJ/a22b4011-9b1e-41e6-a73f-bdeac4858007)
via: https://opensource.com/article/22/9/build-open-source-project
作者:Bolaji Ayodeji 选题:lkxed 译者:wcjjdlhws 校对:wxy