Project

General

Profile

Misc #16094

Updated by k0kubun (Takashi Kokubun) over 4 years ago

## Problem 
 * Our pull request merge strategy confuses contributors, as described in [Misc #16093]. 
 * In [Misc #16093], some committers did not like accepting a merge commit. 

 ## Solution 
 * Allow using GitHub's "Rebase and merge" (suggested by @marcandre) and or "Squash and merge" (for editing a commit message as needed) to committers 
   * To be discussed: Which should be the default? "Squash and merge"? 
   * Disable "Create a merge commit" in GitHub repository settings, to avoid concerns found in [Misc #16093]. settings. 
   * Also prohibit pushes to the master branch which are not coming from a pull request by requiring CI in GitHub repository settings. 
   * To allow looking up an associated GitHub pull request from git commands, add `git notes` to "Rebase and merge"d commits in git.ruby-lang.org post-receive hook. (suggested by @nobu) 
 * Perform GitHub bidirectional sync on git.ruby-lang.org pre-receive hook, and accept a push if it does not conflict with "Rebase and merge" on GitHub. 

 ## Notes 
 * Even after implementing this ticket, the Ruby's canonical Git repository will continue to be git.ruby-lang.org as is. 
 * All committers must push non-pull-request commits to git.ruby-lang.org. Direct pushes to GitHub will continue to be disabled. 
 * This approach has one drawback; `git push` to git.ruby-lang.org might block longer than now.

Back