Hi All.

ASF has been experimentally allowing GitHub mirrors to enable write’s. 
Currently Airavata’s GitHub mirror is read-only and committers have to push the 
code to ASF’s canonical git. After discussing the feasibility and current 
status of this experiment with ASF Infrastructure team at apachecon 2017, I 
would like to propose we request Airavata mirrors also be write enabled. Here 
is a brief list of pros and cons:

Pros:
- Write enabled GitHub mirrors will allow us to use a simpler workflow of 
merging pull requests. Currently the steps are outlines at [1] and [2], Instead 
it will be [3]. 
- With more developers familiar with GitHub workflows, we can hopefully receive 
more contributions. 
- Accept contributions at a faster rate. 
- Potentially consider adopting every commits to go through pull requests (this 
a separate discussion topic). 
- Can setup Jenkins builds so all pull requests get automatically built and 
initiate the merge process only after CI succeeds. 
- In the future consider automated merges based on number of +1’s or based on 
number of tests passed and so forth. 

Cons:
- This is still an experimental capability and we will be one of early projects 
(certainly not the first) to get on board, there could be potentially bugs. 
- Technically speaking, both ASF and GitHub will accept writes, but we have to 
pick one as canonical for Airavata. This might be confusing, but with clear 
instructions we could clarify. 
- When GitHub has outage, we should manually switch to ASF canonical repos and 
push and hope the synchronization works. This could potentially lead to 
inconsistencies, but the downtimes of GitHub seems to be minimal.
- To merge the code to GitHub, Committers and PMC members have to enable 2 
factor authentication on their GitHub account [4] and ensure GitHub user name 
is specified in id.apache.org <http://id.apache.org/>, verify if everything is 
setup correctly at [5].

I may be missing something’s, but lets discuss and vote on this thread. Please 
voice your opinions either way. 

Suresh

[1] - https://airavata.apache.org/community/how-to-contribute-code.html 
<https://airavata.apache.org/community/how-to-contribute-code.html>
[2] - https://airavata.apache.org/community/how-to-commit-contributed-code.html 
<https://airavata.apache.org/community/how-to-commit-contributed-code.html>
[3] - https://help.github.com/articles/merging-a-pull-request/ 
<https://help.github.com/articles/merging-a-pull-request/>
[4] - 
https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/
 
<https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/>
[5] - https://gitbox.apache.org/setup/ <https://gitbox.apache.org/setup/> 

Reply via email to