Contributing

Contributing

🗒️ Introduction

If you would like to contribute to this project, please open an issue or a pull request. We are always looking for ways to improve the project and would love to hear your ideas.

The latest changes are always in master branch, so please make your Pull Request against that branch.

💻 Workflow

⚠️

Please feature/fix/update... into individual PRs (not one changing everything)

  • Create a github fork.
  • On your fork, create a branch, make the changes, commit and push.
  • Create a pull-request to the master branch of this repository.

🧾 Checklist

→ If Applicable

  • tests should be included as a part of your PR
  • run make hooks to install the git hooks and pre-commit checks
  • run make test or make up && make ssh && vendor/bin/pest to run them.
  • make lint should be run to ensure the code is properly formatted and phpstan should be run to ensure the code is properly typed.
  • documentation should be updated, please provide the corresponding documentation as well and make it part of the Pull Request

✉️ Git Message Format

This repo adheres to the Conventional Commits specification. Commit messages are enforced through commitizen and a pre-commit, please use make hooks to install them.

This leads to more readable messages that are easy to follow when looking through the project history and also allows to generate changelogs automatically.

→ Allowed prefixes for commit messages

  • feat — A new feature
  • fix — A bug fix
  • perf — A code change that improves performance
  • docs — Documentation only changes
  • style — Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons)
  • deps — Changes to the package.json or package-lock.json
  • refactor — A code change that neither fixes a bug nor adds a feature
  • ci — Changes to our CI configuration files and scripts
  • test — Adding missing tests or correcting existing tests
  • revert — Reverting a previous commit
  • build — Changes that affect the build system or external dependencies (example scopes: pnpm, renovate, github actions)
  • chore — Other changes that don't modify src or test files
  • security — A code change that fixes a security issue

🧪 Running Tests

→ PHPUnit Tests

To run phpunit (pest) tests, run the following command:

$ make test

→ Static Analysis

Run Code quality checks using PHPStan:

$ make lint-stan

→ Coding Standards Fixing

Fix code using The PHP Coding Standards Fixer to follow our standards:

$ make lint-php

🔓 Security Vulnerabilities

If you discover a security vulnerability within this package, please send an e-mail to WayOfDev via the@wayof.dev. All security vulnerabilities will be promptly addressed.

🤝 Code of Conduct

We are using the Contributor Covenant as our Code of Conduct, to keep discussion open and inclusive. Please, take a moment to read and follow our Code of Conduct.