Skip to content

Latest commit

Β 

History

History
144 lines (96 loc) Β· 4.45 KB

CONTRIBUTING.md

File metadata and controls

144 lines (96 loc) Β· 4.45 KB

Contributing to ferdi-server

πŸŽ‰ First off, thanks for taking the time and your effort to make Ferdi better! πŸŽ‰

Table of contents

Code of Conduct

This project and everyone participating in it is governed by the Ferdi Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to stefan@adlk.io.

What should I know before I get started?

For the moment, Ferdi's development is a bit slow but all contributions are highly appreciated. Check this issue for discussion.

How Can I Contribute?

As a basic rule, before filing issues, feature requests or anything else. Take a look at the issues and check if this has not already been reported by another user. If so, engage in the already existing discussion.

Setting up your Development machine

Install System-level dependencies

Node.js, npm, node-gyp

Please make sure you are running the exact node version used by the developers/contributors as specified in the nvmrc file.

Currently, these are the combinations of system dependencies that work on an intel-based machines for MacOS/Linux/Windows (building on an ARM-based machine is still a work-in-progress due to node-sass native dependencies)

node -v
v14.17.3
npm -v
6.14.12
node-gyp -v
v8.0.0

Git

The version 2.23.0 for Git is working fine for development. You can then use the console from Git to do the development procedure.

Clone repository with submodule

git clone https://github.com/getferdi/server.git
cd server
git submodule update --init --recursive

It is important you execute the last command to get the required submodules (recipes).

Install dependencies

  • Run the following command to install all dependencies, and link sibling modules with ferdi-server.
npm i
  • Copy the .env.example file into .env and change the values to match your system.
cp .env.example .env

Note:

  1. Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc
  2. You will have to provide a value for API_KEY that is at least 16 characters long.
  • If using sqlite for local development, create the database directory (whatever is set to DATA in .env)
mkdir -p data
  • Run the database migrations with
node ace migration:refresh
  • To get the full functionality, you will need to have an SMTP server running for local development.

Start development app

npm start --dev

Styleguide

Git Commit Messages format

  • 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 after the first line
  • When only changing documentation, include [ci skip] in the commit description

Javascript Coding style-checker

  • Please use es-lint and the defined rules to maintain a consistent style