很多人都问我最近关于io.js和它与Node Forwar、 Advisory Board 和 npm的关系。
这是我个人的观点。我已经和io.js技术委员会分享了这篇文章的草稿,以确保它至少接近他们团队对这个事情的看法。
什么是io.js?
io.js是joyent/node项目的一个fork。io.js由Fedor Indutny开创的,他是node团队核心成员,负责一些Node.js运行的最重要的部分。
io.js继续之前的node-forward/node
库前所做的工作。我们希望未来合并原始的Node.js项目的一些内容。
Node Forward是什么?
Node Forward是Node.js核心贡献者、社区成员和爱好者们为了改进Node.js项目的成果。
七月十一日,Mikeal Rogers 在他的GitHub里创造了一个私有项目node-forward 来讨论Node.js的未来方向。我们中的许多人觉得是时候继续寻求目标一致的贡献者中立地管理这个项目。
什么是“node-forward/node”?
在Mikeal建立私有项目node-forward一个月后,讨论在8月迁移到了Node Forward 组织里进行对外开放。Node Forward 的 node-forward/node 是fork来的Node.js,以表明想合并 joyent/node 项目的变化。
当时,mikeal写道:
该基金会的第一个目标是在中立的组织里进行核心开发来支持Node。没有人喜欢把这个项目作为一个fork来发布,我们将继续与Joyent合作让他们作为基金会成员甚至领导。可能Joyent能为Node做的一个好决定是,与其他基金会贡献者以一个共生的方式工作,推动项目发展成像Linux和BSD。在这种情况下,TC贡献者找不到更好的办法,他们承诺以“fork”形式发布。
在Node Forward项目,参与这项工作的核心贡献者形成一个技术委员会(TC),来管理进程和决定技术方向。TC由8大Node.js核心贡献者中的6人组成。(Ryan Dahl 目前没有参与。TJ Fontaine受到邀请但拒绝参加。)
Node Forward 会和Joyent 或 Node.js竞争吗?
不。
Joyent的是一家提供服务解决方案的公司,包括Joyent Container Service,Manta数据存储和分析平台,SmartDataCenter 编排系统。2010,Joyent从Node的原作者Ryan Dahl购买了Node.js版权和商标。
Node Forward 集结了一批想要让提高Node.js尽可能更高效社区成员和核心参与者,使用开放的、自我治理的、中立的社区基金会。
Node Forward 的目标是与Joyent和其他社区成员合作共同改进Node.js。我们尊重Joyent多年来对Node.j的重大投资,我们相信合作的力量更有利于Joyent和Node。
Joyent Node Advisory Board是什么?
八月十三日,Joyent的首席执行官 Scott Hammond 打电话跟我讲关于Node.js的方向。他表示,他也和其他Node企业、技术和社区领袖聊过。
九月二十六日,他召开了一次会议来讨论一个顾问委员会的建立。他说他想解决围绕Node的问题,委员会的建立是个开始。
Advisory Board 的第一次正式会议在十月二十三日举行。
关于 Joyent Node Advisory Board 的更多信息可以在Joyent’s trademark on Node.js上找到。
为什么ode-forward/node设为私有的?
十月九日(也就是说,在最初的启动会议后、第一个官方Advisory Board会议前),Scott Hammond 打电话给Mikeal Rogers,告诉他node-forward/node 库违反了Joyent’s trademark on Node.js。
Hammond 表示,他认为这是一个恶意的迹象,破坏了他建立advisory board的努力。我们同意以库的私有化来表明我们希望与Joyent共同改进Node.js的承诺。
我在十一月二十日举办的第三个Joyent Node Advisory Board 会议提出这个问题。Scott Hammond 重申,发布基于Joyent Node.js的代码也被称为Node是侵害Joyent的商标,并说他要以所有法律手段确保他们商标的保护。他要求我们选择一个“Node”以外的名称才能使这个项目的公开。
那时候,在JNAB 会议也有了明确的进展。我们已经采取了不受任何公司影响的模式的决定。这时已经有了几种提案。对社区在未来的Advisory Board 会议扮演的角色有更清晰的认识。
我很乐观,JNAB 会议将有更多成果。
为什么io.js创造?
十一月二十六日,Fedor Indutny——一个非常多产的Node.js核心贡献者,并积极参与Node Forward——决定以不同名称创建一个Node.js的fork,使Node Forward公开且不违反Joyent的商标。
技术委员会先前工作的node-forward/node决定搬到io.js库。其他非技术探讨库仍在Node Forward。
io.js与Joyent或Node.js竞争吗?
不。
io.js的目的是提供一个让Node核心团队继续改善Node的工作空间。
io.js将继续Node Forward的工作。我们致力于改善Node.js和在Node社区的技术、非技术方面的服务。
Joyent Node Advisory Board 似乎是为了Node的社区的发展。我希望这将继续。
整个Node社区正在努力做出改变。转型还在进行,我们相信会更好。io.js是在变化的过程中的一种成分。未来是光明的,我们会继续探索。
io.js的目标是什么?
没有特定的顺序:
- 持续集成
- 100%通过测试为正常状态
- 严格的semver兼容的版本
- 贡献者所有,不受公司控制
- 透明寻求共识的治理
- 每周发布
- 支持版本的V8
- 积极发展
- 可预测的路线图
- 社区参与
假设Joyent Node Advisory Board 朝着这些方向取得进展,我们希望将合并到我们的项目中。
NPM在Node的forks里是什么角色?
NPM是JavaScript包管理工具。我们支持JavaScript的社区所有广泛使用Node。
Node的社区一直是其最大的特点。今天超过100000个模块,包含各种使用情形,每天有世界各地百万的开发者人使用,Node的首要价值是让用户创新。
npm 致力于让所有JavaScript开发者减少麻烦。
是否因为它是io.js的包管理器而将NPM被重命名为“IPM”?
不。
“npm”并不代表Node的包管理器。它是“npm is not an acronym”的官方的缩写。我们喜欢新的novel pun-making。
在最后TC会议决定,它是“io.js或“Io.js”,而不是“IO.js”。