Development Workflow

Feature Development

Starting a feature branch

All development is done on feature branches. A feature branch has the following properties:

  • a feature branch is branched off master
  • the name of the feature branch begins with the issue key of the JIRA ticket that describes the feature* and may be followed by a short description of the task
  • the branch is pushed to GitHub once it is created

*in case that work for more than one JIRA ticket is done on the feature branch, please choose the ticket that describes the feature best for the name of the branch and then link all the other tickets in JIRA to that ticket.

Example: Creating a feature branch
cd <slidewiki-platform>
git checkout master
git pull
git checkout -b SWIK-123_awesome_new_feature
git push --set-upstream origin SWIK-123_awesome_new_feature

Synchronizing a feature branch with master

When the work on a feature branch is done it will ultimately be merged into the master branch. Thus it is a good idea to frequently merge the master branch into your feature branch to keep track of the changes.

Example: Synchronizing a feature branch with master
cd <slidewiki-platform>
# In case you're not on your feature branch
git checkout SWIK-123_awesome_new_feature
git pull origin master

Finishing work - Pushing work to QA

When you think the work is done:

  1. sync the feature branch with master (as described above)
  2. push the merged state to the GitHub repo
  3. set the JIRA ticket to state QA
  4. initiate a Pull Request from your branch against master
    → the title of the pull request should start with the same issue key as the feature branche's name
    → assign the pull request to at least one person who you think should do the review (if not sure assign to Ali, Ben or Klaas)
    → please include a technical detailed description of the work you want to bring in
  5. add instructions about how to get to the new feature in the platform

What can happen after you have given a task to tech QA:

  • the work passes tech QA
    → the JIRA task will be set to CLOSED
    → your work was merged into master 
    → your feature branch will be removed from the repository
  • the work fails tech QA
    → the JIRA task is set to IN PROGRESS
    → it is re-assigned to you 
    → a comment is added to the task that describes what needs to be improved (also see the comments in the code on the pull request)
    → the pull request remains open, it will automatically be updated with all commits pushed to the feature branch
    → set the ticket back to QA when you think the issues are fixed

 

Pushing the current state to GitHub
cd <slidewiki-platform>
# In case you're not on your feature branch
git checkout SWIK-123_awesome_new_feature
git push