If you are on this page it means you are most likely interested in contributing to a software project in this organization. We are happy to see that you have an interest in our team and that you are helping us build out our systems! In order to stay organized and avoid introducing bugs into our source code we have created a protocol that must be followed by all contributors when modifying the codebase.
The Aero software team is adopting a Kanban, feature-branch development workflow. Each repository has a project Kanban conisting of github issues. Issues represent features, bugs, and enhancements and are labelled as such. Each issue is part of a milestone which is defined on the organization level. Feature branches are created for each issue.
The process of contributing can be broken up into these simple steps. Each step is defined in a higher resolution through this document.
- Create or Assign Issue
- Create Feature Branch
- Develop Feature Branch
- Rebase/Merge Feature Branch
- Create Pull Request
- Code Review (Iterative Process)
- Document Issue
- Merge Feature Branch
-
What are github issues? A github issue is a task with a detailed description of what must be done in order to complete that task. For Aero each branch that is created will have a corresponding issue. Issues are labelled as either a feature, bug, or an enhancement depending on what label best suites the task description.
-
As shown in the screenshot, this can be done in the projects section within the right sidebar.
-
You may also choose to put your issue in a milestone. However, organizing milestones will usually be planned together as a team :).
git checkout -b [feature_branch_name]
- Talk about any coding conventions used in aero ie. obc structure
Prior to a pull request feature branch must be either
- rebased onto master
git rebase master
- or the master can be merged into the feature branch and then feature branch can be merged into master.
git merge master
git checkout master
git merge [feature_branch_name]
- Creating a pull request on github
- assign reviewers
- Iterative process, show comments and feedback, suggestions etc...
- While waiting for peer review, document any details related to the new feature that may be valuable for others to be aware of
- After the pull request has been approved by at least 2 peers (one owner and one member), merge the branch
- Show screen shots of merging