zitadel/CONTRIBUTING.md
mffap 4d30d3a7e1
chore: various typos (#3686)
* fix(cli): typo in clis

* chore: fix typos in guides and readme

* markdown lint

* readme typos

* markdown lint

* typos in security.md

* login de

* login en

* console de

* console en

* Apply suggestions from code review

E-Mail instead of Email

Co-authored-by: Florian Forster <florian@caos.ch>

Co-authored-by: Florian Forster <florian@caos.ch>
2022-05-21 10:44:09 +00:00

6.2 KiB

Contributing to ZITADEL

Introduction

Thank you for your interest about how to contribute! As you might know there is more than code to contribute. You can find all information needed to start contributing here.

Please give us and our community the chance to get rid of security vulnerabilities by responsibly disclose this kind of issues by contacting security@zitadel.com.

The strongest part of a community is the possibility to share thoughts. That's why we try to react as soon as possible to your ideas, thoughts and feedback. We love to discuss as much as possible in an open space like in the issues and discussions section here or in our chat, but we understand your doubts and provide further contact options here.

If you want to give an answer or be part of discussions please be kind. Treat others like you want to be treated. Read more about our code of conduct here.

What can I contribute?

For people who are new to ZITADEL: We flag issues which are a good starting point to start contributing. You find them here

Make ZITADEL more popular and give it a

Help shaping the future of ZITADEL by

Contribute

Follow @zitadel on twitter

How to contribute

We strongly recommend to talk to us before you start contributing to streamline our and your work.

We accept contributions through pull requests. You need a github account for that. If you are unfamiliar with git have a look at Github's documentation on creating forks and creating pull requests. Please draft the pull request as soon as possible. Go through the following checklist before you submit the final pull request:

  1. Create a feature branch from the main-branch
  2. Make your changes on the new branch
  3. Merge the latest commit of the main-branch
  4. Use Semantic Release commit messages to simplify creation of release notes. In the title of the pull request correct tagging is required and will be requested by the reviewers.
  5. Request a review from one of the authors. The reviewers will provide you feedback and approve your changes as soon as they are satisfied.

Contribute

The code consists of the following parts:

name description language where to find
backend Service that serves the grpc(-web) and RESTful API go API implementation
console Frontend the user interacts with after he is logged in Angular, Typescript ./console
login Server side rendered frontend the user interacts with during login go, go templates ./internal/api/ui/login
API definitions Specifications of the API Protobuf ./proto/zitadel
docs Project documentation made with docusaurus Docusaurus ./docs

Please validate and test the code before you contribute.

Backend / Login

To keep the code clean and understandable we use golangci-lint. We recommend to format the code with this linter while working on ZITADEL to simplify the review process. The configuration is located here.

To start the backend with a debugger run the main.go-file located in the root of ZITADEL and provide the arguments and env-variables from below. Ensure that the database is running by running docker compose -f ./build/local/docker-compose.yml up db. For additional information please use the documentation of your IDE.

Make sure to use the following configurations:

TODO document workflow

Console

API Definitions

Ensure the provided code meets the official style guide.

The following docker command builds the grpc stub into the correct folders:

docker build -f build/grpc/Dockerfile -t zitadel-base:local . \
    && docker build -f build/zitadel/Dockerfile . -t zitadel-go-base --target go-copy -o .

Contribute Docs

We add the label "good first issue" for problems we think are a good starting point to contribute to ZITADEL.

Make a PR

If you like to contribute fork the ZITADEL repository. After you implemented the new feature create a PullRequest in the ZITADEL repository.

Make sure you use semantic release:

  • feat: New Feature
  • fix: Bug Fix
  • docs: Documentation

Want to start ZITADEL?

You can find an installation guide for all the different environments here: https://docs.zitadel.com/docs/guides/installation

Did you find a security flaw?