If you want to contribute to the project, feel free to send a pull request.
Before sending a pull request you need to sign Google CLA (if you don't a bot will ask you to do that) and add yourself to AUTHORS/CONTRIBUTORS files (in case this is your first pull request to syzkaller).
Some guildelines to follow:
- Commit messages should follow the following template:
package: one-line description
<empty line>
Extended multi-line description that includes
the problem you are solving and how it is solved.
package is the package/tool this commit changes
(look at examples in the commit history)
- The pull request text is mostly irrelevant
- Run
make presubmitand ensure that it passes before sending a PR. It may require some additional packages to be installed (trysudo make install_prerequisites) - Rebase your pull request onto the master branch before submitting
- If you're asked to add some fixes to your pull requested, please squash the new commits with the old ones
Extending/improving system call descriptions is always a good idea.
Unassigned issues from the bug tracker are worth doing, but some of them might be complicated.
If you want to work on something non-trivial, please briefly describe it on the syzkaller@googlegroups.com mailing list first, so that there is agreement on high level approach and no duplication of work between contributors.
- First, you need an own git fork of syzkaller repository. Nagivate to github.com/google/syzkaller and press
Forkbutton in the top-right corner of the page. This will createhttps://github.com/YOUR_GITHUB_USERNAME/syzkallerrepository. - Checkout main syzkaller repository if you have not already. To work with
gocommand the checkout must be under$GOPATH. The simplest way to do it is to rungo get github.com/google/syzkaller, this will checkout the repository in$GOPATH/src/github.com/google/syzkaller. - Then add your repository as an additional origin:
cd $GOPATH/src/github.com/google/syzkaller
git remote add my-origin https://github.com/YOUR_GITHUB_USERNAME/syzkaller.git
git fetch my-origin
git checkout -b my-branch masterThis adds git origin my-origin with your repository and checks out new branch my-branch based on master branch.
- Change/add files as necessary.
- Commit changes locally. For this you need to run
git addfor all changed files, e.g.git add sys/linux/sys.txt. You can rungit statusto see what files were changed/created. When all files are added (git statusshows no files inChanges not staged for commitsection and no relevant files inUntracked filessection), rungit commitand enter commit description in your editor. - Push the commit to your fork on github with
git push my-origin my-branch. - Nagivate to github.com/google/syzkaller and you should see green
Compare & pull requestbutton, press it. Then pressCreate pull request. Now your pull request should show up on pull requests page. - If you don't see
Create pull requestbutton for any reason, you can create pull request manually. For that nagivate to pull requests page, pressNew pull request, thencompare across forksand choosegoogle/syzkaller/masteras base andYOUR_GITHUB_USERNAME/syzkaller/my-branchas compare and pressCreate pull request. - If you decided to rebase commits in
my-branch(e.g. to rebase them onto updated master) after you created a pull-request, you will need to do a force push:git push -f my-origin my-branch.