(注:ayo.js叉从Node.js。目前,大量的文档仍然指向Node.js库。)

ayo.js是一个JavaScript运行时建立在Chrome的V8 JavaScript引擎。ayo.js使用事件驱动的,非阻塞I/O模型,使其轻量化和高效。生态系统的ayo.js包,NPM,是世界上最大的生态系统的开放源代码库。

贡献、策略和发布是在一个开放的治理模型下管理的。

这个项目受到行为准则的约束。

https://github.com/ayojs/ayo

Ayo(发音为“eye-oh”或 IO)是当前流行的 JavaScript 运行时 Node.js 的一个分支。它的创建是由于 Node.js 项目内部发生了一个关于“行为准则(Code of Conduct)”的问题。

Node.js 项目的一个委员会(TSC)就是否应该允许一名 Node.js 项目的开发者继续为项目工作进行了投票,投票结果是 60% 持赞成的态度。之所以进行投票,是因为这名开发者存在一些违反“行为准则”的行为。事实上,本次投票意味着他们对这个“行为准则”十分重视。

不幸的是,正如推特用户 maybekatz 所指出的那样,如果委员会成员投票赞成让开发者继续为项目工作,这使得“行为准则”看起来没有执行力。

而且现在由于“行为准则”的执行力不足,不仅造成了 Node.js 的分叉,还导致一名 Node.js 委员会成员在 TSC(技术指导委员会)上辞去自己的职务。

下面是这位选择辞职的开发者所说的内容:

TSC 最近的一项决定让我认为技术指导委员会正在做出不符合 Node.js 项目最大利益的决策。这并不只是关乎某个具体的个人的问题,作为一个项目和我们承担的责任,这还是一个关乎着我们所选择的向众人展示的价值观的问题。

TSC 对该项目拥有最终的权力,包括:

  • 技术方向

  • 项目的治理与流程(包括本条细则)

  • 贡献细则

  • GitHub 仓库托管

  • 行为准则

  • 维护附加协作者的列表

当前的决定破坏了我们的“行为准则”,在我看来,这不但驱走了潜在的贡献者,还破坏了委员会的治理能力。

驱走开源项目的贡献者在开源世界中可能是致命的举动,要知道,大多数开发者基本上都是利用他们的空闲时间来志愿为项目贡献。无论是为小项目,还是诸如 Node.js 这样的大项目吸引贡献者都是十分困难的事,所以我们需要注意让所有贡献者都感到愉悦。

开源项目应该采用“行为准则”,因为它可以使得贡献者在为项目贡献的过程中感到安全,可以增加他们提交补丁时的勇气。贡献者刚加入一个项目时,可能对项目会有点“怕生”的心理,不过“行为准则”可以帮助解决这种情况。引入一个“贡献”文档 —— 解释如何为项目贡献以及从哪开始,这也是一个好主意。其实,任何能让大众轻松为开源项目贡献的事都是好事。

2017 年 8 月 23 日上午 11:26 更新:ayo.js 在 github 上讨论管理架构和项目目标等多个问题。

其中一个关于是否重新合并回 Node.js 的 issue,得票最高的回复如下:

我只是希望错误能被修复。我不在乎这个项目叫什么或者谁在控制它,只要它还为社区服务,它就值得大家努力推动。

译自:https://sourcecontribute.com/

 
 
 
原文地址:https://www.oschina.net/news/88016/node-js-has-forked-into-ayo

