@@ -16,8 +16,8 @@ We will be using a [Kanban-like agile process](Agile-process) to run our hackath
The lifecycle of an issue will look something like the following. Each of these steps will be described in more detail below:
1. An issue is proposed
2. The issue enters the design phase during which the issue description is expanded
3. The issue enters the development phase during which somebody writes the code for this feature. Don't forget to add tests at this stage. This ends with a merge request.
4. The merge request is reviewed. Once accepted, the corresponding issues is marked as done.
3. The issue enters the development phase during which somebody writes the code for this feature. **Don't forget to add tests at this stage**. This ends with a merge request.
4. The merge request is reviewed. Once accepted, the corresponding issue is marked as done.
5.*Optionally* a screenshot of the new feature is posted on slack
### New issue proposal
...
...
@@ -27,7 +27,7 @@ Anytime you have any idea about some new feature, you can open a new issue by cl
During the design phase we work out the details of a proposed feature. To start the design of a new feature:
- First go to the issue board by clicking [here](https://git.fmrib.ox.ac.uk/neichert/DIVE/-/boards) or going to Issues>Board in the menu on the left.
- Once there, select one of the issues from the backlog and move it to the next column (`Status:design`). Note that the total number of issues allowed to be in `Status:design` and `Status:design_done` is limited to (TBD). If this limit has been reached, please don't start designing a new feature, but instead join one of the design discussions in process or implement one of the existing features to create more space.
-*Required*: Check on slack whether anyone wants to contribute to the discussion on this feature.
-**Required**: Check on slack whether anyone wants to contribute to the discussion on this feature.
- Meet with all people interested (using zoom/teams/slack) and create a detailed description of:
+ What is this feature designed to achieve?
+ In broad strokes: how will this feature be implemented?
...
...
@@ -38,9 +38,9 @@ During the design phase we work out the details of a proposed feature. To start
### Development phase
The development phase is the main process, where you do the actual coding to implement a new feature. Before starting to code, there are several steps to take to prevent multiple people implementing the same feature and hence wasted effort:
- First go to the issue board by clicking [here](https://git.fmrib.ox.ac.uk/neichert/DIVE/-/boards) or going to Issues>Board in the menu on the left.
- Once there, select one of the issues from the `Status:design_done` column and move it to the next column (`Status:developoment`). Note that the total number of issues allowed to be in `Status:developoment` and `Status:developoment_done` is limited to (TBD). If this limit has been reached, please don't start designing a new feature, but instead review one of the already developed features (listed in `Status:developoment_done`) to create more room.
- Once there, select one of the issues from the `Status:design_done` column and move it to the next column (`Status:development`). Note that the total number of issues allowed to be in `Status:development` and `Status:development_done` is limited to (TBD). If this limit has been reached, please don't start designing a new feature, but instead review one of the already developed features (listed in `Status:development_done`) to create more room.
-*Optional*: check on slack if anyone wants to implement this feature with you. Programming can be more fun and less error-prone if you have someone to pair program with.
- Before starting to code, make sure that your repositorty is up to date and that you are in a new branch specific for this feature:
- Before starting to code, make sure that your repository is up to date and that you are in a new branch specific for this feature:
```bash
$ git checkout master # make sure we are on the master branch
$ git pull origin master # updates the master branch from the main repository