跳到主要内容

贡献

Docusaurus 2 目前正处于开发阶段。我们的 早期用户已经在使用它了。我们欢迎您一起推动 Docusaurus 的下一个版本。

Open Source Guides 网站收集了一些资源,供个人、社区和企业学习如何运作及参与开源项目。开源项目的贡献者和新人都会发现以下指南特别有用:

Code of Conduct#

Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.

参与进来#

为 Docusaurus 做出贡献的方式有许多种,其中许多方式不涉及代码的编写。以下是一写 There are many ways to contribute to Docusaurus, and many of them do not involve writing any code. Here's a few ideas to get started:

  • 开始使用 Docusaurus 2 吧!请仔细阅读 快速入门 指南。Docusaurus 的功能是否符合预期?如果回答是否定的,那就是我们需要改进的地方。请 提交一个 issue 告诉我们。
  • 浏览所有 v2.0 issues。如果你发现有能解决的问题,请 提交 pull request。标记为 Good first issue 的 issues 是练手的好对象。
  • 帮助我们改进文档。如果你发现文档中有任何令人困惑或可以改进的地方,请告诉我们。我们还有 一组针对 v2 文档的 issue,这些是我们正在安排编写的 v2 文档。你可以在这里领取一份文档并帮我们编写。
  • 看社区中其他人提交的 功能申请,如果你看到可以实现的功能,请向我们提交 pull request。

Contributions are very welcome. If you think you need help planning your contribution, please ping us on Twitter at @docusaurus and let us know you are looking for a bit of help.

加入我们的 Discord 频道#

To participate in Docusaurus 2 dev, join the #docusaurus-2-dev channel.

我们的开发流程#

Docusaurus uses GitHub as its source of truth. The core team will be working directly there. All changes will be public from the beginning.

When a change made on GitHub is approved, it will be checked by our continuous integration system, CircleCI.

报告新 issues#

When opening a new issue, always make sure to fill out the issue template. This step is very important! Not doing so may result in your issue not managed in a timely fashion. Don't take this personally if this happens, and feel free to open a new issue once you've gathered all the information required by the template.

  • One issue, one bug: Please report a single bug per issue.
  • Provide reproduction steps: List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort.

报告 bug#

We use GitHub Issues for our public bugs. If you would like to report a problem, take a look around and see if someone already opened an issue about it. If you a are certain this is a new, unreported bug, you can submit a bug report.

If you have questions about using Docusaurus, contact the Docusaurus Twitter account at @docusaurus, and we will do our best to answer your questions.

You can also file issues as feature requests or enhancements. If you see anything you'd like to be implemented, create an issue with feature template

报告安全相关的 bug#

Facebook has a bounty program for the safe disclosure of security bugs. With that in mind, please do not file public issues; go through the process outlined on that page.

Working on Docusaurus code#

Installation#

  1. Ensure you have Yarn installed
  2. After cloning the repository, run yarn install in the root of the repository
  3. To start a local development server serving the Docusaurus docs, go into the website directory and run yarn start

Semantic commit messages#

See how a minor change to your commit message style can make you a better programmer.

Format: <type>(<scope>): <subject>

<scope> is optional

Example

feat: allow overriding of webpack config
^--^ ^------------^
| |
| +-> Summary in present tense.
|
+-------> Type: chore, docs, feat, fix, refactor, style, or test.

The various types of commits:

  • feat: (new feature for the user, not a new feature for build script)
  • fix: (bug fix for the user, not a fix to a build script)
  • docs: (changes to the documentation)
  • style: (formatting, missing semi colons, etc; no production code change)
  • refactor: (refactoring production code, eg. renaming a variable)
  • test: (adding missing tests, refactoring tests; no production code change)
  • chore: (updating grunt tasks etc; no production code change)

Use lower case not title case!

Code conventions#

Style guide#

Prettier will catch most styling issues that may exist in your code. You can check the status of your code styling by simply running npm run prettier.

However, there are still some styles that Prettier cannot pick up.

General#

  • Most important: Look around. Match the style you see used in the rest of the project. This includes formatting, naming files, naming things in code, naming things in documentation.
  • "Attractive"

Documentation#

  • Do not wrap lines at 80 characters - configure your editor to soft-wrap when editing documentation.

Pull requests#

Your first pull request#

So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at.

Working on your first Pull Request? You can learn how from this free video series:

How to Contribute to an Open Source Project on GitHub

We have a list of beginner friendly issues to help you get your feet wet in the Docusaurus codebase and familiar with our contribution process. This is a great place to get started.

Proposing a change#

If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can also file an issue with feature template.

If you intend to change the public API (e.g., something in docusaurus.config.js), or make any non-trivial changes to the implementation, we recommend filing an issue with proposal template and including [Proposal] in the title. This lets us reach an agreement on your proposal before you put significant effort into it. These types of issues should be rare.

If you're only fixing a bug, it's fine to submit a pull request right away but we still recommend to file an issue detailing what you're fixing. This is helpful in case we don't accept that specific fix but want to keep track of the issue.

Sending a pull request#

Small pull requests are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it. It is recommended to follow this commit message style.

Please make sure the following is done when submitting a pull request:

  1. Fork the repository and create your branch from master.
  2. Add the copyright notice to the top of any code new files you've added.
  3. Describe your test plan in your pull request description. Make sure to test your changes!
  4. Make sure your code lints (yarn prettier && yarn lint).
  5. Make sure your Jest tests pass (yarn test).
  6. If you haven't already, sign the CLA.

All pull requests should be opened against the master branch.

Test plan#

A good test plan has the exact commands you ran and their output, provides screenshots or videos if the pull request changes UI.

  • If you've changed APIs, update the documentation.

Breaking changes#

When adding a new breaking change, follow this template in your pull request:

### New breaking change here
- **Who does this affect**:
- **How to migrate**:
- **Why make this breaking change**:
- **Severity (number of people affected x effort)**:

源码文件顶部的版权声明#

将以下内容复制并粘贴到新文件的顶部:

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

贡献者许可协议 (CLA)#

为了接受你的 pull request,我们需要你提交 CLA。你只需要执行此操作一次即可,因此,如果你已经为另一个 Facebook 的开源项目执行过此操作了,那就可以了。如果你是第一次提交 pull request,则 Facebook 的 GitHub Bot 将给你一个带有指向 CLA 表单的链接。也可以 在此处完成 CLA 的提交

接下来?#

Docusaurus 的核心团队会监控所有 pull requests。请遵循上述准则,并保持 pull requests 的一致。

许可证#

一旦你向 Docusaurus 贡献了内容,即表示你所贡献的内容将采用 MIT 许可证授权。

最后由 wangsai 更新