-
Notifications
You must be signed in to change notification settings - Fork 155
Development
-
If you don't have a github account, make one. Then set up ssh keys
-
Fork the ngx_pagespeed and mod_pagespeed repos
(Note: if you're a committer, you can skip the forking step.)
- Set up a development client:
# set this to your ngx_pagespeed fork's url
git clone YOUR_NGX_PAGESPEED_FORK
cd ngx_pagespeed
git checkout trunk-tracking # or another branch you want to work on
git submodule update --init --recursive
# edit .git/config to change the repo url for mod_pagespeed to be
# the one for your fork
scripts/build_ngx_pagespeed.sh --devel
This will put an ngx_pagespeed checkout in your current directory, download mod_pagespeed, apache, and nginx inside that, then build PSOL, apache, and nginx from source. It will put the apache it builds in ~/apache2
, because you only have to build it once and multiple checkouts/branches can share the same copy.
-
Make changes to files.
-
Run tests:
cd ~/ngx_pagespeed/testing_dependencies/mod_pagespeed/devel
make apache_test # unit tests
make apache_debug_smoke_test # system tests
make apache_debug_leak_test # unit tests and smoke tests under valgrind
./checkin # those tests, and many more, very slow
cd ~/ngx_pagespeed/
test/run_tests.sh
- Submit your changes back as a pull request. You'll need to make separate pull requests for ngx_pagespeed and mod_pagespeed changes
If you're a mod_pagespeed committer, then you don't need to fork, but you do need to change the subresource urls from https://
to git://
. So:
git clone [email protected]:pagespeed/ngx_pagespeed.git
cd ngx_pagespeed
git checkout trunk-tracking
scripts/build_ngx_pagespeed.sh --devel
When pushing to github for a pull request, prefix your branch with your username. For example, I might call a branch jefftk-fix-submodules
.