diff --git a/locale/zh-cn/about/community.md b/locale/zh-cn/about/community.md new file mode 100644 index 0000000000000..c5586373e532b --- /dev/null +++ b/locale/zh-cn/about/community.md @@ -0,0 +1,56 @@ +--- +title: Community Committee +layout: about.hbs +--- + +# Community Committee + +The Community Committee (CommComm) is a top-level committee in the Node.js Foundation. The CommComm has authority over outward-facing community outreach efforts, including: + - Community [Evangelism](https://github.com/nodejs/evangelism) + - Education Initiatives + - Cultural Direction of Node.js Foundation + - Community Organization Outreach + - Translation and Internationalization + - Project Moderation/Mediation + - Public Outreach and [Publications](https://medium.com/the-node-js-collection) + +There are four types of involvement with the Community Committee: + + - A **Contributor** is any individual creating or commenting on an issue or pull request. + - A **Collaborator** is a contributor who has been given write access to the repository + - An **Observer** is any individual who has requested or been requested to attend a CommComm meeting. It is also the first step to becoming a Member. + - A **Member** is a collaborator with voting rights who has met the requirements of participation and voted in by the CommComm voting process. + +For the current list of Community Committee members, see the project's [README.md](https://github.com/nodejs/community-committee). + +## Contributors and Collaborators + +It is the mission of CommComm to further build out the Node.js Community. If you're reading this, you're already a part of that community – and as a part of the Node.js Community, we'd love to have your help! + +The [nodejs/community-committee](https://github.com/nodejs/community-committee) GitHub repository is a great place to start. Check out the [issues labeled "Good first issue"](https://github.com/nodejs/community-committee/labels/good%20first%20issue) to see where we're looking for help. If you have your own ideas on how we can engage and build the community, feel free to open your own issues, create pull requests with improvements to our existing work, or help us by sharing your thoughts and ideas in the ongoing discussions we're having in GitHub. + +You can further participate in our ongoing efforts around community building - like localization, evangelism, the Node.js Collection, and others - by digging into their respective repositories and getting involved! + +Before diving in, please be sure to read the [Collaborator Guide](https://github.com/nodejs/community-committee/blob/master/COLLABORATOR_GUIDE.md). + +If you're interested in participating in the Community Committee as a committee member, you should read the section below on **Observers and Membership**, and create an issue asking to be an Observer in our next Community Committee meeting. You can find a great example of such an issue [here](https://github.com/nodejs/community-committee/issues/142). + +## Observers and Membership + +If you're interested in becoming more deeply involved with the Community Committee and its projects, we encourage you to become an active observer, and work toward achieving member status. To become a member you must: + + 1. Attend the bi-weekly meetings, investigate issues tagged as good first issue, file issues and pull requests, and provide insight via GitHub as a contributor or collaborator. + 2. Request to become an Observer by filing an issue. Once added as an Observer to meetings, we will track attendance and participation for 3 months, in accordance with our governance guidelines. You can find a great example of such an issue [here](https://github.com/nodejs/community-committee/issues/142). + 3. When you meet the 3 month minimum attendance, and participation expectations, the CommComm will vote to add you as a member. + +Membership is for 6 months. The group will ask on a regular basis if the expiring members would like to stay on. A member just needs to reply to renew. There is no fixed size of the CommComm. However, the expected target is between 9 and 12. You can read more about membership, and other administrative details, in our [Governance Guide](https://github.com/nodejs/community-committee/blob/master/GOVERNANCE.md). + +Regular CommComm meetings are held bi-monthly in a Zoom video conference, and broadcast live to the public on YouTube. Any community member or contributor can ask that something be added to the next meeting's agenda by logging a GitHub Issue. + +Meeting announcements and agendas are posted before the meeting begins in the organization's [GitHub issues](https://github.com/nodejs/community-committee/issues). You can also find the regularly shceduled meetings on the [Node.js Calendar](https://nodejs.org/calendar). To follow Node.js meeting livestreams on YouTube, subscribe to the Node.js Foundation [YouTube channel](https://www.youtube.com/channel/UCQPYJluYC_sn_Qz_XE-YbTQ). Be sure to click the bell to be notified of new videos! + +## Consensus Seeking Process + +The CommComm follows a [Consensus Seeking](https://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 a consensus cannot be reached that has no objections then a majority wins vote is called. It is expected that the majority of decisions made by the CommComm are via a consensus seeking process and that voting is only used as a last-resort. \ No newline at end of file diff --git a/locale/zh-cn/about/governance.md b/locale/zh-cn/about/governance.md new file mode 100644 index 0000000000000..720a6fe30d06c --- /dev/null +++ b/locale/zh-cn/about/governance.md @@ -0,0 +1,139 @@ +--- +title: Project Governance +layout: about.hbs +--- +# Project Governance + +## Technical Steering Committee + +The project is jointly governed by a Technical Steering Committee (TSC) +which is responsible for high-level guidance of the project. + +The TSC 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 TSC were given to individuals who +had been active contributors, and who have significant +experience with the management of the project. Membership is +expected to evolve over time according to the needs of the project. + +For the current list of TSC members, see the project +[README.md](https://github.com/nodejs/node/blob/master/README.md#tsc-technical-steering-committee). + +## Collaborators + +The [nodejs/node](https://github.com/nodejs/node) GitHub repository is +maintained by the TSC and additional Collaborators who are added by the +TSC 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 TSC and their addition as +Collaborators is discussed during the weekly TSC meeting. + +_Note:_ If you make a significant contribution and are not considered +for commit-access, log an issue or contact a TSC member directly and it +will be brought up in the next TSC meeting. + +Modifications of the contents of the nodejs/node 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 +TSC for discussion by assigning the ***tsc-agenda*** tag to a pull +request or issue. The TSC should serve as the final arbiter where +required. + +For the current list of Collaborators, see the project +[README.md](https://github.com/nodejs/node/blob/master/README.md#current-project-team-members). + +A guide for Collaborators is maintained in +[COLLABORATOR_GUIDE.md](https://github.com/nodejs/node/blob/master/COLLABORATOR_GUIDE.md). + +## TSC Membership + +TSC seats are not time-limited. There is no fixed size of the TSC. +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 TSC +membership beyond these rules. + +The TSC may add additional members to the TSC by a standard TSC motion. + +A TSC member may be removed from the TSC by voluntary resignation, or by +a standard TSC motion. + +Changes to TSC membership should be posted in the agenda, and may be +suggested as any other agenda item (see "TSC Meetings" below). + +No more than 1/3 of the TSC members may be affiliated with the same +employer. If removal or resignation of a TSC member, or a change of +employment by a TSC member, creates a situation where more than 1/3 of +the TSC membership shares an employer, then the situation must be +immediately remedied by the resignation or removal of one or more TSC +members affiliated with the over-represented employer(s). + +## TSC Meetings + +The TSC meets weekly on a Google Hangout On Air. The meeting is run by +a designated moderator approved by the TSC. Each meeting should be +published to YouTube. + +Items are added to the TSC agenda which are considered contentious or +are modifications of governance, contribution policy, TSC 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, +TSC member or the moderator can add the item to the agenda by adding +the ***tsc-agenda*** tag to the issue. + +Prior to each TSC meeting, the moderator will share the Agenda with +members of the TSC. TSC members can add any items they like to the +agenda at the beginning of each meeting. The moderator and the TSC +cannot veto or remove items. + +The TSC 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 sending it as a pull request after the meeting. + +## Consensus Seeking Process + +The TSC 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 TSC 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 approved by a majority of the TSC +or else the discussion will continue. Simple majority wins. diff --git a/locale/zh-cn/about/index.md b/locale/zh-cn/about/index.md new file mode 100644 index 0000000000000..ae1b953a4c113 --- /dev/null +++ b/locale/zh-cn/about/index.md @@ -0,0 +1,44 @@ +--- +layout: about.hbs +title: 关于 Node.js +trademark: Trademark +--- +# 关于 Node.js® + +作为异步事件驱动的 JavaScript 运行时环境,Node 旨在构建可扩展的网络应用程序。在下面的 “hello world” 的示例中,许多连接可同时被处理。在每次连接时都会触发回调函数,但如果没有任务要执行,Node 将会休眠。 + +```javascript +const http = require('http'); + +const hostname = '127.0.0.1'; +const port = 3000; + +const server = http.createServer((req, res) => { + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World\n'); +}); + +server.listen(port, hostname, () => { + console.log(`Server running at http://${hostname}:${port}/`); +}); +``` + +这与现今常见使用 OS 线程的并发模型形成对比。基于线程的网络效率相对较低,且使用较为困难。此外,由于没有锁的概念,Node 用户无需担心锁死进程。Node 中几乎没有函数直接进行 I/O 操作,所以该过程不会阻塞。由于没有任何阻塞,使用 Node 开发可扩展系统非常合理。 + +如果对该编程语言中内容(阻塞)不熟悉,那么有篇关于[阻塞与非阻塞][Blocking vs Non-Blocking]的完整文章。 + +--- + +Node 在设计上与 Ruby 的 [Event Machine][] 或 Python 的 [Twisted][] 等系统相似,并且受其影响。Node 进一步完善了事件模型进行。它将[事件循环][event loop]表现为运行时构建而不是作为一个库。在其他系统中,总是通过阻塞调用来启动事件循环。通常,行为是通过 script 开始处的回调来定义的,并且最终通过调用像 `EventMachine::run()` 这样的(函数)来阻塞启动服务器。在 Node 中,并不存在 start-the-event-loop 的调用。Node 只需在执行入口 script 后进入事件循环。当没有回调执行时,Node 将推出事件循环。这种行为就像浏览器中的 JavaScript - 事件循环对用户是不可见的。 + +HTTP 是 Node 中的头等公民,设计时考虑到了流媒体和低延迟的情况。这是的 Node 非常适合作为 Web 基础库或基础框架。 + +只因为 Node 没有线程设计,并不意味着你无法利用你环境中的多核。可以通过使用 [`child_process.fork()`][] API 产生子进程,并且被设计的容易使用。基于相同接口构建的是 [`cluster`][] 模块,它允许你在进程间共享套接字以启用对核的负载均衡。 + +[Blocking vs Non-Blocking]: https://nodejs.org/en/docs/guides/blocking-vs-non-blocking/ +[`child_process.fork()`]: https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options +[`cluster`]: https://nodejs.org/api/cluster.html +[event loop]: https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/ +[Event Machine]: http://rubyeventmachine.com/ +[Twisted]: http://twistedmatrix.com/ diff --git a/locale/zh-cn/about/privacy.md b/locale/zh-cn/about/privacy.md new file mode 100644 index 0000000000000..cca347af2deca --- /dev/null +++ b/locale/zh-cn/about/privacy.md @@ -0,0 +1,95 @@ +--- +title: Privacy Policy +layout: about.hbs +--- +# Privacy Policy + +NODE.JS FOUNDATION (the "Foundation”) is committed to protecting the privacy of its users. This Privacy Policy (or the “Policy”) applies to its websites (whether currently or in the future supported, hosted or maintained, including without limitation nodejs.org, the “Sites”) and describes the information the Foundation collects about users of the Sites (“users”) and how that information may be used. + +Read the Privacy Policy carefully. By using any Site, you will be deemed to have accepted the terms of the Policy. If you do not agree to accept the terms of the Privacy Policy, you are directed to discontinue accessing or otherwise using the Sites or any materials obtained from the Sites. + +## Changes to the Privacy Policy +The Foundation reserves the right to update and change this Privacy Policy from time to time. Each time a user uses the Sites, the current version of the Privacy Policy applies. Accordingly, a user should check the date of this Privacy Policy (which appears at the top) and review for any changes since the last version. If a user does not agree to the Privacy Policy, the user should not use any of the Sites. Continued use any of the Sites following any revision of this Privacy Policy constitutes an acceptance of any change. + +## What Does this Privacy Policy Cover? +This Privacy Policy covers the Foundation’s treatment of aggregate information collected by the Sites and personal information that you provide in connection with your use of the Sites. This Policy does not apply to the practices of third parties that the Foundation does not own or control, including but not limited to third party services you access through the Foundation, or to individuals that the Foundation does not employ or manage. + +## Children Under 13 Years of Age +Unless specifically indicated within a Site, the Sites are not intended for minor children not of age (including without limitation those under 13), and they should not use the Sites. If you are under 18, you may use the Site only with involvement of a parent or guardian or if you are an emancipated minor. Except as specifically indicated within a Site, we do not knowingly collect or solicit information from, market to or accept services from children. If we become aware that a child under 13 has provided us with personal information without parental consent, we will take reasonable steps to remove such information and terminate the child’s account. If you become aware that a child has provided us with personally identifiable information without parental consent, please contact us at privacy@nodejs.org so we may remove the information. + +## Information About Users that the Foundation Collects +On the Sites, users may order products or services, and register to receive materials. Information collected on the Sites includes community forum content, diaries, profiles, photographs, names, unique identifiers (e.g., social media handles or usernames), contact and billing information (e.g., email address, postal address, telephone, fax), and transaction information. In order to access certain personalized services on the Sites, you may be asked to also create and store a username and password for an account from the Foundation. + +In order to tailor the Foundation’s subsequent communications to users and continuously improve the Sites’ products and services, the Foundation may also ask users to provide information regarding their interests, demographics, experience and detailed contact preferences. the Foundation and third party advertising companies may track information concerning a user’s use of the Sites, such as a user’s IP address. + +## How the Foundation Uses the Information Collected +The Foundation may use collected information for any lawful purpose related to the Foundation’s business, including, but not limited to: + + • To understand a user’s needs and create content that is relevant to the user; + • To generate statistical studies; + • To conduct market research and planning by sending user surveys; + • To notify user referrals of services, information, or products when a user requests that the Foundation send such information to referrals; + • To improve services, information, and products; + • To help a user complete a transaction, or provide services or customer support; + • To communicate back to the user; + • To update the user on services, information, and products; + • To personalize a Site for the user; + • To notify the user of any changes with a Site that may affect the user; + • To enforce terms of use on a Site; and + • To allow the user to purchase products, access services, or otherwise engage in activities the user selects. + +User names, identifications ("IDs"), and email addresses (as well as any additional information that a user may choose to post) may be publicly available on a Site when users voluntarily and publicly disclose personal information, such as when a user posts information in conjunction with content subject to an Open Source license, or as part of a message posted to a public forum or a publicly released software application. The personal information you may provide to the Foundation may reveal or allow others to discern aspects of your life that are not expressly stated in your profile (for example, your picture or your name may reveal your hair color, race or approximate age). By providing personal information to us when you create or update your account and profile or post a photograph, you are expressly and voluntarily accepting our Terms of Use and freely accepting and agreeing to our processing of your personal information in ways set out by this Privacy Policy. Supplying information to us, including any information deemed “sensitive” by applicable law, is entirely voluntary on your part. You may withdraw your consent to the Foundation’s collection and processing of your information by closing your account. You should be aware that your information may continue to be viewable to others after you close your account, such as on cached pages on Internet search engines. Users may not be able to change or remove public postings once posted. Such information may be used by visitors of these pages to send unsolicited messages. The Foundation is not responsible for any consequences which may occur from the third-party use of information that a user chooses to submit to public pages. + +## Opt Out +A user will always be able to make the decision whether to proceed with any activity that requests personal information including personally identifiable information. If a user does not provide requested information, the user may not be able to complete certain transactions. + +Users are not licensed to add other users to a Site (even users who entered into transactions with them) or to their mailing lists without written consent. +The Foundation encourages users to evaluate privacy and security policies of any of the Sites’ transaction partners before entering into transactions or choosing to disclose information. + +## Email +The Foundation may use (or provide to The Linux Foundation or other third party contractors to use) contact information received by the Foundation to email any user with respect to any Foundation or project of The Linux Foundation (a “Project”) opportunity, event or other matter. + +If a user no longer wishes to receive emails from the Foundation or any Project or any Site, the Foundation will (or, if applicable, have The Linux Foundation) provide instructions in each of its emails on how to be removed from any lists. The Foundation will make commercially reasonable efforts to honor such requests. + +## Photographs +Users may have the opportunity to submit photographs to the Sites for product promotions, contests, and other purposes to be disclosed at the time of request. In these circumstances, the Sites are designed to allow the public to view, download, save, and otherwise access the photographs posted. By submitting a photograph, users waive any privacy expectations users have with respect to the security of such photographs, and the Foundation’s use or exploitation of users’ likeness. You may submit a photograph only if you are the copyright holder or if you are authorized to do so under license by the copyright holder, and by submitting a photograph you agree to indemnify and hold the Foundation, its directors, officers, employees and agents harmless from any claims arising out of your submission. By submitting a photograph, you grant the Foundation a perpetual, worldwide, royalty-free license to use the photograph in any media now known of hereinafter invented for any business purpose that the Foundation, at its sole discretion, may decide. + +## Links to Third-Party Sites and Services +The Sites may permit you to access or link to third party websites and information on the Internet, and other websites may contain links to the Sites. When a user uses these links, the user leaves the Sites. The Foundation has not reviewed these third party sites, does not control, and is not responsible for, any of the third party sites, their content or privacy practices. The privacy and security practices of websites accessed from the Sites are not covered by this Privacy Policy, and the Foundation is not responsible for the privacy or security practices or the content of such websites, including but not limited to the third party services you access through the Foundation. If a user decides to access any of the linked sites, the Foundation encourages the user to read the privacy statements of those sites. The user accesses such sites at user’s own risk. + +We may receive information when you use your account to log into a third-party site or application in order to recommend tailored content or advertising to you and to improve your user experience on our site. We may provide reports containing aggregated impression information to third parties to measure Internet traffic and usage patterns. + +## Service Orders +To purchase services, users may be asked to be directed to a third party site, such as PayPal, to pay for their purchases. If applicable, the third party site may collect payment information directly to facilitate a transaction. The Foundation will only record the result of the transaction and any references to the transaction record provided by the third party site. The Foundation is not responsible for the services provided or information collected on such third party sites. + +## Sharing of Information +The Foundation may disclose personal or aggregate information that is associated with your profile as described in this Privacy Policy, as permitted by law or as reasonably necessary to: (1) comply with a legal requirement or process, including, but not limited to, civil and criminal subpoenas, court orders or other compulsory disclosures; (2) investigate and enforce this Privacy Policy or our then-current Terms of Use, if any; (3) respond to claims of a violation of the rights of third parties; (4) respond to customer service inquiries; (5) protect the rights, property, or safety of the Foundation, our users, or the public; or (6) as part of the sale of all or a portion of the assets of the Foundation or as a change in control of the organization or one of its affiliates or in preparation for any of these events. The Foundation reserves the right to supply any such information to any organization into which the Foundation may merge in the future or to which it may make any transfer. Any third party to which the Foundation transfers or sells all or any of its assets will have the right to use the personal and other information that you provide in the manner set out in this Privacy Policy. + +## Is Information About Me Secure? +To keep your information safe, prevent unauthorized access or disclosure, maintain data accuracy, and ensure the appropriate use of information, the Foundation implements industry-standard physical, electronic, and managerial procedures to safeguard and secure the information the Foundation collects. However, the Foundation does not guarantee that unauthorized third parties will never defeat measures taken to prevent improper use of personally identifiable information. + +Access to users’ nonpublic personally identifiable information is restricted to the Foundation and Linux Foundation personnel, including contractors for each such organization on a need-to-know basis. + +User passwords are keys to accounts. Use unique numbers, letters, and special characters for passwords and do not disclose passwords to other people in order to prevent loss of account control. Users are responsible for all actions taken in their accounts. Notify the Foundation of any password compromises, and change passwords periodically to maintain account protection. + +In the event the Foundation becomes aware that the security of a Site has been compromised or user’s personally identifiable information has been disclosed to unrelated third parties as a result of external activity, including but not limited to security attacks or fraud, the Foundation reserves the right to take reasonable appropriate measures, including but not limited to, investigation and reporting, and notification to and cooperation with law enforcement authorities. + +While our aim is to keep data from unauthorized or unsafe access, modification or destruction, no method of transmission on the Internet, or method of electronic storage, is 100% secure and we cannot guarantee its absolute security. + +## Data Protection + +Given the international scope of the Foundation, personal information may be visible to persons outside your country of residence, including to persons in countries that your own country’s privacy laws and regulations deem deficient in ensuring an adequate level of protection for such information. If you are unsure whether this privacy statement is in conflict with applicable local rules, you should not submit your information. If you are located within the European Union, you should note that your information will be transferred to the United States, which is deemed by the European Union to have inadequate data protection. Nevertheless, in accordance with local laws implementing the European Union Privacy Directive on the protection of individuals with regard to the processing of personal data and on the free movement of such data, individuals located in countries outside of the United States of America who submit personal information do thereby consent to the general use of such information as provided in this Privacy Policy and to its transfer to and/or storage in the United States of America. By utilizing any Site and/or directly providing personal information to us, you hereby agree to and acknowledge your understanding of the terms of this Privacy Policy, and consent to have your personal data transferred to and processed in the United States and/or in other jurisdictions as determined by the Foundation, notwithstanding your country of origin, or country, state and/or province of residence. If you do not want your personal information collected and used by the Foundation, please do not visit or use the Sites. + +## Governing Law +This Privacy Policy is governed by the laws of the State of California, United States of America without giving any effect to the principles of conflicts of law. + +## California Privacy Rights +The California Online Privacy Protection Action (“CalOPPA”) permits customers who are California residents and who have provided the Foundation with “personal information” as defined in CalOPPA to request certain information about the disclosure of information to third parties for their direct marketing purposes. If you are a California resident with a question regarding this provision, please contact privacy@nodejs.org. + +Please note that the Foundation does not respond to “do not track” signals or other similar mechanisms intended to allow California residents to opt-out of Internet tracking under CalOPPA. The Foundation may track and/or disclose your online activities over time and across different websites to third parties when you use our services. + +What to Do in the Event of Lost or Stolen Information +You must promptly notify us if you become aware that any information provided by or submitted to our Site or through our Product is lost, stolen, or used without permission at privacy@nodejs.org. + +## Questions or Concerns +If you have any questions or concerns regarding privacy at the Foundation, please send us a detailed message to [privacy@nodejs.org](mailto:privacy@nodejs.org). diff --git a/locale/zh-cn/about/releases.md b/locale/zh-cn/about/releases.md new file mode 100644 index 0000000000000..21df7e5fa7d2e --- /dev/null +++ b/locale/zh-cn/about/releases.md @@ -0,0 +1,86 @@ +--- +layout: about.hbs +title: Releases +--- +# Releases + +The core team defines the roadmap's scope, as informed by Node.js' community. +Releases happen as often as necessary and practical, but never before work is +complete. Bugs are unavoidable, but pressure to ship a release will never +prevail over ensuring the software is correct. The commitment to quality +software is a core tenet of the Node.js project. + +## Patches + +Patch releases: + +- Include bug, performance, and security fixes. +- Do not add nor change public interfaces. +- Do not alter the expected behavior of a given interface. +- Can correct behavior if it is out-of-sync with the documentation. +- Do not introduce changes which make seamless upgrades impossible . + +## Minors + +Minor releases: + +- Include additions and/or refinements of APIs and subsystems. +- Do not generally change APIs nor introduce backwards-incompatible breaking +changes, except where unavoidable. +- Are mostly additive releases. + +## Majors + +Major releases: + +- Usually introduce backwards-incompatible, breaking changes. +- Identify the API Node.js intends to support for the foreseeable future. +- Require conversation, care, collaboration and appropriate scoping by the team +and its users. + +## Scoping Features + +The team can add features and APIs into Node.js when: + +- The need is clear. +- The API or feature has known consumers. +- The API is clean, useful, and easy-to use. + +If when implementing core functionality for Node.js, the team or community may +identify another lower-level API which could have utility beyond Node.js. When +identified, Node.js can expose it for consumers. + +For example, consider the [`EventEmitter`] interface. The need to have an event +subscription model for core modules to consume was clear, and that abstraction +had utility beyond the Node.js core. It was not the case that its interface +couldn't be implemented externally to Node.js; instead, Node.js needed the +abstraction for itself, and also exposed it for use by Node.js consumers. + +Alternatively, it may be that many in the community adopt a pattern to handle +common needs which Node.js does not satisfy. It may be clear that Node.js +should deliver, by default, an API or feature for all Node.js consumers. +Another possibility is a commonly-used compiled asset which is difficult to +deliver across environments. Given this, Node.js may incorporate those changes +directly. + +The core team does not take the decision lightly to add a new API to Node.js. +Node.js has a strong commitment to backwards compatibility. As such, community +input and conversation must occur before the team takes action. Even if an API +is otherwise suitable for addition, the team must identify potential consumers. + +## Deprecation + +On occasion, the team must deprecate a feature or API of Node.js. Before coming +to any final conclusion, the team must identify the consumers of the API and how +they use it. Some questions to ask are: + +- If this API is widely used by the community, what is the need for flagging it +as deprecated? +- Do we have a replacement API, or is there a transitionary path? +- How long does the API remain deprecated before removal? +- Does an external module exist which its consumers can easily substitute? + +The team takes the same careful consideration when deprecating a Node.js API as +they do when adding another. + +[`EventEmitter`]: https://nodejs.org/api/events.html#events_class_eventemitter diff --git a/locale/zh-cn/about/resources.md b/locale/zh-cn/about/resources.md new file mode 100644 index 0000000000000..93177b4c1a8c4 --- /dev/null +++ b/locale/zh-cn/about/resources.md @@ -0,0 +1,31 @@ +--- +layout: about.hbs +title: Logos and Graphics +--- +# Resources + +## Logo Downloads + + Please review the [trademark policy](/about/trademark/) for information about permissible use of Node.js® logos and marks. + + Guidelines for the visual display of the Node.js mark are described in + the [Visual Guidelines](/static/documents/foundation-visual-guidelines.pdf). + +
| [](/static/images/logos/nodejs-new-pantone-black.ai) | +[](/static/images/logos/nodejs-new-pantone-white.ai) | +
| [Node.js standard AI](/static/images/logos/nodejs-new-pantone-black.ai) | +[Node.js reversed AI](/static/images/logos/nodejs-new-pantone-white.ai) | +
| [](/static/images/logos/nodejs-new-black.ai) | +[](/static/images/logos/nodejs-new-white.ai) | +
| [Node.js standard with less color AI](/static/images/logos/nodejs-new-black.ai) | +[Node.js reversed with less color AI](/static/images/logos/nodejs-new-white.ai) | +