-
Notifications
You must be signed in to change notification settings - Fork 158
Contributing
Want to make code changes to PageSpeed? Interested in how it works internally? A good first step is to subscribe to pagespeed-dev. This is a place to ask technical questions about how PageSpeed works, follow development discussions, and propose changes you'd like to make.
To get set up to develop code, see Development.
If you have something that's been bothering you, go ahead and try fixing it. If you'd like to help out and are wondering what's urgent, either pick something from the top of our priorities list or post to pagespeed-dev and describe the sort of thing you'd like to work on.
When writing code, we follow the Google C++ style guide. (The linter might be helpful.) If this is your first change and that seems overwhelming, don't worry about it! We can clean up style issues when we get to reviewing the change. Run the tests as you go to make sure you haven't broken things, and in general if you change functionality you should add a test that fails when runs without your change.
When you have something ready to merge to master
create a pull request. If this is your first change a "contributor license agreement" (CLA) bot will show up and ask you to sign the CLA. Our tests will run automatically, there will be comments and suggestions from other contributors, you'll probably need to make some changes, and eventually you'll get an approval on your change. At that point a PageSpeed committer will squash the branch into a single commit, and merge your change. Note to committers: the PageSpeed project's commit policy was voted to change to Commit-Then-Review for the time being.
If any of this is confusing ask on pagespeed-dev or just go ahead and create a pull request; we'll figure things out then.