Contributing
Contributions are welcome and will be fully credited. For code contributions please use pull requests on the GitHub repository.
Issues
Reporting an issue is absolutely fine if you don't have time or will to solve the problem yourself. Just please remember about providing all potentially helpful information when creating an issue. I highly recommend stickin to the following template:
Describe what is wrong, include piece of code or screenshot if needed.
# Steps to reproduce
...
# What was expected result?
...
Version: Version number or commit hash if using develop - preferably `git describe --all --long` output.
Pull Requests
- PSR-2 Coding Standard - The easiest way to apply the conventions is by using the PHP Code Sniffer
- Add tests - Plese try to provide at least basic code coverage for your change, don't forget about checking if already existing tests still pass with your changes applied
-
Document any changes in behavior - Make sure that
README.md
and thedocs/
are kept up-to-date. If you submit new code within\Scrawler\Blocks
having proper documentation is a must - Mind the release cycle - The project follows SemVer v2.0.0. Having random breaks in public APIs is not an option
-
Create feature branches - Don't submit changes from your
master
branch - One pull request per feature - If you want to do more than one thing, send multiple pull requests
- Send coherent history - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting.
Development tip
There is a dev-only autoloading rule defined in composer.json
that maps /dev
directory to the App\
namespace so you don't have to create second project and
configure Composer to symlink Scrawler into its directory. Simply drop a config
file there, same for any custom implementations or e.g. entities and you're
ready to go.
Running Tests
Please don't forget to run the test suite before submitting a pull request.
composer tests
Functional tests will run PHP server process (the crawler will then connect to)
on a port 9394
. Make sure to keep it open or change the value using the
TEST_SERVER_PORT
environment variable.
If you experience unexpected test failures make sure that the PHP's dev server
used by the integration tests suite had enough time to start. You can change
the default wait time by setting the TEST_SERVER_WAIT
environment variable
to a desired number of milliseconds.
Happy tinkering, I appreciate your help!