Development Workflow Overview¶
graph LR
B[Problem Conception] --> C{Small Fix?};
C --> |Yes| E[Development];
C --> |No| D[Issue Creation];
D --> E;
E --> F[Pull Request];
F --> G{Approved?};
G --> |No| E;
G --> |Yes| H[Merge PR into Main];
A good development workflow is essential to maintain a robust codebase and stay organized. The above diagram is a high level overview of how our development process works, and parts of this process are explained in subsequent sections.
Tutorial¶
Version control: Git¶
We use git to help us keep track of the version history of our codebase. Git is a free and open source distributed version control system, and it is commonly used by many developers to keep track of changes to their code over time. As a member of the software team on UBC Sailbot, it is absolutely necessary that you know git. If you are unfamiliar with git, here are a few resources to help you get started:
Resource | Description |
---|---|
Beginners Tutorial | A 30 minute video on git for beginners. Good if you want to learn git quickly and nail all the fundamentals. |
Pro Git book | A textbook on using git. Good if you are a completionist and want to deep dive into how git works (and if you have some time on your hands). |
Common Git Commands | A condensed summary of some common git commands. Good to refer to once you are familiar with the fundamentals of git. |
Remote server: GitHub¶
We use GitHub as our remote server where we store our codebase. In addition to using it for storage, we also leverage many of GitHub's features to make for a smoother development process. Some examples of features that we use are:
- Issues
- Projects
- Milestones
- GitHub Organizations
- Repository Permissions and Branch Protection Rules
- And more!