# Contributing to the Project We welcome contributions, but request you follow these guidelines. - [Raising issues](#raising-issues) - [Feature requests](#feature-requests) - [Pull-Requests](#pull-requests) - [Coding standards](#coding-standards) - [Best practices](#best-practices) This project adheres to the [Contributor Covenant 1.4](http://contributor-covenant.org/version/1/4/). By participating, you are expected to uphold this code. Please report unacceptable behavior to the core team. ## Raising issues Please raise any bug reports on the relevant project's issue tracker. Be sure to search the list to see if your issue has already been raised. A good bug report is one that make it easy for us to understand what you were trying to do and what went wrong. Provide as much context as possible so we can try to recreate the issue. If possible, include the relevant part of your flow. To do this, select the relevant nodes, press Ctrl-E and copy the flow data from the Export dialog. ## Feature requests For feature requests, please raise them in issues and describe it at a feature to help prioritization. ## Pull-Requests If you want to raise a pull-request with a new feature, or a refactoring of existing code, it may well get rejected if you haven't discussed it on the GitHub issues first. ## Coding standards Please ensure you follow the coding standards used through-out the existing code base. Some basic rules include: - indent with 4-spaces, no tabs. No arguments. - opening brace on same line as `if`/`for`/`function` and so on, closing brace on its own line. ## Best practices Nodes can handle fields in various ways. - `msg.payload` should contains the input required data to run the nodes and the output result - Filesystem `path` should handle string with `{cwd}` to allow absolute or relative path and `{timestamp}` to add random timestamp. - Fields should be able to rerieve data from `msg.*` according to a given property path.