|
1 | 1 | # Contributing |
2 | | -Contributions are very welcome, please find below a summary of what is expected from contributions: |
| 2 | +This package is maintained by a core team, backed by a strong community effort, and contributions are extremely welcome! |
3 | 3 |
|
4 | | -- Follow the conventions for methods, adding to the relevant configuration/helper trait |
5 | | -- Add properties to the "With" trait |
| 4 | +Please find below a brief summary of how to make a good contribution. This helps to ensure a smooth review and merge of a PR. |
| 5 | + |
| 6 | +## Discussing A Feature |
| 7 | +Please do feel free to raise a Discussion topic, a Feature Request Issue, or reach out on the official Discord to discuss any ideas! |
| 8 | + |
| 9 | +## Starting A Contribution |
| 10 | +- Always create a fresh branch in your fork for every change. This should be based on the "development" branch, as other branches may be outdated, or lack the change history. |
| 11 | +- Ensure that a PR contains a single feature/fix. PRs with multiple features often end up with merge conflicts! |
| 12 | +- Avoid introducing a breaking change. If your change makes a radical or substantial change, then the existing behaviour should be maintained as the default. The core team tracks these, and as major versions are reached, may introduce new default behaviours. |
| 13 | + |
| 14 | +## Generic Information |
| 15 | +- Avoid adding any additional dependencies/requirements to the package unless discussed and approved by the core team. |
6 | 16 | - Typehint both properties and return values |
7 | | -- Add a comment to the method |
8 | | -- Add tests for new methods |
9 | | -- Add documentation for new methods |
| 17 | +- Add a comment to the method to explain what it does, this does not/should not be lengthy! |
| 18 | + |
| 19 | +## Views |
| 20 | +- Where amending/appending to Views/Blades, ensure that you cater for Tailwind, Bootstrap-4 and Bootstrap-5 to ensure continued support |
| 21 | + |
| 22 | +## Tests |
| 23 | +- Always add tests for new methods |
| 24 | +- Review existing tests if you make changes. |
| 25 | +- The project maintains a very high level of test coverage. A PR that reduces this coverage is less likely to be readily accepted. |
| 26 | + |
| 27 | +## Documentation |
| 28 | +There is comprehensive documentation available for existing features. Please add documentation for any new/amended methods, as otherwise this may result in delays, which may be significant! |
| 29 | + |
| 30 | +## Conventions |
| 31 | +- Please follow the project conventions below: |
| 32 | + |
| 33 | +### Core Features |
| 34 | +A feature set typically exists in a "With" trait (For example - Rappasoft\LaravelLivewireTables\Traits\WithColumns.php) |
| 35 | +- The "WithColumns" contains any properties, and any key methods |
| 36 | +- Each feature set has a "Helper" and "Configuration" trait associated with it, for setting and getting properties, both server-side, and client-side. |
| 37 | + |
| 38 | +## Actions, Columns and Filters |
| 39 | +An Action/Column/Filter type exists in the "Views" section (For example Rappasoft\LaravelLivewireTables\Views\Columns\DateColumn.php) |
| 40 | +- Each Action/Column/Filter again has a "Helper" and "Configuration" trait associated with it, for setting and getting properties |
| 41 | +- Actions should extend Rappasoft\LaravelLivewireTables\Views\Action (or a class that extends this) |
| 42 | +- Columns should extend Rappasoft\LaravelLivewireTables\Views\Column (or a class that extends this) |
| 43 | +- Filters should extend Rappasoft\LaravelLivewireTables\Views\Filter (or a class that extends this) |
| 44 | + |
0 commit comments