Node.js 被分叉出一个项目 — Ayo.js,肿么了的更多相关文章

  1. js移除最后一个字符,js替换字符串的连接符号,js移除最后一个分隔符号

    js移除最后一个字符 js移除最后一个分隔符号 js替换字符串的连接符号 >>>>>>>>>>>>>>>> ...

  2. JS只弹出一个居中弹出窗口

    var newWindow;//定义一个窗口,有利于窗口间的通讯function makeNewWindow(url) {   if (!newWindow || newWindow.closed) ...

  3. jsp文件引入js文件的方式(项目部署于web容器中)

    在页面中引入javascript文件的方式是多种多样的,本文介绍两种. 通过<script>标签插入js文件 通过这种方式引入的js,写对js文件和jsp文件的路径很重要.下面给出一个项目 ...

  4. Node.js笔记07——不使用generator自定义一个项目,深入了解项目结构

    一.初始化项目 新建项目 git init manager 新建view文件夹,建几个静态文件夹 新建app.js 快速初始化项目依赖 npm init -y 安装express npm instal ...

  5. 使用Node.js完成的第一个项目的实践总结

    http://blog.csdn.net/yanghua_kobe/article/details/17199417 项目简介 这是一个资产管理项目,主要的目的就是实现对资产的无纸化管理.通过为每个资 ...

  6. [转]使用Node.js完成的第一个项目的实践总结

    本文转自:http://blog.csdn.net/yanghua_kobe/article/details/17199417 https://github.com/yanghua/FixedAsse ...

  7. npm 是node.js下带的一个包管理工具

    npm 是node.js下带的一个包管理工具          npm install -g webpack webpack是一个打包工具 gulp是一个基于流的构建工具,相对其他构件工具来说,更简洁 ...

  8. 【原创】贡献一个JS的弹出框代码...

    一.前言 最近在做一个项目,自己感觉系统自带的alert()方法的弹出框实在是不堪入目,所以在网上找了一些资料,然后自己加工了一下,做出了自己的一个js弹出框,在这里贡献出来,希望对你有帮助. 二.开 ...

  9. 初识node.js(通过npm下载项目依赖的包的过程)

    一.初识node.js 简单的说Node.js 就是运行在服务器端的JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事 ...

随机推荐

  1. Codeforces Round #258 (Div. 2) 容斥+Lucas

    题目链接: http://codeforces.com/problemset/problem/451/E E. Devu and Flowers time limit per test4 second ...

  2. MIT挑战(如何在12个月内自学完成MIT计算机科学的33门课程|内附MIT公开课程资源和学习顺序

    译者注:本文译自Scott H. Young的博客,Scott拥有超强的学习能力,曾在12个月内自学完成麻省理工学院计算机科学的33门课程.本文就是他个人对于这次MIT挑战的介绍和总结. 版权声明:本 ...

  3. ASP.NET MVC 4.0 参考源码索引

    http://www.projky.com/asp.netmvc/4.0/Microsoft/AspNet/Mvc/Facebook/FacebookAppSettingKeys.cs.htmlhtt ...

  4. Android封装TitleBar基本适用所有常规开发

    Android封装TitleBar基本适用所有常规开发 github地址:https://github.com/SiberiaDante/SiberiaDanteLib/blob/master/sib ...

  5. Beta阶段团队项目开发篇章2

    例会时间: 2016.12.4 例会照片 个人工作 上阶段任务验收: 组员任务都已完成. 任务分配 组员 任务内容 韩慧敏 对调查问卷的结果进行分析和总结,确定Beta阶段各任务的优先级,撰写相关博客 ...

  6. oracle 3大范式 理解

    CREATE OR REPLACE PACKAGE pack3 AS FUNCTION fun_calc (num1 NUMBER ,num2 NUMBER ) RETURN number ; fun ...

  7. 清除浮动小记,兼容Ie6,7

    .clearfix { *zoom:1;} .clearfix:after{clear:both; display:block; height:0; visibility:hidden; line-h ...

  8. 关于vue项目管理项目的架构管理平台

    关于vue项目管理项目的架构管理平台 https://panjiachen.github.io/vue-element-admin-site/#/zh-cn/faq 31.4k 次浏览 完整项目地址: ...

  9. mysql 数字类型的长度区别

    mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下: 1.bigint 从 -2^63 (-9223372036854775808) 到 2^ ...

  10. Java 反射 调用 demo

    基础类.供demo反射练习 package fanshe; public class Person { public String name; private String age; private ...