Initial Implementation of Node prelaunch
[platform/framework/web/crosswalk-tizen.git] / CONTRIBUTING.md
1 # Contributing to Electron
2
3 :memo: Available Translations: [Korean](https://github.com/electron/electron/tree/master/docs-translations/ko-KR/project/CONTRIBUTING.md) | [Simplified Chinese](https://github.com/electron/electron/tree/master/docs-translations/zh-CN/project/CONTRIBUTING.md) | [Brazilian Portuguese](https://github.com/electron/electron/tree/master/docs-translations/pt-BR/project/CONTRIBUTING.md) | [Dutch](https://github.com/electron/electron/tree/master/docs-translations/nl/project/CONTRIBUTING.md)
4
5 :+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
6
7 This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md).
8 By participating, you are expected to uphold this code. Please report unacceptable
9 behavior to atom@github.com.
10
11 The following is a set of guidelines for contributing to Electron.
12 These are just guidelines, not rules, use your best judgment and feel free to
13 propose changes to this document in a pull request.
14
15 ## Submitting Issues
16
17 * You can create an issue [here](https://github.com/electron/electron/issues/new),
18 but before doing that please read the notes below and include as many details as
19 possible with your report. If you can, please include:
20   * The version of Electron you are using
21   * The operating system you are using
22   * If applicable, what you were doing when the issue arose and what you
23   expected to happen
24 * Other things that will help resolve your issue:
25   * Screenshots and animated GIFs
26   * Error output that appears in your terminal, dev tools or as an alert
27   * Perform a [cursory search](https://github.com/electron/electron/issues?utf8=✓&q=is%3Aissue+)
28   to see if a similar issue has already been submitted
29
30 ## Submitting Pull Requests
31
32 * Include screenshots and animated GIFs in your pull request whenever possible.
33 * Follow the JavaScript, C++, and Python [coding style defined in docs](/docs/development/coding-style.md).
34 * Write documentation in [Markdown](https://daringfireball.net/projects/markdown).
35   See the [Documentation Styleguide](/docs/styleguide.md).
36 * Use short, present tense commit messages. See [Commit Message Styleguide](#git-commit-messages).
37
38 ## Styleguides
39
40 ### General Code
41
42 * End files with a newline.
43 * Place requires in the following order:
44   * Built in Node Modules (such as `path`)
45   * Built in Electron Modules (such as `ipc`, `app`)
46   * Local Modules (using relative paths)
47 * Place class properties in the following order:
48   * Class methods and properties (methods starting with a `@`)
49   * Instance methods and properties
50 * Avoid platform-dependent code:
51   * Use `path.join()` to concatenate filenames.
52   * Use `os.tmpdir()` rather than `/tmp` when you need to reference the
53     temporary directory.
54 * Using a plain `return` when returning explicitly at the end of a function.
55   * Not `return null`, `return undefined`, `null`, or `undefined`
56
57 ### Git Commit Messages
58
59 * Use the present tense ("Add feature" not "Added feature")
60 * Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
61 * Limit the first line to 72 characters or less
62 * Reference issues and pull requests liberally
63 * When only changing documentation, include `[ci skip]` in the commit description
64 * Consider starting the commit message with an applicable emoji:
65   * :art: `:art:` when improving the format/structure of the code
66   * :racehorse: `:racehorse:` when improving performance
67   * :non-potable_water: `:non-potable_water:` when plugging memory leaks
68   * :memo: `:memo:` when writing docs
69   * :penguin: `:penguin:` when fixing something on Linux
70   * :apple: `:apple:` when fixing something on macOS
71   * :checkered_flag: `:checkered_flag:` when fixing something on Windows
72   * :bug: `:bug:` when fixing a bug
73   * :fire: `:fire:` when removing code or files
74   * :green_heart: `:green_heart:` when fixing the CI build
75   * :white_check_mark: `:white_check_mark:` when adding tests
76   * :lock: `:lock:` when dealing with security
77   * :arrow_up: `:arrow_up:` when upgrading dependencies
78   * :arrow_down: `:arrow_down:` when downgrading dependencies
79   * :shirt: `:shirt:` when removing linter warnings