1 # Contributing to Node-RED
3 We welcome contributions, but request you follow these guidelines.
7 Please raise any bug reports on the project's
8 [issue tracker](https://github.com/node-red/node-red/issues?state=open). Be sure to
9 search the list to see if your issue has already been raised.
11 A good bug report is one that make it easy for us to understand what you were
12 trying to do and what went wrong.
14 Provide as much context as possible so we can try to recreate the issue.
15 If possible, include the relevant part of your flow. To do this, select the
16 relevant nodes, press Ctrl-E and copy the flow data from the Export dialog.
18 At a minimum, please include:
20 - Version of Node-RED - either release number if you downloaded a zip, or the first few lines of `git log` if you are cloning the repository directly.
21 - Version of node.js - what does `node -v` say?
26 For feature requests, please raise them on the [mailing list](https://groups.google.com/forum/#!forum/node-red).
30 ### Changes to existing code
31 if you want to raise a pull-request with a new feature, or a refactoring
32 of existing code, it may well get rejected if you haven't discussed it on
33 the [mailing list](https://groups.google.com/forum/#!forum/node-red) first.
37 The plugin nature of Node-RED means anyone can create a new node to extend
40 We want to avoid duplication as that can lead to confusion. Many of our existing
41 nodes offer a starting point of functionality. If they are missing features,
42 we would rather extend them than add separate 'advanced' versions. But the key
43 to that approach is getting the UX right to not lose the simplicity.
45 To contribute a new node, please raise a pull-request against the
46 `node-red-nodes` repository.
48 Eventually, the nodes will be npm-installable, but we're not there yet. We'll
49 also have some sort of registry of nodes to help with discoverability.
53 Please ensure you follow the coding standards used through-out the existing
54 code base. Some basic rules include:
56 - all files must have the Apache license in the header.
57 - indent with 4-spaces, no tabs. No arguments.
58 - opening brace on same line as `if`/`for`/`function`/etc, closing brace on its
61 ### Contributor License Aggreement
63 In order for us to accept pull-requests, the contributor must first complete
64 a Contributor License Agreement (CLA). This clarifies the intellectual
65 property license granted with any contribution. It is for your protection as a
66 Contributor as well as the protection of IBM and its customers; it does not
67 change your rights to use your own Contributions for any other purpose.
69 You can download the CLAs here:
71 - [individual](http://nodered.org/cla/node-red-cla-individual.pdf)
72 - [corporate](http://nodered.org/cla/node-red-cla-corporate.pdf)
74 If you are an IBMer, please contact us directly as the contribution process is