README.md 1.88 KB
Newer Older
pfandzelter's avatar
pfandzelter committed
1
2
# FReD 

pfandzelter's avatar
pfandzelter committed
3
4
[![pipeline status](https://gitlab.tubit.tu-berlin.de/mcc-fred/fred/badges/master/pipeline.svg)](https://gitlab.tubit.tu-berlin.de/mcc-fred/fred/commits/master)
[![coverage report](https://gitlab.tubit.tu-berlin.de/mcc-fred/fred/badges/master/coverage.svg)](https://gitlab.tubit.tu-berlin.de/mcc-fred/fred/commits/master)
pfandzelter's avatar
pfandzelter committed
5
[![License MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://img.shields.io/badge/License-MIT-brightgreen.svg)
pfandzelter's avatar
pfandzelter committed
6

t.schirmer's avatar
t.schirmer committed
7
8
9
## Setup

In order to run zmq please install [zmq](https://zeromq.org/download/) and [czmq](http://czmq.zeromq.org/page:get-the-software).
t.schirmer's avatar
t.schirmer committed
10
On Arch, this is done by running `yay -S czmq-git`. Or use the Docker image.
t.schirmer's avatar
t.schirmer committed
11

12
13
To use Terraform, install [Terraform](https://www.terraform.io/downloads.html).

pfandzelter's avatar
pfandzelter committed
14
15
## Git Workflow

pfandzelter's avatar
pfandzelter committed
16
17
Setup git environment with `sh ./env-setup.sh` (installs git hooks). Be sure to have go installed...

pfandzelter's avatar
pfandzelter committed
18
19
20
21
22
23
24
The `master` branch is protected and only approved pull requests can push to it. Most important part of
the workflow is `rebase`, heres a refresher on merging vs rebasing https://www.atlassian.com/git/tutorials/merging-vs-rebasing.

How do I push changes to the `master` branch?

1.  Switch to `master` -> `git checkout master`
2.  Update `master` -> `git pull --rebase` (ALWAYS use `rebase` when pulling!!!)
pfandzelter's avatar
pfandzelter committed
25
3.  Create new branch from `master` -> `git checkout -b tp/new-feature` (where 'tp/' is your own name/abbreviation)
pfandzelter's avatar
pfandzelter committed
26
27
28
4.  Work on branch and push changes
5.  Rebase master onto branch to not have merge conflicts later -> `git pull origin master --rebase` (AGAIN use`--rebase`)
6.  Push branch again, this time force push to include rebased master (`git push --force`)
pfandzelter's avatar
pfandzelter committed
29
7.  Create a pull request from gitlab.tu-berlin.de
pfandzelter's avatar
pfandzelter committed
30
31
32
8.  Get pull request reviewed and merge it into master

Some last words, keep pull requests small (not 100 files changed etc :D), so they are easier to review and rather create a lot of pull requests than one big