This describes what steps you need to take to start a new project. This is meant as a guideline.
Before you start any coding, it starts with requirements. What you do here is writing down all things your new program should do. You write it down in normal text without any code related things. To achieve the best results, you describe the features/requirements from the user's perspective. For each requirement, you create an Issue in your project's repository.
A requirement describes what you expect the new program to do.
"I expect ataru to test my documentation"
This is an requirement, but it is very abstract and not very specific.
"I expect ataru to read code examples from markdown files"
This here is already more concrete. With this requirement you're able to infer concrete tasks:
- Read a file
- The file must be Markdown
- Get all code examples from Markdown
Each requirement here is a separate issue.
Requirement 1:
"As a user, I want to run ataru from the command line and pass a markdown file as parameter"
Example:
$ ataru readme.md
Requirement 2:
"As a user, I want to see how many examples where run and how many failed"
Example:
$ ataru readme.md
Ran examples: 5 Failed: 1
When you collected all requirements you need to prioritize which features should be part of the first version. What requirements should be picked? Pick all requirements which are necessary to build a very basic but working version.
General Notes
In the description of the PR you describe shortly what you did. Also add a reference to the GitHub Issue. When the PR was created, ask you pair for review. When your pair approved it, it can be merged. Also make sure you delete the branch you worked on.
Before you create a new commit, make sure that all tests pass and none of them fail.
<issue number> - <branch name>
Example:
5-Extract-Code-Examples-From-File
The development workflow looks like this:
- Pick an issue from the list and assign it to you
- Create a new branch (Called feature branch)
- Start development on feature branch
- When you're finished, create a pull request.
- Review (done by pair)
- Merge Pull Request when everything is fine