We will be using Github for development and version control.
- L1: The first level will be the main repository. This will be maintained by the Architect.
- L2: The second level will be the forks (one per each team lead) of the L1 repository. This will be maintained by Team Leads.
- L3: And last will be the forks (one per team member) of the L1 repository. This will be maintained by the Team Member.
-
Members or Leads will create an issue on
L1
for the feature they want to work on and create a new branch onL3
for that, named as{issue_number}-{short-solution-description}
and open a PR for it onL2
, and in the description mention the issue number fromL1
which gets fixed, for eg.Fixes convict-git/KoraKaagaz#4
-
If multiple members work on the same feature, there will be one representative member among them who will first create an issue and a new PR for it. Others will add the representative member's fork as remote and contribute to it.
-
Multiple team members can comment and review the PR and ask the responsible member to get it fixed. The Team Lead takes the call to merge it on
L2
. -
PRs on
L1
will be entertained only fromL2
and will undergo review by the Architect and Manager. So Lead opens PR fromL2
toL1
mentioning the issue number which gets closed, for eg.Closes convict-git/KoraKaagaz#4
-
The architect takes the final call to merge the PR into the Master branch of
L1
and marks the issue as resolved.
- We will follow Google's java style guide. https://google.github.io/styleguide/javaguide.html
- Another blog worth going through https://medium.com/@rhamedy/a-short-summary-of-java-coding-best-practices-31283d0167d3
Documented By: Priyanshu
Thanks to Shruti, Ahmed and Rakesh for brainstorming on this.