Contributing
Contributions are welcome and will be fully credited.
We accept contributions via Pull Requests on Github.
Pull Requests
PSR-2 Coding Standard - The easiest way to apply the conventions is to install PHP Code Sniffer.
Add tests! - Your patch won't be accepted if it doesn't have tests.
Document any change in behaviour - Make sure the
README.mdand any other relevant documentation are kept up-to-date.Consider our release cycle - We try to follow SemVer v2.0.0. Randomly breaking public APIs is not an option.
Create feature branches - Don't ask us to pull 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.
Running Tests
$ composer testCoverage reports (build/logs/clover.xml, build/coverage/) are opt-in and need Xdebug:
$ composer coverageHappy coding!
This documentation
The site is in docs/, built with VitePress, Node 22:
cd docs
npm ci
npm run docs:dev # http://localhost:5173/nette-api/
npm run docs:build
npm run docs:links # check links in the built site- Code on the example pages comes from the projects in
examples/through<<< @/../examples/...; change the project, not the page. Each project has ane2e.shthat CI runs. - Every English page has a Slovak twin under
docs/sk/;npm run checkfails when one is missing. - Diagrams are Excalidraw files in
docs/diagrams/, rendered to light and dark SVG withnpm run diagrams. - Every pull request gets a preview at
https://tomaj.github.io/nette-api/pr-preview/pr-<number>/.
FAQ
How do I run the tests?
composer test runs PHPUnit. composer coverage also writes coverage reports to build/ (needs Xdebug). Each example project also has an e2e.sh, see Examples.
Do I have to update the documentation with my change?
Yes, a change in behaviour needs the docs updated, in English and Slovak.
How do I see my documentation change before it is merged?
Run npm run docs:dev in docs/, or open the preview that every pull request gets.