Skip to content

Contributing to Software

Parker edited this page Sep 10, 2015 · 2 revisions

How is software organized this year?

This year, we will be using a git repository on github (you're already there) to manage our source code and a few other miscellaneous files. This wiki will serve as a hub of documentation both for hardware and software.

We are making an effort to produce cleaner, more readable code. As a part of this, we are experimenting with having coding standards. Please try to follow these standards when you are writing or editing your code.

The different repositories

This year, we have several different repositories, all of which are hosted on GitHub.

  • utk-robotics-2016 - This is the main code repo for the robot. All code being executed on the robot during competition should be housed here.
  • Education-repo - This is a place for new members to start. Code from this repo may be moved into the main repo after review.
  • comp-rules - This repo automatically tracks the changes made to the competition rules allowing us to view a full history of the changes made.
  • order-confirmations - This is where the placed orders are located.
  • utk-robotics-2016.github.io - This is the repo for our small website which contains some monitoring code for the robot. The course randomizer utility is also here.

What is git?

Git is a distributed version control system. Git uses a concept of repositories, branches, and commits to keep track of the history of a collection of files.

Please read this simple git guide as a quick primer on how to operate git from the command line.

Our workflow

At this time, we are planning to use a branch/pull request workflow based on the github flow. There is a nice guide to the github flow here.

When implementing a new feature, you should create a branch off of master. Once you have implemented the new feature, you should create a pull request. At this point, the code should enter an informal review process prior to merging into master.