How to Contribute#

Overview#

In the past, the team has had some issues with new code breaking the existing GUI and not having a stable copy of the GUI at all times to be able to demo. In order to get around these issues, we are proposing a new workflow that will leverage the tools that GitHub offers to streamline our workflow and ensure that new code doesn’t leave the main branch of the repo in a broken state. This new workflow will establish the master branch as the stable codebase that should be always functional, and new code should be written in separate feature branches that must be verified by another member before it can be merged with the master branch.

Github Repo#

All of the code for the GUI team is maintained within our Github repository, which can be found at UmichSIM/SIM_MDP_GUI. This repository sits within the UmichSIM Github organization, so being a member of the organization will automatically give you access to the repository. Please reach out to the current GUI team leader to gain access to the organization and the repository. There is an older Github repository that was created by the original members of the team. This repo is now deprecated and will no longer be used. It is much easier to use the repo that falls under the organization as ownership of the repo is no longer tied to a single individual.

Github Issues#

Issues is a Github feature that allows for easy task and bug tracking. To create a new issue in Github, open the Github repo in a browser, click on the Issues tab, and then click new issue.

There you can add a title and description to the issue, as well as assign individuals to work on the issue and give the issue relevant tags. A set of relevant tags will be defined after this document is created, but they will be visible on the repo. It is not necessary to assign an individual to an issue when it is created. Unassigned issues will serve as a task backlog that members should tackle when they have availability. Please try to be as specific as possible in the issue description so that anyone on the team knows what the issue is and where to find it.