|
|
This page describes Kea project workflow. Everyone who contribute to Kea project is expected to read it at least once.
|
|
|
|
|
|
# Gitlab setup
|
|
|
- create an account if you don't have it yet.
|
|
|
- go to gitlab.isc.org, click on your user icon in right top corner and click settings from the drop menu. Then click ssh keys icon on the left panel.
|
|
|
- There are links there that explain how to generate your keys if you somehow haven't done that already. Anyway, the idea is to paste the content of your ~/.ssh/key-name.pub file there.
|
|
|
- As a completely optional step, I configured my ssh client to use separate key for gitlab, by adding this to my ~/.ssh/config file:
|
|
|
```
|
|
|
Host gitlab.isc.org
|
|
|
IdentityFile ~/.ssh/id_ed25519_gitlab
|
|
|
```
|
|
|
|
|
|
# Set up your git repository
|
|
|
|
|
|
If converting existing trac or github repository:
|
|
|
```
|
|
|
git remote rename origin trac
|
|
|
git remote add origin git@gitlab.isc.org:isc-projects/kea.git
|
|
|
git fetch origin
|
|
|
git ... // set the local origin to track remote origin on gitlab
|
|
|
|
|
|
- get your usual repo ready
|
|
|
```
|
|
|
git checkout master
|
|
|
git clean -fxd
|
|
|
git pull
|
|
|
```
|
|
|
|
|
|
- Add gitlab as an additional repository:
|
|
|
```
|
|
|
git remote add gitlab git@gitlab.isc.org:isc-projects/kea.git
|
|
|
```
|
|
|
|
|
|
- ```git fetch gitlab```
|
|
|
|
|
|
# Working on an issue
|
|
|
|
|
|
- pick a ticket in trac that you want to copy. Mark it somehow in trac that it's being handled in gitlab.
|
|
|
|
|
|
- create issue in gitlab: go to https://gitlab.isc.org/tomek/kea, click on issues on the left, then "New Issue". Make sure it's assigned to kea1.5 milestone. Assign labels as necessary. Add labels if they're missing.
|
|
|
|
|
|
- Assign the issue to yourself. Also go to https://gitlab.isc.org/tomek/kea/boards and move it to appropriate stage. Add label "doing".
|
|
|
|
|
|
- Open the issue page, e.g. https://gitlab.isc.org/tomek/kea/issues/3 and click create merge request. a branch will be created for you.
|
|
|
|
|
|
- git pull gitlab. Note the branch that was created will be there. Check it out and start working on the code.
|
|
|
|
|
|
- Commit your changes, push it on that branch.
|
|
|
|
|
|
- Once you are done, do the following: unassign yourself from the issue and merge request, remove "doing" label, add "review" label. Open the pull request, edit it and click on "remove WIP status".
|
|
|
|
|
|
# Reviewing an issue
|
|
|
|
|
|
- as a reviewer: go to Issues->Board page. Look for an issue in review state that has no assignee. Assign to yourself. Review. Put some snarky comments. Add some more comments. Once you're done, reassign back to the reviewer.
|
|
|
|
|
|
- as a developer: look for issues that are assigned to you. Do your best with addressing the comments. Push your improvements to the branch. Once done reassign back to the reviewer. Do not merge until the reviewer says the code is ready.
|
|
|
|
|
|
# Merging code
|
|
|
|
|
|
- Kea project is currently set up in a way that allows only fast-forward merges. This is not the only possible option, it's just something to try out. If you don't like it, it doesn't mean that the whole gitlab is bad. We can adjust as needed.
|
|
|
|
|
|
- Currently we don't have any CI integrated with gitlab. Before merging, please run unit-tests as we did in the trac days.
|
|
|
|
|
|
- Once you push your changes to master, gitlab should close the merge request and the ticket.
|
|
|
|
|
|
- Don't forget to update the commit-id in ChangeLog.
|
|
|
|
|
|
- Write down your thoughts. If needed, please update this page. It's an experiment. |
|
|
\ No newline at end of file |