BackBee CMS 如何以及为何开源

尚无读者喜欢这篇文章。
open source button on keyboard

Opensource.com

我们的巴黎网络机构和软件公司 Lp Digital 正在开源其内容管理系统 BackBee CMS。在本文中,我将解释帮助我们将 BackBee 发布为开源软件并衡量结果的工具。

在这里下载并加入社区。

选择许可证

我们想要一个流行的开源许可证,允许我们重用源代码并支持新的扩展和主题。我们还希望通过消除我们软件衍生版本的可能性来让我们的客户和贡献者对我们的商业模式放心。这就是为什么我们选择 GPL3 许可证,它允许所有类型的衍生品,只要源代码在相同的条件下提供。

GitHub 托管

我们决定在 GitHub 上工作,GitHub 是一个使用 Git 版本软件管理的 Web 托管服务和软件开发管理系统。

该平台提供了许多免费服务,我们依靠这些服务来管理我们的开源项目,例如管理

  • 问题
  • 添加请求(“拉取请求”)
  • 报告 Markdown
  • 开发团队
  • 一个组织

我们也可以将我们的项目托管在其他已知服务上,例如 Bitbucket,或者我们可以使我们自己的 GitLab 公开。

选择 GitHub 而不是其他解决方案并非出于技术原因。GitHub 已成为开源贡献者的第一个社交网络,迄今为止拥有 890 万会员。我们依赖的项目,例如 Symfony 组件、Doctrine、Twig 和 jQuery,也托管在 GitHub 上。考虑到我们希望扩大贡献者社区的愿望,GitHub 似乎是最佳选择。

选择 GitHub 作为我们代码的托管平台的另一个优势是 GitHub 周围软件生态系统的质量。因为我们在 GitHub 上,所以我们可以毫不费力地为我们的项目使用许多质量监控和测量设施。

工具

Travis-CI

Travis-CI 用于代码测试可能是我们最有用的服务之一。Travis-CI 可以

  • 检索项目
  • 运行测试
  • 同时运行多种语言类型的构建(例如,PHP 5.3、5.4、5.5)
  • 如果构建失败,则给您发送电子邮件
  • 此外,集成到 GitHub 非常有效。

Travis-CI 关于添加代码提案的通知示例

SensioLabs Insight 和 Scrutinizer

通过使用 SensioLabsInsightScrutinizer 等工具,我们已经能够衡量我们项目的整体质量,并为需要改进的领域制定计划。这两种工具都是免费和开源的,并且很容易绑定到 GitHub 项目。Scrutinizer 是一个通过使用众多指标和分析之间质量的变化来衡量静态代码质量的平台。该工具以“hook” GitHub 形式提供,这使您可以快速查看添加已请求的代码是否会降低项目的整体质量。

当在 PHP 中开发项目时,尤其是在它使用 Symfony 框架的软件组件时,使用 SensioLabsInsight 是有意义的。我们喜欢显示剩余技术债务的功能——项目修复 SensioLabsInsight 分析服务发现的所有问题以实现良好的技术项目所需的估计时间,以及分配给项目的注释。检测到的每个问题都详细说明了在哪里可以在 GitHub 上找到可能的解决方案,以及在哪里可以访问文档以帮助您解决问题。

Scrutinizer

此外,SensioLabsInsight 对您的项目执行动态分析,并且可以提出 Scrutinizer 永远无法发现的问题。

在过去的几个月中,我们将我们的技术债务减少了 87%——从估计的 2.3 年债务减少到只有 2.9 个月——我们正在继续努力提高我们项目的质量。

Blackfire.io

网站的性能主要与其前端有关,但是从后端改进项目的性能既可以显着,又可以减少时间。许多可用的工具可以衡量 PHP 应用程序的性能,但是我们认为市场上最好的工具是由一家名为 Blackfire 的法国初创公司生产的。

我们不会进一步详细介绍 Blackfire.io 的工作原理,但是我们定期使用页面访问的常规性能指标。我们仍然关注我们的 PHP 代码性能。

Gitter.im

Gitter 是一项服务,它为与项目或 GitHub 组织相关的通信提供平台。尽管开发人员已经可以使用此解决方案系统在 GitHub 上进行通信,但是 Gitter 为您提供了更简单的访问工具以及直接通信的可能性。

Gitter 缩小了在线服务与 StackOverflow 和 GitHub 一样主流,并且易于使用,致力于解决问题之间的差距。

Waffle.io

将项目开源还可以让您深入了解项目如何发展以及核心开发人员团队分配了哪些功能。我们可以开放我们的 Redmine,但是不希望贡献者必须登录或创建帐户才能查看或与我们当前的目标进行交互。

Waffle 为您提供了一个简单的 Kanban(一种有效管理软件开发项目的技术),这使您可以了解您与目标相比的进展情况。您可以轻松查看概述并跟踪项目中的进度以及每个人分配的任务。因此,对某个功能感兴趣的用户可以看到它是否正在开发,如果是,则可以看到谁在开发它。对于我们的开源 BackBee 软件,Waffle 已经取代了 Redmine。

我们的团队组织

我们在 BackBee CMS 开发方面投入了大量资金,拥有五名开发人员,分为两个团队(核心团队和客户端前端团队)、一名技术总监、一名项目主管、一名开源布道师以及我们集成团队的定期干预。

GitHub 允许您在组织的项目中创建具有简单管理授权的团队。在 BackBee 中,有三个组织级别

    • 核心团队:大部分代码由核心团队生成,核心团队汇集了项目中涉及的所有参与者,无论是在 Lp Digital 内部还是活跃的贡献者。
    • 合并:当核心团队验证了添加请求时,项目经理接受该添加和新功能(或错误修复)作为项目的一部分。每个项目都有一位经理,他们在内部负责每个团队。
    • 所有者:所有者团队的成员拥有广泛的权利。他们可以创建新的存储库并将 GitHub 成员添加到核心团队。如果核心团队无法就某个问题达成一致,他们可以做出最终决定。

所有信息和贡献规则都可以在每个项目的 CONTRIBUTING.md 文件中找到,这对于开源软件项目至关重要。

结果

BackBee 的开源版本在几个月内完成,我们在 2015 年 4 月初在 SymfonyLive Paris 上发布了我们的第一个主要版本。我们选择开源 BackBee CMS 是为了质量控制和软件分发,以便我们可以创建一个对所有人可用和可访问的扩展和主题生态系统。组织需要使用一种不会对软件本身产生负面影响的经济模式,并且内容管理解决方案在开源模式下运行良好。通过一些计划和组织,闭源软件通常可以很容易地开源。帮助简化过渡的工具和服务已经存在,其中许多是免费的并且可以很好地协同工作。

要了解有关 Backbee 的更多信息、下载 CMS 或加入社区,请访问:backbee.com

开源
CMS


本文是 Robin Muilwijk 协调的“开源 CMS”专栏的一部分。分享您使用开源内容管理系统 (CMS) 和 Drupal、Joomla、Plone、WordPress 等平台的故事。

标签
User profile image.
Lp digital 系统的开源工程师。BackBee CMS 的开发者布道师。

2 条评论

超级 CMS

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.