Documentation
Mailing lists and collaborative tools
- Project web page: has to come
- General mailing list: pCT@uib.no
- Slack project
Software installation
Software repository
We use the gitlab server hosted by IT of University of Bergen. We start with a repository per work package (wp). As there is overlap in terms of software, this structure might change in the future.
Development workflow
Everyone can access the main repository, however only a small group of administrators has write access. However, every user can fork a repository, this creates a copy where a single developer or a group of developers have full access.
The main repository has the following branches:
- production: the latest production code, in this branch we have release tags
- master: the latest stable release
- dev: the development branch
In addition to those main branches there can be feature branches where development happens detached from the main branches. A feature branch is based on the dev branch and has a limited lifetime.
Creating a project fork
A project fork is a copy of the original repository where a user or a group of users has/have full control. All development in our project is carried out in the individual forks. Branches of project forks are merged back into the main repository by merge requests, preferably via fast forward merges. That requires developers to rebase project forks to the main repository and resolve all conflicts before requesting a merge.
Making local development copy
Clone directly from your development fork, replace user and wpn (e.g. wp7) appropriately.
git clone https://user@gitlab.uib.no/user/wpn.git
This repository will get the name origin in your local clone.
If you have cloned already from the main repository, the upstream link can be changed as follows
git remote set-url origin https://user@gitlab.uib.no/user/wpn.git
Pushing to development fork
Once you have added commits to e.g. the dev branch, those commits can be pushed upstream to the fork.
git push origin dev
Pull/Merge request
All updates to the main repository are made via merge requests (github refers to them as pull requests). A merge request requires the code update to be in a mergable branch in a development fork.
Coming soon: HOWTO