This page outlines about practices we are following related to development and deployment
- Unless mentioned in issue or verbally, create all branches from develop branch.
- Pull latest changes from the parent branch before creating a branch from it.
- Branch name should be self-explanatory about the issue you are working on(Trello Card). It is highly discouraged to use an abbreviation, issue number etc in branch names.
- Avoid creating nested branches from working branches. Do proper planning before start coding.
- All enhacements and feature branches should start with
feature/
eg.feature/google-oauth-integration
which will be created fromdevelop
only. - All the fixes to unreleased code should have branch name
fix/
eg.,fix/unclickable-signup-button
and eventually merged indevelop
- Create release branch with prefix
release/
from develop. This branch will be merged intomaster
- Hotfix(production fix) branch must have name
hotfix
. There must be always onehotfix
branch at a time and merged tomaster
branch. master
branch will be in sync with production server.
- Implement functionality in small commits. If you have done the analysis properly, you would be able to do that naturally.
- Review changes you are
add
andcommit
- Each commit should have a very explanatory message which resembles the change you are committing.
- Each commit must have issue number as reference
- Learn commit message good practices
- Before creating PR do self code review(CR). If you find any issues/improvements, postpone creating PR and fix the issues first.
- If the feature needs large changes, you can create PR in an early stage to review by peers.
- Inform team members to do CR by mentioning them in PR comment. You can also inform offline if CR has to be done urgently.
- If there are large numbers of commits and PR is created for the main branch(master/develop), squash merge all commits to create a single commit. Follow commit message conventions. Close the PR by adding appropriate comment and squash merge commit URL. Test(automated/manual) again thoroughly.
- Delete the working branch once it is merged to develop
- Mark issue as ready to deploy when your working branch is merged to develop branch, tested(manual and automated) develop branch locally again and working all functionalities as expected.
- Identify all task which required to make the application work like environment variables, seed data, rake task, scheduler etc.
- Remove ready to deploy status after deployment is successful.
- Mark issue as ready to test when deployment is complete and assign to QA(if available).
- Do through testing of the functionality you released in the last deployment.
- Send detail status to the client.
- Update documents like API, wiki etc about the released functionality.
- After successfull relase, merge release branch in
master
- Create a relase selecting master branch and details description in Github