53 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| # Submit a Patch to oss-fuzz repo
 | ||
| 
 | ||
| ## One-time Setup
 | ||
| 
 | ||
| 1.  Create github account if needed (with @google.com email address, preferably)
 | ||
|     and log in.
 | ||
| 1.  To allow “git push” to work, you’ll have to add an SSH key:
 | ||
|     https://help.github.com/articles/connecting-to-github-with-ssh/
 | ||
| 1.  Go to https://github.com/google/oss-fuzz and click on “Fork”.
 | ||
| 1.  Go to your own fork of the repo, which will be at
 | ||
|     https://github.com/\<git_username\>/oss-fuzz
 | ||
| 1.  Click on “clone or download” and pick “Clone with SSH” method (I found that
 | ||
|     easier to use for “git push”). Then copy that URL and run “git clone \<URL\>”
 | ||
|     in terminal. Now you have a local repo, and **your fork** of the remote repo
 | ||
|     will be called “**origin**” in your git config.
 | ||
| 1.  Configure a remote repo pointing to the **upstream repo**
 | ||
|     (https://github.com/google/oss-fuzz) so that it’s called “**upstream**”:
 | ||
|     *   cd \<local_oss_fuzz_repo_directory\>/oss-fuzz
 | ||
|     *   git remote add upstream git@github.com:google/oss-fuzz.git
 | ||
|     *   git remote -v
 | ||
| 
 | ||
| NOTE: For trivial changes it's possible to edit the files in the web UI on the
 | ||
| main project and create a commit + pull request from that.
 | ||
| 
 | ||
| ## Workflow for a Pull Request (Patch)
 | ||
| 
 | ||
| 1.  Go to your repo:
 | ||
|     *   cd \<local_oss_fuzz_repo_directory\>/oss-fuzz
 | ||
| 1.  Create a new branch:
 | ||
|     *   git checkout master
 | ||
|     *   git checkout -b new_feature_xyz
 | ||
| 1.  Make your changes and commit them locally with “git commit”
 | ||
| 1.  Push your changes to your fork on github
 | ||
|     *   git push -u origin HEAD
 | ||
|     *   (This will create a branch of the same name “new_feature_xyz” on your
 | ||
|         fork “origin”).
 | ||
| 1.  Open your fork in browser and click on “Compare & pull request” and follow
 | ||
|     the prompts.
 | ||
| 1.  If changes are requested to the patch:
 | ||
|     *   make changes to the same local branch
 | ||
|     *   commit them locally with “git commit” (but DO NOT amend!)
 | ||
|     *   git push -u origin HEAD
 | ||
| 1.  Once pull request is closed:
 | ||
|     *   Delete “new_feature_xyz” branch on your fork using the “Delete branch”
 | ||
|         button on the pull request
 | ||
|     *   Delete local “new_feature_xyz” branch locally with “git checkout master
 | ||
|         && git branch -D new_feature_xyz”
 | ||
|     *   Sync your local repo and your fork with upstream repo:
 | ||
|         *   git checkout master
 | ||
|         *   git fetch upstream
 | ||
|         *   git merge upstream/master
 | ||
|         *   git push origin master
 |