-
Notifications
You must be signed in to change notification settings - Fork 1
Git and git flow
This project does not have only programming part, but also a bit of bureaucracy.
For any new changes to the code, there are gonna be created an issue first, which describes in details what need to be done concretely.
An issue must have at least one label, which is used to categorize the issue. Here are applicable the same logic of choosing the issue label as it is for branches here. Also issue must have at least one assignee, who is gonna to solve the issue.
After an issue is written, a new branch from dev
branch must be created. So that for one issue there must be (and usually is) one branch.
You can read here more about branches and their naming here.
When the issue is done, that is the required changes in branch are done, a pull request to dev
branch need to be created.
The pull request must contain a title, shortly describing what changes were done as well as on the end of the title the PR (so that they can be easily separated in the GitHub project).
The pull request can contain also a description, which should be some extra information or any questions.
The extra information can be for example about what things was not done with explanation why, or any things that need to be noticed in your opinion by the reviewer.
Make sure to put me (@MikhailDeriabin) as the Reviewers, as well as me and you as Assignees. Also put the label same as the issue label.
The code review is meant to be an additional check of the new code. Usually the review is done within one day.
Please follow this workflow:
- Find an issue to do in Status board or My tasks view
- Open the issue by clicking on its name
- Read and understand a task from the issue
- Notice that the issue has a title, description, label (type of task), assignee (who is resolving the issue) and issue number (on top with a #-prefix, unique)
- Drag-and-drop the issue to the "In progress" column in Status board or change the issue status to "In progress" in My tasks list
- Create a new branch from the dev branch (NOT main) in your IDE or here on GitHub. The branch name must have a unified form containing (more about branches):
- label same as the issue label, tells what kind of task the branch is resolving
- name 2-5 words name of choice, which should describe the task to be resolve. Name is used for identifying the branches between each other
- issue number same as the issue number
- Example: feature/ProfileService-read-method-45 (adds new read method to ProfileService class)
- Checkout to the created branch in your IDE
- Write required code for the issue
- When code is written and the task is done, create a new pull request to the
dev
branch. You can do it here on GitHub as follows: - Choose the dev branch as base: (on the left hand side) and this branch as compare: (on the right hand side)
- Click the "Create pull request" button and the pull request view will be open
- Write a title of the pull request. It should describe in general what has been done in this branch
- Write a description in case you have some questions related to the issue, or you was not able to make some of the requested tasks, or anything else you want to share
- On the right hand side you can add additional information regarding the pull request.
- Press the Reviewers and choose me MikhailDeriabin as a reviewer from the list
- Press the Assignees and choose your account from the list as well as mine MikhailDeriabin
- Press the Label and choose the same label as your Issue has
- If the Issue has a Milestone, press the Milestone and choose the same milestone as the Issue has
- Finally press the "Create pull request" button to publish your request
- Wait for the code review from me. In case everything is ok, I will approve your pull request and the branch will be removed automatically and you can remove the branch from your local machine. Notice however, that if there will be any changes required, I will write a comment below the pull request about them. You should be able to see the notification of incoming message in the Notifications tab (very top of the GitHub page on the right hand side next to your profile photo). If any changes are required, just checkout the branch in your IDE, make changes and push them to the branch and changes will be added automatically to the pull request.