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/>
