Version control 在使一个项目开源时应该考虑什么?

Version control 在使一个项目开源时应该考虑什么?,version-control,open-source,Version Control,Open Source,我正准备以开源的形式发布一个项目,我非常希望得到一些关于以下几点的反馈: 代码非常干净,但版本控制历史记录不干净。错误、调试代码、可能不合适的代码等。我应该在发布之前清除历史记录,还是将其导入公共存储库 我应该优先制作教程、功能说明或api文档吗 让人们更容易进入一个新项目的其他想法 我非常谦虚地认为: 1) 如果你打算开源,那就要为你的代码感到骄傲。我们都知道在这个过程中会有错误和bug。还有更多,所以不要觉得你不能公开展示。你可以 2) 当然。也可能是这样,因为使用你的产品的人阅读它们的顺序

我正准备以开源的形式发布一个项目,我非常希望得到一些关于以下几点的反馈:

  • 代码非常干净,但版本控制历史记录不干净。错误、调试代码、可能不合适的代码等。我应该在发布之前清除历史记录,还是将其导入公共存储库

  • 我应该优先制作教程、功能说明或api文档吗

  • 让人们更容易进入一个新项目的其他想法


  • 我非常谦虚地认为:

    1) 如果你打算开源,那就要为你的代码感到骄傲。我们都知道在这个过程中会有错误和bug。还有更多,所以不要觉得你不能公开展示。你可以

    2) 当然。也可能是这样,因为使用你的产品的人阅读它们的顺序是这样的。在他们决定使用你的软件之前,他们必须先使用你的软件

    3) 我能给出的最好建议是有清晰的构建说明,希望有脚本来帮助人们配置环境。开源软件的一个常见问题是,新开发人员需要下载成吨的库,并将其配置为正常工作,以便能够构建软件。对我来说,这是非常令人沮丧的,可能会很快让我感到沮丧

    祝你好运

  • 完全是你的选择,除非你使用的是你没有发行权的受版权保护的代码,或者如果存在涉及再分配、信用等问题

  • 不知道是什么很难说。你需要什么才能使用它?你想先看什么?(可能是教程…)

  • 可能是一个从开始到结束的示例,包括安装。也许您应该在虚拟环境中或在新的操作系统安装上运行它,这样您就可以确定您的安装说明可以处理所有问题

  • 把一些承诺挤在一起应该很容易,而且付出的努力是值得的。开发人员通常通过查看历史来了解项目是如何设计的
  • 当然。您至少可以使用一些文档引擎(如Doxygen)来生成文档。在这一点上,教程可能是不必要的;社区将为您编写教程,只要代码有很好的文档记录
  • 好的包装总是有帮助的。为多个体系结构生成预编译的二进制文件,如果可行,创建RPM和DEB。这大大降低了进入门槛。没有人对他们不使用的软件做出贡献。此外,您还可以使用Bugzilla之类的优秀bug跟踪器,或者使用Launchpad或Trac之类的集成解决方案。还设置了邮件列表和IRC频道。这将有助于建立一个社区

  • 我很高兴你问了一个与我非常相关的问题。我不同意“社区将为你编写教程”。我认为你至少应该编写一个针对开发人员的教程,这意味着跳过很多非常常见的东西,比如“我们使用GNU构建系统(./configure&&make&&make install)”而不是向不熟悉GNU构建系统的人解释GNU构建系统。我认为准备一些基础教程来帮助开发人员深入研究是很重要的,而不仅仅是编写有良好文档的干净代码,然后让其他人来编写文档。哦,我指的是用法教程。对于开发人员来说,构建说明是绝对必要的。