You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
2.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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, youll 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 its 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