3.8 KiB
3.8 KiB
Contributing to Electron
📝 Available Translations: Korean | Simplified Chinese
👍🎉 First off, thanks for taking the time to contribute! 🎉👍
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to atom@github.com.
The following is a set of guidelines for contributing to Electron. These are just guidelines, not rules, use your best judgment and feel free to propose changes to this document in a pull request.
Submitting Issues
- You can create an issue here,
but before doing that please read the notes below and include as many details as
possible with your report. If you can, please include:
- The version of Electron you are using
- The operating system you are using
- If applicable, what you were doing when the issue arose and what you expected to happen
- Other things that will help resolve your issue:
- Screenshots and animated GIFs
- Error output that appears in your terminal, dev tools or as an alert
- Perform a cursory search to see if a similar issue has already been submitted
Submitting Pull Requests
- Include screenshots and animated GIFs in your pull request whenever possible.
- Follow the JavaScript, C++, and Python coding style defined in docs.
- Write documentation in Markdown. See the Documentation Styleguide.
- Use short, present tense commit messages. See Commit Message Styleguide.
Styleguides
General Code
- End files with a newline.
- Place requires in the following order:
- Built in Node Modules (such as
path) - Built in Electron Modules (such as
ipc,app) - Local Modules (using relative paths)
- Built in Node Modules (such as
- Place class properties in the following order:
- Class methods and properties (methods starting with a
@) - Instance methods and properties
- Class methods and properties (methods starting with a
- Avoid platform-dependent code:
- Use
path.join()to concatenate filenames. - Use
os.tmpdir()rather than/tmpwhen you need to reference the temporary directory.
- Use
- Using a plain
returnwhen returning explicitly at the end of a function.- Not
return null,return undefined,null, orundefined
- Not
Git Commit Messages
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally
- When only changing documentation, include
[ci skip]in the commit description - Consider starting the commit message with an applicable emoji:
- 🎨
:art:when improving the format/structure of the code - 🐎
:racehorse:when improving performance - 🚱
:non-potable_water:when plugging memory leaks - 📝
:memo:when writing docs - 🐧
:penguin:when fixing something on Linux - 🍎
:apple:when fixing something on macOS - 🏁
:checkered_flag:when fixing something on Windows - 🐛
:bug:when fixing a bug - 🔥
:fire:when removing code or files - 💚
:green_heart:when fixing the CI build - ✅
:white_check_mark:when adding tests - 🔒
:lock:when dealing with security - ⬆️
:arrow_up:when upgrading dependencies - ⬇️
:arrow_down:when downgrading dependencies - 👕
:shirt:when removing linter warnings
- 🎨