diff --git a/content/en/governance.md b/content/en/governance.md new file mode 100644 index 0000000..13fa6bc --- /dev/null +++ b/content/en/governance.md @@ -0,0 +1,135 @@ +# io.js Project Governance + +## Technical Committee + +The io.js project is jointly governed by a Technical Committee (TC) +which is responsible for high-level guidance of the project. + +The TC has final authority over this project including: + +* Technical direction +* Project governance and process (including this policy) +* Contribution policy +* GitHub repository hosting +* Conduct guidelines +* Maintaining the list of additional Collaborators + +Initial membership invitations to the TC were given to individuals who +had been active contributors to io.js, and who have significant +experience with the management of the io.js project. Membership is +expected to evolve over time according to the needs of the project. + +For the current list of TC members, see the project +[README.md](./README.md#current-project-team-members). + +## Collaborators + +The [iojs/io.js](https://github.com/iojs/io.js) GitHub repository is +maintained by the TC and additional Collaborators who are added by the +TC on an ongoing basis. + +Individuals making significant and valuable contributions are made +Collaborators and given commit-access to the project. These +individuals are identified by the TC and their addition as +Collaborators is discussed during the weekly TC meeting. + +_Note:_ If you make a significant contribution and are not considered +for commit-access log an issue or contact a TC member directly and it +will be brought up in the next TC meeting. + +Modifications of the contents of the iojs/io.js repository are made on +a collaborative basis. Anybody with a GitHub account may propose a +modification via pull request and it will be considered by the project +Collaborators. All pull requests must be reviewed and accepted by a +Collaborator with sufficient expertise who is able to take full +responsibility for the change. In the case of pull requests proposed +by an existing Collaborator, an additional Collaborator is required +for sign-off. Consensus should be sought if additional Collaborators +participate and there is disagreement around a particular +modification. See _Consensus Seeking Process_ below for further detail +on the consensus model used for governance. + +Collaborators may opt to elevate significant or controversial +modifications, or modifications that have not found consensus to the +TC for discussion by assigning the ***tc-agenda*** tag to a pull +request or issue. The TC should serve as the final arbiter where +required. + +For the current list of Collaborators, see the project +[README.md](./README.md#current-project-team-members). + +A guide for Collaborators is maintained in +[COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md). + +## TC Membership + +TC seats are not time-limited. There is no fixed size of the TC. +However, the expected target is between 6 and 12, to ensure adequate +coverage of important areas of expertise, balanced with the ability to +make decisions efficiently. + +There is no specific set of requirements or qualifications for TC +membership beyond these rules. + +The TC may add additional members to the TC by a standard TC motion. + +A TC member may be removed from the TC by voluntary resignation, or by +a standard TC motion. + +Changes to TC membership should be posted in the agenda, and may be +suggested as any other agenda item (see "TC Meetings" below). + +No more than 1/3 of the TC members may be affiliated with the same +employer. If removal or resignation of a TC member, or a change of +employment by a TC member, creates a situation where more than 1/3 of +the TC membership shares an employer, then the situation must be +immediately remedied by the resignation or removal of one or more TC +members affiliated with the over-represented employer(s). + +## TC Meetings + +The TC meets weekly on a Google Hangout On Air. The meeting is run by +a designated moderator approved by the TC. Each meeting should be +published to YouTube. + +Items are added to the TC agenda which are considered contentious or +are modifications of governance, contribution policy, TC membership, +or release process. + +The intention of the agenda is not to approve or review all patches, +that should happen continuously on GitHub and be handled by the larger +group of Collaborators. + +Any community member or contributor can ask that something be added to +the next meeting's agenda by logging a GitHub Issue. Any Collaborator, +TC member or the moderator can add the item to the agenda by adding +the ***tc-agenda*** tag to the issue. + +Prior to each TC meeting the moderator will share the Agenda with +members of the TC. TC members can add any items they like to the +agenda at the beginning of each meeting. The moderator and the TC +cannot veto or remove items. + +The TC may invite persons or representatives from certain projects to +participate in a non-voting capacity. These invitees currently are: + +* A representative from [build](https://github.com/node-forward/build) + chosen by that project. + +The moderator is responsible for summarizing the discussion of each +agenda item and send it as a pull request after the meeting. + +## Consensus Seeking Process + +The TC follows a +[Consensus Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making) +decision making model. + +When an agenda item has appeared to reach a consensus the moderator +will ask "Does anyone object?" as a final call for dissent from the +consensus. + +If an agenda item cannot reach a consensus a TC member can call for +either a closing vote or a vote to table the issue to the next +meeting. The call for a vote must be seconded by a majority of the TC +or else the discussion will continue. Simple majority wins. diff --git a/content/en/template.json b/content/en/template.json index 2070d1c..b31ccbf 100644 --- a/content/en/template.json +++ b/content/en/template.json @@ -27,6 +27,10 @@ "slogan": "Bringing {{link 'pages.es6'}} to the Node Community!", "news_link": "{{link 'Weekly Update - March 13th' 'https://medium.com/node-js-javascript/io-js-week-of-march-13th-e3024cc66802'}} featuring core and community updates ({{link 'Medium' 'https://medium.com/node-js-javascript/io-js-week-of-march-13th-e3024cc66802'}})" }, + "releases": { + "title": "io.js Release History", + "downloads": "Downloads" + }, "links": { "nodejs": "Node.js™", "npm": "npm", diff --git a/content/en/working-groups.md b/content/en/working-groups.md new file mode 100644 index 0000000..0e69d7e --- /dev/null +++ b/content/en/working-groups.md @@ -0,0 +1,398 @@ +# io.js Working Groups + +io.js Working Groups are autonomous projects created by the +[Technical Committee (TC)](https://github.com/iojs/io.js/blob/v1.x/GOVERNANCE.md#technical-committee). + +Working Groups can be formed at any time but must be ratified by the TC. +Once formed the work defined in the Working Group charter is the +responsibility of the WG rather than the TC. + +It is important that Working Groups are not formed pre-maturely. Working +Groups are not formed to *begin* a set of tasks but instead are formed +once that work is already underway and the contributors +think it would benefit from being done as an autonomous project. + +If the work defined in a Working Group charter is completed the Working +Group should be dissolved and the responsibility for governance absorbed +back in to the TC. + +## Current Working Groups + +### Website + +The website working group's purpose is to build and maintain a public +website for the `io.js` project. + +Its responsibilities are: +* Develop and maintain a build and automation system for `iojs.org`. +* Ensure the site is regularly updated with changes made to `io.js` like +releases and features. +* Foster and enable a community of translators. + +The current members can be found in their +[README](https://github.com/iojs/website#current-project-team-members). + +### Streams + +The Streams WG is dedicated to the support and improvement of the Streams API +as used in io.js and the npm ecosystem. We seek to create a composable API that +solves the problem of representing multiple occurrences of an event over time +in a humane, low-overhead fashion. Improvements to the API will be driven by +the needs of the ecosystem; interoperability and backwards compatibility with +other solutions and prior versions are paramount in importance. Our +responsibilities include: + +* Addressing stream issues on the io.js issue tracker. +* Authoring and editing stream documentation within the io.js project. +* Reviewing changes to stream subclasses within the io.js project. +* Redirecting changes to streams from the io.js project to this project. +* Assisting in the implementation of stream providers within io.js. +* Recommending versions of readable-stream to be included in io.js. +* Messaging about the future of streams to give the community advance notice of changes. + +Initial members are: +* @chrisdickinson +* @isaacs +* @rvagg +* @Raynos +* @calvinmetcalf +* @sonewman +* @mafintosh +* @timgestson +* @domenic + +### Build + +The build working group's purpose is to create and maintain a +distributed automation infrastructure. + +Its responsibilities are: +* Produce Packages for all target platforms. +* Run tests. +* Run performance testing and comparisons. +* Creates and manages official docker images. +* Creates and manages build-containers. + +The current members can be found in their +[README](https://github.com/iojs/build#people). + +### Tracing + +The tracing working group's purpose is to increase the +transparency of software written in io.js. + +Its responsibilities are: +* Collaboration with V8 to integrate with `trace_event`. +* Maintinence and iteration on AsyncWrap. +* Maintinence and improvements to system tracing support (DTrace, LTTng, etc). +* Documention of tracing and debugging techniques. +* Fostering a tracing and debugging ecosystem. + +The current members can be found in their +[README](https://github.com/iojs/tracing-wg#people). + +### i18n + +The i18n working groups handle more than just translations. They +are endpoints for community members to collaborate with each +other in their language of choice. + +Each team is organized around a common spoken language. Each +language community might then produce multiple localizations for +various project resources. + +Their responsibilities are: +* Translation of any io.js materials they believe are relevant to their +community. +* Review processes for keeping translations up +to date and of high quality. +* Social media channels in their language. +* Promotion of io.js speakers for meetups and conferences in their +language. + +Membership is maintained by each language community. + +* [iojs-bg](http://github.com/iojs/iojs-bg) +* [iojs-bn](http://github.com/iojs/iojs-bn) +* [iojs-cn](http://github.com/iojs/iojs-cn) +* [iojs-cs](http://github.com/iojs/iojs-cs) +* [iojs-da](http://github.com/iojs/iojs-da) +* [iojs-de](http://github.com/iojs/iojs-de) +* [iojs-el](http://github.com/iojs/iojs-el) +* [iojs-es](http://github.com/iojs/iojs-es) +* [iojs-fa](http://github.com/iojs/iojs-fa) +* [iojs-fi](http://github.com/iojs/iojs-fi) +* [iojs-fr](http://github.com/iojs/iojs-fr) +* [iojs-he](http://github.com/iojs/iojs-he) +* [iojs-hi](http://github.com/iojs/iojs-hi) +* [iojs-hu](http://github.com/iojs/iojs-hu) +* [iojs-id](http://github.com/iojs/iojs-id) +* [iojs-it](http://github.com/iojs/iojs-it) +* [iojs-ja](http://github.com/iojs/iojs-ja) +* [iojs-ka](http://github.com/iojs/iojs-ka) +* [iojs-ko](http://github.com/iojs/iojs-ko) +* [iojs-mk](http://github.com/iojs/iojs-mk) +* [iojs-nl](http://github.com/iojs/iojs-nl) +* [iojs-no](http://github.com/iojs/iojs-no) +* [iojs-pl](http://github.com/iojs/iojs-pl) +* [iojs-pt](http://github.com/iojs/iojs-pt) +* [iojs-ro](http://github.com/iojs/iojs-ro) +* [iojs-ru](http://github.com/iojs/iojs-ru) +* [iojs-sv](http://github.com/iojs/iojs-sv) +* [iojs-ta](http://github.com/iojs/iojs-ta) +* [iojs-tr](http://github.com/iojs/iojs-tr) +* [iojs-tw](http://github.com/iojs/iojs-tw) +* [iojs-uk](http://github.com/iojs/iojs-uk) +* [iojs-vi](http://github.com/iojs/iojs-vi) + +### Evangelism + +The evangelism working group promotes the accomplishments +of io.js and lets the community know how they can get involved. + +Their responsibilities are: +* Project messaging. +* Official project social media. +* Promotion of speakers for meetups and conferences. +* Promotion of community events. +* Publishing regular update summaries and other promotional +content. + +The current members can be found in their +[README](https://github.com/iojs/evangelism#people). + +### Roadmap + +The roadmap working group is responsible for user community outreach +and the translation of their concerns into a plan of action for io.js. + +The final [ROADMAP](./ROADMAP.md) document is still owned by the TC and requires +the same approval for changes as any other project asset. + +Their responsibilities are: +* Attract and summarize user community needs and feedback. +* Find or potentially create tools that allow for broader participation. +* Create Pull Requests for relevant changes to [Roadmap.md](./ROADMAP.md) + +The current members can be found in their +[README](https://github.com/iojs/roadmap#people). + +## Starting a WG + +A Working Group is established by first defining a charter that can be +ratified by the TC. A charter is a *statement of purpose*, a +*list of responsibilities* and a *list of initial membership*. + +A working group needs 3 initial members. These should be individuals +already undertaking the work described in the charter. + +The list of responsibilities should be specific. Once established these +responsibilities are no longer governed by the TC and therefore should +not be broad or subjective. The only recourse the TC has over the working +group is to revoke the entire charter and take on the work previously +done by the working group themselves. + +If the responsibilities described in the charter are currently +undertaken by another WG then the charter will additionally have to be +ratified by that WG. + +You can submit the WG charter for ratification by sending +a Pull Request to this document which adds it to the +list of current Working Groups. Once ratified the list of +members should be maintained in the Working Group's +README. + +## Bootstrap Governance + +Once the TC ratifies a charter the WG inherits the following +documentation for governance, contribution, conduct and an MIT +LICENSE. The WG is free to change these documents through their own +governance process, hence the term "bootstrap." + +### *[insert WG name]* Working Group + +The io.js *[insert WG name]* is jointly governed by a Working Group (WG) +which is responsible for high-level guidance of the project. + +The WG has final authority over this project including: + +* Technical direction +* Project governance and process (including this policy) +* Contribution policy +* GitHub repository hosting +* Conduct guidelines +* Maintaining the list of additional Collaborators + +For the current list of WG members, see the project +[README.md](./README.md#current-project-team-members). + +### Collaborators + +The *[insert WG name]* GitHub repository is +maintained by the WG and additional Collaborators who are added by the +WG on an ongoing basis. + +Individuals making significant and valuable contributions are made +Collaborators and given commit-access to the project. These +individuals are identified by the WG and their addition as +Collaborators is discussed during the weekly WG meeting. + +_Note:_ If you make a significant contribution and are not considered +for commit-access log an issue or contact a WG member directly and it +will be brought up in the next WG meeting. + +Modifications of the contents of the *[insert WG repo]* repository are made on +a collaborative basis. Anybody with a GitHub account may propose a +modification via pull request and it will be considered by the project +Collaborators. All pull requests must be reviewed and accepted by a +Collaborator with sufficient expertise who is able to take full +responsibility for the change. In the case of pull requests proposed +by an existing Collaborator, an additional Collaborator is required +for sign-off. Consensus should be sought if additional Collaborators +participate and there is disagreement around a particular +modification. See _Consensus Seeking Process_ below for further detail +on the consensus model used for governance. + +Collaborators may opt to elevate significant or controversial +modifications, or modifications that have not found consensus to the +WG for discussion by assigning the ***WG-agenda*** tag to a pull +request or issue. The WG should serve as the final arbiter where +required. + +For the current list of Collaborators, see the project +[README.md](./README.md#current-project-team-members). + +### WG Membership + +WG seats are not time-limited. There is no fixed size of the WG. +However, the expected target is between 6 and 12, to ensure adequate +coverage of important areas of expertise, balanced with the ability to +make decisions efficiently. + +There is no specific set of requirements or qualifications for WG +membership beyond these rules. + +The WG may add additional members to the WG by unanimous consensus. + +A WG member may be removed from the WG by voluntary resignation, or by +unanimous consensus of all other WG members. + +Changes to WG membership should be posted in the agenda, and may be +suggested as any other agenda item (see "WG Meetings" below). + +If an addition or removal is proposed during a meeting, and the full +WG is not in attendance to participate, then the addition or removal +is added to the agenda for the subsequent meeting. This is to ensure +that all members are given the opportunity to participate in all +membership decisions. If a WG member is unable to attend a meeting +where a planned membership decision is being made, then their consent +is assumed. + +No more than 1/3 of the WG members may be affiliated with the same +employer. If removal or resignation of a WG member, or a change of +employment by a WG member, creates a situation where more than 1/3 of +the WG membership shares an employer, then the situation must be +immediately remedied by the resignation or removal of one or more WG +members affiliated with the over-represented employer(s). + +### WG Meetings + +The WG meets weekly on a Google Hangout On Air. The meeting is run by +a designated moderator approved by the WG. Each meeting should be +published to YouTube. + +Items are added to the WG agenda which are considered contentious or +are modifications of governance, contribution policy, WG membership, +or release process. + +The intention of the agenda is not to approve or review all patches, +that should happen continuously on GitHub and be handled by the larger +group of Collaborators. + +Any community member or contributor can ask that something be added to +the next meeting's agenda by logging a GitHub Issue. Any Collaborator, +WG member or the moderator can add the item to the agenda by adding +the ***WG-agenda*** tag to the issue. + +Prior to each WG meeting the moderator will share the Agenda with +members of the WG. WG members can add any items they like to the +agenda at the beginning of each meeting. The moderator and the WG +cannot veto or remove items. + +The WG may invite persons or representatives from certain projects to +participate in a non-voting capacity. + +The moderator is responsible for summarizing the discussion of each +agenda item and send it as a pull request after the meeting. + +### Consensus Seeking Process + +The WG follows a +[Consensus Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making) +decision making model. + +When an agenda item has appeared to reach a consensus the moderator +will ask "Does anyone object?" as a final call for dissent from the +consensus. + +If an agenda item cannot reach a consensus a WG member can call for +either a closing vote or a vote to table the issue to the next +meeting. The call for a vote must be seconded by a majority of the WG +or else the discussion will continue. Simple majority wins. + +Note that changes to WG membership require unanimous consensus. See +"WG Membership" above. + +### Developer's Certificate of Origin 1.0 + +By making a contribution to this project, I certify that: + +* (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license indicated + in the file; or +* (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source license + and I have the right under that license to submit that work with + modifications, whether created in whole or in part by me, under the + same open source license (unless I am permitted to submit under a + different license), as indicated in the file; or +* (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified it. + + +### Code of Conduct + +This Code of Conduct is adapted from [Rust's wonderful +CoC](https://github.com/rust-lang/rust/wiki/Note-development-policy#conduct). + +* We are committed to providing a friendly, safe and welcoming + environment for all, regardless of gender, sexual orientation, + disability, ethnicity, religion, or similar personal characteristic. +* Please avoid using overtly sexual nicknames or other nicknames that + might detract from a friendly, safe and welcoming environment for + all. +* Please be kind and courteous. There's no need to be mean or rude. +* Respect that people have differences of opinion and that every + design or implementation choice carries a trade-off and numerous + costs. There is seldom a right answer. +* Please keep unstructured critique to a minimum. If you have solid + ideas you want to experiment with, make a fork and see how it works. +* We will exclude you from interaction if you insult, demean or harass + anyone. That is not welcome behaviour. We interpret the term + "harassment" as including the definition in the [Citizen Code of + Conduct](http://citizencodeofconduct.org/); if you have any lack of + clarity about what might be included in that concept, please read + their definition. In particular, we don't tolerate behavior that + excludes people in socially marginalized groups. +* Private harassment is also unacceptable. No matter who you are, if + you feel you have been or are being harassed or made uncomfortable + by a community member, please contact one of the channel ops or any + of the TC members immediately with a capture (log, photo, email) of + the harassment if possible. Whether you're a regular contributor or + a newcomer, we care about making this community a safe place for you + and we've got your back. +* Likewise any spamming, trolling, flaming, baiting or other + attention-stealing behaviour is not welcome. +* Avoid the use of personal pronouns in code comments or + documentation. There is no need to address persons when explaining + code (e.g. "When the developer") diff --git a/content/ja/template.json b/content/ja/template.json index f5d3584..fd25de7 100644 --- a/content/ja/template.json +++ b/content/ja/template.json @@ -1,12 +1,21 @@ { - "browser-title":"io.js - JavaScript I/O", - "logo-text":"io.js", - "faq-link":"FAQ", - "es6-link":"ES6", - "api-link":"API Docs", - "issues-link":"GitHub Issues", - "org-link":"GitHub Org", - "irc-link":"IRC Chat", - "irc-logs-link":"Logs", - "gov-link":"Governance" + "browser-title": "io.js - JavaScript I/O", + "contribute-message": "知りたい情報がなかったり、書き足したいことがあれば、気軽に https://github.com/iojs/website にコントリビュートしてください。", + "heading-languages": "Languages", + "logo-text": "io.js", + "faq-link": "FAQ", + "es6-link": "ES6", + "api-link": "API Docs", + "issues-link": "GitHub Issues", + "org-link": "GitHub Org", + "irc-link": "IRC Chat", + "irc-logs-link": "Logs", + "gov-link": "Governance", + "downloads": { + "linux": "Linux", + "win32": "Win32", + "win64": "Win64", + "mac": "Mac", + "all": "Others" + } } diff --git a/gulp/tasks/build.js b/gulp/tasks/build.js index 408aa02..6fdf589 100644 --- a/gulp/tasks/build.js +++ b/gulp/tasks/build.js @@ -4,6 +4,7 @@ var runSequence = require('run-sequence'); gulp.task('build', function(cb){ runSequence( 'clean', + 'download', 'content', ['stylus', 'templates'], 'minifyCss', diff --git a/gulp/tasks/develop.js b/gulp/tasks/develop.js index 2c4d407..81837ff 100644 --- a/gulp/tasks/develop.js +++ b/gulp/tasks/develop.js @@ -4,6 +4,7 @@ var runSequence = require('run-sequence'); gulp.task('develop', function(cb){ runSequence( 'clean', + 'download', 'content', ['stylus', 'templates'], ['watch', 'server'], diff --git a/gulp/tasks/download.js b/gulp/tasks/download.js new file mode 100644 index 0000000..85c7c09 --- /dev/null +++ b/gulp/tasks/download.js @@ -0,0 +1,34 @@ +var gulp = require('gulp'); +var fs = require('fs'); +var path = require('path'); +var request = require('request'); + +var manifest = { + "content/en/governance.md": "https://raw.githubusercontent.com/iojs/io.js/v1.x/GOVERNANCE.md", + "content/en/working-groups.md": "https://raw.githubusercontent.com/iojs/io.js/v1.x/WORKING_GROUPS.md", + "source/versions.json": "https://iojs.org/dist/index.json" +} + +gulp.task('download', function () { + var dir = path.resolve(__dirname, '..', '..'); + var streams = []; + var targets = Object.keys(manifest); + + targets.forEach(function(target) { + console.log('updating', target); + + var source = manifest[target]; + var outputFile = path.resolve(dir, target); + + var promise = new Promise(function(resolve, reject) { + var outStream = fs.createWriteStream(outputFile); + outStream.on('error', reject); + outStream.on('finish', resolve); + var stream = request(source).pipe(outStream); + }); + + streams.push(promise); + }) + + return Promise.all(streams); +}); diff --git a/package.json b/package.json index 21b417d..9bb4a11 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,7 @@ "markdown-it": "^3.0.4", "merge-stream": "^0.1.7", "moment-timezone": "^0.3.0", + "request": "^2.53.0", "require-dir": "^0.1.0", "run-sequence": "^1.0.2", "through2": "^0.6.3", diff --git a/public/en/index.html b/public/en/index.html index c142512..0d72513 100644 --- a/public/en/index.html +++ b/public/en/index.html @@ -11,7 +11,7 @@ - + @@ -34,20 +34,36 @@
Bringing ES6 to the Node Community!
-io.js is an npm compatible platform originally based on node.js™.
- - -Download for -Linux, -Win32, -Win64, -Mac or -others.
- -Weekly Update - March 13th featuring core and community updates (Medium)
-
Nightly releases are available for testing.
+ Bringing ES6 to the Node Community! +
+ ++ io.js is an npm compatible platform originally based on Node.js™. +
+ + + +Weekly Update - March 13th featuring core and community updates (Medium)
+Nightly releases are available for testing.
+ +