mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
📚 Update Contributing steps (#2187)
* 📚 Update Contributing steps * Update CONTRIBUTING.md Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com> * Update CONTRIBUTING.md Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com> Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com>
This commit is contained in:
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
Great that you are here and you want to contribute to n8n
|
Great that you are here and you want to contribute to n8n
|
||||||
|
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
|
|
||||||
- [Code of Conduct](#code-of-conduct)
|
- [Code of Conduct](#code-of-conduct)
|
||||||
@@ -15,16 +14,14 @@ Great that you are here and you want to contribute to n8n
|
|||||||
- [Extend Documentation](#extend-documentation)
|
- [Extend Documentation](#extend-documentation)
|
||||||
- [Contributor License Agreement](#contributor-license-agreement)
|
- [Contributor License Agreement](#contributor-license-agreement)
|
||||||
|
|
||||||
|
## Code of conduct
|
||||||
## Code of Conduct
|
|
||||||
|
|
||||||
This project and everyone participating in it are governed by the Code of
|
This project and everyone participating in it are governed by the Code of
|
||||||
Conduct which can be found in the file [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
|
Conduct which can be found in the file [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
|
||||||
By participating, you are expected to uphold this code. Please report
|
By participating, you are expected to uphold this code. Please report
|
||||||
unacceptable behavior to jan@n8n.io.
|
unacceptable behavior to jan@n8n.io.
|
||||||
|
|
||||||
|
## Directory structure
|
||||||
## Directory Structure
|
|
||||||
|
|
||||||
n8n is split up in different modules which are all in a single mono repository.
|
n8n is split up in different modules which are all in a single mono repository.
|
||||||
|
|
||||||
@@ -36,7 +33,8 @@ The most important directories:
|
|||||||
- [/packages/cli](/packages/cli) - CLI code to run front- & backend
|
- [/packages/cli](/packages/cli) - CLI code to run front- & backend
|
||||||
- [/packages/core](/packages/core) - Core code which handles workflow
|
- [/packages/core](/packages/core) - Core code which handles workflow
|
||||||
execution, active webhooks and
|
execution, active webhooks and
|
||||||
workflows
|
workflows. **Contact n8n before
|
||||||
|
starting on any changes here**
|
||||||
- [/packages/design-system](/packages/design-system) - Vue frontend components
|
- [/packages/design-system](/packages/design-system) - Vue frontend components
|
||||||
- [/packages/editor-ui](/packages/editor-ui) - Vue frontend workflow editor
|
- [/packages/editor-ui](/packages/editor-ui) - Vue frontend workflow editor
|
||||||
- [/packages/node-dev](/packages/node-dev) - CLI to create new n8n-nodes
|
- [/packages/node-dev](/packages/node-dev) - CLI to create new n8n-nodes
|
||||||
@@ -44,17 +42,14 @@ The most important directories:
|
|||||||
- [/packages/workflow](/packages/workflow) - Workflow code with interfaces which
|
- [/packages/workflow](/packages/workflow) - Workflow code with interfaces which
|
||||||
get used by front- & backend
|
get used by front- & backend
|
||||||
|
|
||||||
|
## Development setup
|
||||||
## Development Setup
|
|
||||||
|
|
||||||
If you want to change or extend n8n you have to make sure that all needed
|
If you want to change or extend n8n you have to make sure that all needed
|
||||||
dependencies are installed and the packages get linked correctly. Here a short guide on how that can be done:
|
dependencies are installed and the packages get linked correctly. Here a short guide on how that can be done:
|
||||||
|
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
|
#### Build tools
|
||||||
#### Build Tools
|
|
||||||
|
|
||||||
The packages which n8n uses depend on a few build tools:
|
The packages which n8n uses depend on a few build tools:
|
||||||
|
|
||||||
@@ -86,18 +81,23 @@ So for the setup to work correctly lerna has to be installed globally like this:
|
|||||||
npm install -g lerna
|
npm install -g lerna
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Actual n8n setup
|
### Actual n8n setup
|
||||||
|
|
||||||
> **IMPORTANT**: All the steps bellow have to get executed at least once to get the development setup up and running!
|
> **IMPORTANT**: All the steps bellow have to get executed at least once to get the development setup up and running!
|
||||||
|
|
||||||
|
|
||||||
Now that everything n8n requires to run is installed the actual n8n code can be
|
Now that everything n8n requires to run is installed the actual n8n code can be
|
||||||
checked out and set up:
|
checked out and set up:
|
||||||
|
|
||||||
1. Clone the repository
|
1. [Fork](https://guides.github.com/activities/forking/#fork) the n8n repository
|
||||||
|
|
||||||
|
1. Clone your forked repository
|
||||||
```
|
```
|
||||||
git clone https://github.com/n8n-io/n8n.git
|
git clone https://github.com/<your_github_username>/n8n.git
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Add the original n8n repository as `upstream` to your forked repository
|
||||||
|
```
|
||||||
|
git remote add upstream https://github.com/n8n-io/n8n.git
|
||||||
```
|
```
|
||||||
|
|
||||||
1. Go into repository folder
|
1. Go into repository folder
|
||||||
@@ -115,8 +115,6 @@ checked out and set up:
|
|||||||
npm run build
|
npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Start
|
### Start
|
||||||
|
|
||||||
To start n8n execute:
|
To start n8n execute:
|
||||||
@@ -130,7 +128,7 @@ To start n8n with tunnel:
|
|||||||
./packages/cli/bin/n8n start --tunnel
|
./packages/cli/bin/n8n start --tunnel
|
||||||
```
|
```
|
||||||
|
|
||||||
## Development Cycle
|
## Development cycle
|
||||||
|
|
||||||
While iterating on n8n modules code, you can run `npm run dev`. It will then
|
While iterating on n8n modules code, you can run `npm run dev`. It will then
|
||||||
automatically build your code, restart the backend and refresh the frontend
|
automatically build your code, restart the backend and refresh the frontend
|
||||||
@@ -147,12 +145,11 @@ automatically build your code, restart the backend and refresh the frontend
|
|||||||
npm run start
|
npm run start
|
||||||
```
|
```
|
||||||
1. Create tests
|
1. Create tests
|
||||||
1. Run all tests
|
1. Run all [tests](#test-suite)
|
||||||
```
|
```
|
||||||
npm run test
|
npm run test
|
||||||
```
|
```
|
||||||
1. Commit code and create pull request
|
1. Commit code and [create a pull request](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)
|
||||||
|
|
||||||
|
|
||||||
### Test suite
|
### Test suite
|
||||||
|
|
||||||
@@ -165,34 +162,26 @@ If that gets executed in one of the package folders it will only run the tests
|
|||||||
of this package. If it gets executed in the n8n-root folder it will run all
|
of this package. If it gets executed in the n8n-root folder it will run all
|
||||||
tests of all packages.
|
tests of all packages.
|
||||||
|
|
||||||
|
## Create custom nodes
|
||||||
|
|
||||||
|
> **IMPORTANT**: Avoid use of external libraries to ensure your custom nodes can be reviewed and merged quickly.
|
||||||
## Create Custom Nodes
|
|
||||||
|
|
||||||
Learn about [using the node dev CLI](https://docs.n8n.io/nodes/creating-nodes/node-dev-cli.html) to create custom nodes for n8n.
|
Learn about [using the node dev CLI](https://docs.n8n.io/nodes/creating-nodes/node-dev-cli.html) to create custom nodes for n8n.
|
||||||
|
|
||||||
More information can
|
More information can be found in the documentation of [n8n-node-dev](https://github.com/n8n-io/n8n/tree/master/packages/node-dev), a small CLI which helps with n8n-node-development.
|
||||||
be found in the documentation of [n8n-node-dev](https://github.com/n8n-io/n8n/tree/master/packages/node-dev), which is a small CLI which
|
|
||||||
helps with n8n-node-development.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Create a new node to contribute to n8n
|
## Create a new node to contribute to n8n
|
||||||
|
|
||||||
Follow this tutorial on [creating your first node](https://docs.n8n.io/nodes/creating-nodes/create-node.html) for n8n.
|
Follow this tutorial on [creating your first node](https://docs.n8n.io/nodes/creating-nodes/create-node.html) for n8n.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Checklist before submitting a new node
|
## Checklist before submitting a new node
|
||||||
|
|
||||||
There are several things to keep in mind when creating a node. To help you, we prepared a [checklist](https://docs.n8n.io/nodes/creating-nodes/node-review-checklist.html) that covers the requirements for creating nodes, from preparation to submission. This will help us be quicker to review and merge your PR.
|
There are several things to keep in mind when creating a node. To help you, we prepared a [checklist](https://docs.n8n.io/nodes/creating-nodes/node-review-checklist.html) that covers the requirements for creating nodes, from preparation to submission. This will help us be quicker to review and merge your PR.
|
||||||
|
|
||||||
|
## Extend documentation
|
||||||
## Extend Documentation
|
|
||||||
|
|
||||||
The repository for the n8n documentation on [docs.n8n.io](https://docs.n8n.io) can be found [here](https://github.com/n8n-io/n8n-docs).
|
The repository for the n8n documentation on [docs.n8n.io](https://docs.n8n.io) can be found [here](https://github.com/n8n-io/n8n-docs).
|
||||||
|
|
||||||
|
|
||||||
## Contributor License Agreement
|
## Contributor License Agreement
|
||||||
|
|
||||||
That we do not have any potential problems later it is sadly necessary to sign a [Contributor License Agreement](CONTRIBUTOR_LICENSE_AGREEMENT.md). That can be done literally with the push of a button.
|
That we do not have any potential problems later it is sadly necessary to sign a [Contributor License Agreement](CONTRIBUTOR_LICENSE_AGREEMENT.md). That can be done literally with the push of a button.
|
||||||
|
|||||||
Reference in New Issue
Block a user