Step-by-step guide to contributing to Mobile Detect library.
By contributing to Mobile Detect library you agree with the MIT License.
1. Fork the repo
git clone https://github.com/[yourname]/Mobile-Detect.git
git add remote serbanghita https://github.com/serbanghita/Mobile-Detect.git
git remote -v
...
origin [email protected]:serbanghita/Mobile-Detect.git
serbanghita https://github.com/serbanghita/Mobile-Detect.git
Next create your own git working branch from one of the existing branches 4.x
, 3.x
or 2.x
depending on your PHP version:
git checkout -b my-new-patch origin/x.x.x
composer install
DOCKER_BUILDKIT=0 docker build -f ./docker/Dockerfile -t build .
docker compose build setup
Ensure the code is clean, just run the linters:
./vendor/bin/phpcs
./vendor/bin/phpcbf
docker compose build runLinting
If you add new methods or make structural changes to the library then you need to add unit tests
otherwise your PR will not be accepted.
If you add new regexes make sure you commit the User-Agents in tests/providers/vendors
.
Now that your changes are done, run the unit tests:
vendor/bin/phpunit -v -c tests/phpunit.xml --coverage-html .coverage
docker compose run runUnitTests
Make sure you check the .coverage
folder and open the report.
The coverage should be just like you first started (close to 100%).
./vendor/bin/phpbench run tests/Benchmark/MobileDetectBench.php --ref=baseline --retry-threshold=1 --iterations=10 --revs=1000 --report=aggregate
docker compose run runPerfTests
Baseline re-creation:
./vendor/bin/phpbench run tests/Benchmark/ --retry-threshold=1 --iterations=10 --revs=1000 --report=aggregate --tag=baseline --dump-file=phpbench-baseline.xml
If no errors left, then proceed to committing your changes:
git status
git stage
git commit -m "your commit message here"
git push
Now go to your repo on GitHub and "Submit the PR".
- Specify the User-agent by visiting http://demo.mobiledetect.net.
- Specify the expected behaviour.
Submit new module, plugin, port including the following information:
- Module name
- Description
- Link
- Author
Or you can submit a PR against README.md
.
- Our official website is hosted at http://mobiledetect.net.
- The files are found on the
gh-pages
branch. git checkout gh-pages
npm install -g browser-sync
browser-sync start --s . --f . --port 3000 --reload-debounce 1500 --no-ui
- Go to
http://localhost:3000
and make changes. - Commit, push and submit the PR against
serbanghita:gh-pages
.