diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 4fa1288e8..f5c501831 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,7 +1,7 @@ # Contributing - Read the [style guide](#style-guide). -- Ask for help on the [official Discord server](https://discord.gg/5vBgXk3UcZ) +- Ask for help on the [official Discord server](https://discord.gg/ddeno) - If you are going to work on an issue, mention so in the issue comments before you start working on the issue. - If you are going to work on a new feature, create an issue and discuss with @@ -11,31 +11,37 @@ ## Submitting a Pull Request -- Give the PR a descriptive title. +- Give the PR a descriptive title using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). +- Do not do unrelated changes (only do changes addressed in the title). - Ensure there is a related issue and it is referenced in the pull request text. - Ensure there are tests that cover the changes. - Ensure all of the checks (lint and test) are passing. ## Style Guide -- Use underscores as a separator in filenames. +- File names shall use camel case. - Comply with [these guidelines for inclusive code](https://chromium.googlesource.com/chromium/src/+/master/styleguide/inclusive_code.md). - An exported function must not have more than 4 individual parameters, the rest - arguments should be encorporated inside an object as a single parameter. + arguments should be incorporated inside an object as a single parameter. - Export all interfaces, types, and enums that are used for or inside an exported entity. - Every exported entity must be accompanied by a Typedoc (JSDoc without explicit types) comment block. Ideally, we prefer single line comment block. - Top-level functions should not use arrow syntax. -- Minimize dependencies; do not make circular imports. +- Minimize dependencies (do not add a dependency unless it is absolutely + necessary and has been discussed on the Discord Server). +- Do not make circular imports. - Utilize functional API wherever possible and avoid usage of ES6 classes. -- Follow - [Convention Over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration) - wherever possible. - Please follow the [guidelines for inclusive code](https://chromium.googlesource.com/chromium/src/+/master/styleguide/inclusive_code.md). +## Maintainer Guide + +- Add related labels to issues and PRs when they get opened (do not close unlabeled issues/PRs). +- Only merge PRs using squash commits. +- Before merging a PR confirm that its complying with all requirements. + ## Types Guide - Must use camel case (same property name as in the docs just in camel case).