让每一个来自社区的声音被听见、有回响:EMQ X 开源项目正式采用 RFC 流程

为了使我们的开源项目以更具创新、更加积极的状态高效迭代快速推进,EMQ X 团队宣布,开始正式采用 RFC 流程,以收集来自社区的意见,持续完善产品功能。

RFC(Request For Comments,请求意见稿)是一种为了保证重大特性更新和架构更改能够顺利推进的一种流程机制。

我们将管理该流程的存储库命名为 EIP,全称为:EMQ X Improvement Proposals。

项目地址:https://github.com/emqx/eip

为什么需要 EMQ X EIP

EMQ X 开源项目发展至今,功能愈发强大,项目架构也愈发复杂,一些新功能的设计和实现可能会对系统架构和现有功能或多或少产生影响。因此,在规划和实现新功能之前,都需要团队认真讨论和评估。同时,随着用户和社区群体的增长壮大,我们也收到了来自越来越多用户针对 EMQ X 所提出的充满创新的优秀功能设计建议,以及把这些想法融入到 EMQ X 未来版本中的意愿。

因此,EIP 项目应运而生。我们将为大家提供一个平台,用于记录想法、设计或实现新功能的详细信息。当有一些想法或者更新会涉及到系统架构、功能、API 的变更等——如上文所述,都需要在开发工作开始前经过一个讨论与审核流程,此时 EIP 将是一个更合适的途径来保证 EMQ X 团队与社区用户达成共识。

EIP 具有以下三个特性:

  • 开放创新协作。EMQ X 是一个开源项目,我们遵循开源项目原则——不仅保持源码的开放,对于功能设计与讨论也将开放出来,使 EMQ X 与社区用户更加紧密的联系起来。人人都可参与,人人都可了解。通过更多参与者帮助、指导和完善 EMQ X 的设计,让更多具有创造力的想法得以顺利落地。
  • 保证项目稳定性。EIP 能让我们尽可能降低每次迭代对老用户的影响,所纳入的想法建议和设计都将经过认真的审核与讨论,最大程度保证每一个功能的输入都可靠且稳定,为大家提供最佳的使用体验。
  • 追踪设计。通过 EIP,每个功能的想法和设计都将包含一个 PR 和讨论记录。当我们对一项功能特性进行了新增、取消或修改,我们希望用户可以通过每一个 EIP 文档和背后的 PR 看到我们对此所作的思考与妥协。这对于 EMQ X 长期的发展和想要深入了解 EMQ X 的开发者来说都非常重要。

此外,小部分的特性功能更新、Bug 修复的代码变更仍然可以遵循普通的 GitHub 流程,通过提交 Issue,发起 Pull Request 和 Code Review 来完成。

EIP.png

如何使用 EMQ X EIP

所有的 EIP 均为 Markdown(* .md)格式文件。

新的 EIP 首先应通过创建新的 Pull Request,经过讨论批准后进入 active 目录。 设计并完成该功能后,会将其放入 implemented 的目录中。

提交 EIP 之前,请阅读 0000-proposal-template,这是一个演示 EIP 格式的模板,大致结构如下:

# An Example of EMQ X Improvement Proposal

## Change log

* 2020-10-21: @emqxplus Initial draft
* 2020-02-05: @terry-xiaoyu Restructure
* 2021-02-21: @zmstone Add 'Declined Alternatives' section

用于记录修改信息,包含修改的日期,作者,和修改内容

## Abstract

对要解决的技术问题的简短描述(约200字)。

## Motivation

此处应清楚地解释为什么此 EIP 建议的功能是必要的。没有足够动机的 EIP 提交可能会被完全拒绝。

## Design

此处应详细描述功能的设计。 如果对体系结构进行了更改,则可能需要一些图表。

## Configuration Changes

此处应列出对配置文件的所有更改(如果有的话)。

## Backwards Compatibility

此处应说明如何使此功能向后兼容。如果它与以前的 emqx 版本不兼容,请解释和建议如何解决不兼容问题。

## Document Changes

如果文档有任何更改,请在此处简要说明。

## Testing Suggestions

最终实现必须包括单元测试或通用测试代码。如果需要手动进行更多测试,例如集成测试或基准测试,请在此处列出。

## Declined Alternatives

这里讨论有哪些替代方案,但被认为比当前的方案更差一些。这是为了帮助人们了解我们如何达到当前状态,防止再次进行讨论。

您也可以参考在 implemented 中的 EIP 文档。通过已实现的实例参考来编辑您需要提供的想法和建议的文档。

开始你的第一个 EMQ X EIP

至此,我们欢迎各位读者、用户和开发者们积极参与到 EIP 项目中来,为 EMQ X 提供更多新颖和强大的功能建议与想法。

结合 EMQ X EIP,让每一个声音被听到、有回响,使 EMQ X 成为所有社区用户为之自豪的开源项目,一个 IoT 时代伟大的开源项目将由我们共同创造。

Shifan Yu

Shifan Yu

EMQ X 研发工程师,负责 EMQ X 的前端开发工作,也是 MQTT X 的开发者和维护者。

为流式数据存储和实时处理而生的流数据库

全托管的 MQTT 云服务,开始 180 天免费试用

推荐阅读

Haskell 中的流处理 - Open Day 回顾

HStreamDB 团队于上周日举办了线上 Open Day,HStreamDB CTO 韩冬在会中与大家分享了有关 Haskell 中流处理解决方案的一些思考。

EMQ + 涛思数据联合线上 Meetup 回顾

8月20日,EMQ X 与 TDengine 首聚,联合举行了一次线上 Meetup。线上观众与几位嘉宾一起探讨了万物互联时代的设备接入、消息存储以及数据处理技术。

EMQ X 团队:连接数亿关键 IoT 设备|EMQ 2021 全球招聘季

EMQ X 团队众多职位热招中,欢迎加入我们,与我们一起携手将 EMQ 打造成为全球领先的商业开源公司。