Author: @Praveen Venkatesh
Specifications
- We will be using GitHub like the previous semester for our work
- We will maintain a monorepo. https://webo.digital/blog/monorepo-vs-polyrepo-architecture/
- When working on the project, each person works from their own user account on the robot. Login to personal Git account in this user account.
- This time we will strictly follow the pull request mechanism + 1 code reviewer who will vet for:
- Technical correctness
- Code quality
- Existing code base will be made public after stripping it of API keys and important secrets.
Contributing
Default branch: prod
Staging branch: staging
Development branch: develop
Direct commits to prod
and staging
are NOT ALLOWED.
- The
develop
branch accepts PRs only from feature/*
or bugfix/*
branches.
- The
develop
branch will be a place where all features are developed and merged.
- Merging will be done ONLY if the project has been tested by an independent reviewer from the team who has not worked on the feature that is to be pushed to
prod
.
- Please ensure that the commits are coming from your own personal account.
- The
staging
branch accepts PRs only from the develop
branch. Merging will be done under the following circumstances:
- The succeeding day is a progress review.
- There is a significant milestone that is incoming on the succeeding day.
- The
prod
branch accepts PRs only from the staging
branch. Merging will be done under the following circumstances:
- Adequate documentation is present in the PR. This can either be in-code comments, or external comments present in the
- The entire team has independently reviewed and approved code.
- Each team member has tested the performance of the system and independently validated that the desired performance requirements are met.
Please follow the below mentioned naming practices to enforce consistency in the codebase:
- Bug fix branches should be named as
bugfix/*
- New feature branches should be named as
feature/*
Rules for Merging
- Use “Squash and Merge” when you merge a PR into
staging
or develop
.
- Commit messages for PR’s should be descriptive and informative.
Additional comment guidelines:
- State assumptions when they are made.
- Use the following:
- BUG(username)
- TODO(username)