diff --git a/.githooks/pre-commit/filter.sh b/.githooks/pre-commit/filter.sh index 3156a8bd2aad..b600babd3fb9 100755 --- a/.githooks/pre-commit/filter.sh +++ b/.githooks/pre-commit/filter.sh @@ -1,8 +1,8 @@ #!/bin/sh EMAIL=$(git config user.email) -if [[ $EMAIL == *"alibaba-inc"* ]] +if [ $EMAIL == *"alibaba-inc"* ] || [ $EMAIL == *"taobao"* ] then -echo "email with *.alibaba-inc.com are not allowed"; +echo "email with *.alibaba-inc.com or *.taobao.com are not allowed"; exit 1; else echo ""; diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index f607fc4d0976..8b5dae60d5ad 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -12,7 +12,7 @@ Thank you for reporting an issue. 2. 我们推荐如果是小问题(错别字修改,小的 bug fix)直接提交 PR。 3. 如果是一个新需求,请提供:详细需求描述,最好是有伪代码实现。 4. 如果是一个 BUG,请提供:复现步骤,错误日志以及相关配置,并尽量填写下面的模板中的条目。 -5. 如果可以,请使用 `egg-init --type=simple bug` 提供一个最小可复现的代码仓库,方便我们排查问题。 +5. 如果可以,请使用 `midway-init` 提供一个最小可复现的代码仓库,方便我们排查问题。 6. 扩展阅读:[如何向开源项目提交无法解答的问题](https://zhuanlan.zhihu.com/p/25795393) --> diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000000..67cbabfc374e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,181 @@ +# Contribution Guide + +If you have any comment or advice, please report your [issue](https://github.com/midwayjs/midway/issues), +or make any change as you wish and submit an [PR](https://github.com/midwayjs/midway/pulls). + +## Reporting New Issues + +- Please specify what kind of issue it is. +- Before you report an issue, please search for related issues. Make sure you are not going to open a duplicate issue. +- Explain your purpose clearly in tags(see **Useful Tags**), title, or content. + +Egg group members will confirm the purpose of the issue, replace more accurate tags for it, identify related milestone, and assign developers working on it. +Tags can be divided into two groups, `type` and `scope`. + +- type: What kind of issue, e.g. `feature`, `bug`, `documentation`, `performance`, `support` ... +- scope: What did you modified. Which files are modified, e.g. `core: xx`, `plugin: xx`, `deps: xx` + +### Useful Tags + +- `support`: the issue asks helps from developers of our group. If you need helps to locate and handle problems or have any idea to improve Egg, mark it as `support`. +- `bug`: if you find a problem which possiblly could be a bug, please tag it as `bug`. Then our group members will review that issue. If it is confirmed as a bug by our group member, this issue will be tagged as `confirmed`. + - A confirmed bug will be resolved prior. + - If the bug has negative impact on running online application, it will be tagged as `critical`, which refers to top priority, and will be fixed ASAP! + - A bug will be fixed from lowest necessary version, e.g. A bug needs to be fixed from 0.9.x, then this issue will be tagged as `0.9`, `0.10`, `1.0`, `1.1`, referring that the bug is required to be fixed in those versions. +- `core: xx`: the issue is related to core, e.g. `core: loader` refers that the issue is related with `loader` config. +- `plugin: xx`: the issue is related to plugins. e.g. `plugin: session` refers that the issue is related to `session` plugin. +- `deps: xx`: the issue is related to `dependencies`, e.g. `deps:egg-cors` refers that the issue is related to `egg-cors` +- `chore: documentation`: the issue is about documentation. Need to modify documentation. + +## Documentation + +All features must be submitted along with documentations. The documentations should satify several requirements. + +- Documentations must clarify one or more aspects of the feature, depending on the nature of feature: what it is, why it happens and how it works. +- It's better to include a series of procedues to explain how to fix the problem. You are also encourgaed to provide **simple, but self-explanatory** demo. +All demos should be compiled at [midwayjs/examples](https://github.com/midwayjs/midway-examples) repository. +- Please provide essential urls, such as application process, terminology explainations and references. + +## Submitting Code + +### Pull Request Guide + +If you are developer of egg repo and you are willing to contribute, feel free to create a new branch, finish your modification and submit a PR. Egg group will review your work and merge it to master branch. + +```bash +# Create a new branch for development. The name of branch should be semantic, avoiding words like 'update' or 'tmp'. We suggest to use feature/xxx, if the modification is about to implement a new feature. +$ git checkout -b branch-name + +# Run the test after you finish your modification. Add new test cases or change old ones if you feel necessary +$ npm test + +# If your modification pass the tests, congradulations it's time to push your work back to us. Notice that the commit message should be wirtten in the following format. +$ git add . # git add -u to delete files +$ git commit -m "fix(role): role.use must xxx" +$ git push origin branch-name +``` + +Then you can create a Pull Request at [egg](https://github.com/midwayjs/midway/pulls) + +No one can garantee how much will be remembered about certain PR after some time. To make sure we can easily recap what happened previously, please provide the following information in your PR. + +1. Need: What function you want to achieve (Generally, please point out which issue is related). +2. Updating Reason: Different with issue. Briefly describe your reason and logic about why you need to make such modification. +3. Related Testing: Briefly descirbe what part of testing is relevant to your modification. +4. User Tips: Notice for Egg users. You can skip this part, if the PR is not about update in API or potential compatibility problem. + +### Style Guide + +Eslint can help to identify styling issues that may exist in your code. Your code is required to pass the test from eslint. Run the test locally by `$ npm run lint`. + +### Commit Message Format + +You are encouraged to use [angular commit-message-format](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines) to write commit message. In this way, we could have a more trackable history and an automatically generated changelog. + +```xml +(): + + + +