Skip to content

Robot Software Team Workflow

Roshan Ravi edited this page Nov 19, 2017 · 1 revision

Team 4909 uses GitHub for version control and to enhance our collaboration.

Version Control

GitHub is a way to store our code safely in the "cloud", and also allows for us to quickly make small, reversible, changes.

Collaboration

Beyond storing code, GitHub offers a whole suite of tools to help teams work together to write larger codebases. We will make use of GitHub issues, milestones, and branching.

Issues

GitHub "issues" should be created for ALL proposed changes to our codebase, including new features and bug fixes. Each GitHub issues should have three label types: a priority, a status, and a type.

Milestones

Every week during build season, we will choose a set of issues to work on and delegate tasks among the software sub-team. These collections of issues become "milestones" and can be found under the milestones tab in GitHub.

Branches

Branches MUST also be created for ALL changes to our codebase. Branches essentially allow us to safely modify a copy of the code without the risk of breaking the competition-ready code.

Branches should be either named "FEATURE-XYZ" or "DEFECT-XYZ", depending on whether the issue is a bug fix or a new feature request. The XYZ should be the issue number for tracking purposes.

Once development on a branch is completed & tested, a pull request(merge request) to the master branch should be created. ALL pull requests must be code reviewed by either the software lead/mentors and tested on the robot prior to being integrated.

This allows for your changes to be safely integrated into the competition-ready code.

Summary of Team Workflow

  • GitHub Issues are created for feature requests from mechanical as well as bug fixes
  • During weekly meetings, the software sub-team will choose which issues to tackle in the upcoming week and tasks will be assigned as part of the weekly milestone.
  • Assignee creates branch
    • Code changes are made in branch
    • Pull request to master is created
    • PR is merged by software lead/mentor

Clone this wiki locally