diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..57d68d1 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,8 @@ +# These are supported funding model platforms + +github: tolawho +# patreon: your_patreon_username +# open_collective: your_open_collective_username +ko_fi: tolawho +custom: + - https://paypal.me/tolawho diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..5d83aa2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,27 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. PHP Code / PHPDoc snippet used: '...' +2. Command run: '...' +3. Error or unexpected output: '...' + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Environment (please complete the following information):** + - PHP Version: [e.g. 8.1] + - PhpSwag Version: [e.g. 1.0.0] + - Framework Integration: [e.g. Laravel / Symfony / None] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..5f0a04c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,19 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..cb9c768 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,31 @@ +## Description + +Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. + +Fixes # (issue) + +## Type of change + +Please delete options that are not relevant. + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] This change requires a documentation update + +## How Has This Been Tested? + +Please describe the tests that you ran to verify your changes. + +- [ ] Existing PHPUnit tests pass +- [ ] Added new PHPUnit tests +- [ ] PHPStan level 7 passes + +## Checklist: + +- [ ] My code follows the style guidelines of this project (PSR-12) +- [ ] I have performed a self-review of my own code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] I have made corresponding changes to the documentation +- [ ] My changes generate no new warnings +- [ ] I have added tests that prove my fix is effective or that my feature works diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..f608522 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,94 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +[homepage]: https://www.contributor-covenant.org diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..cc8dd6f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,57 @@ +# Contributing to PHP Swagger Generator + +First off, thank you for considering contributing to `phpswag`! It's people like you that make the open-source community such a great place to learn, inspire, and create. + +## Where do I go from here? + +If you've noticed a bug or have a feature request, make one! It's generally best if you get confirmation of your bug or approval for your feature request this way before starting to code. + +## Fork & create a branch + +If this is something you think you can fix, then fork `phpswag` and create a branch with a descriptive name. + +A good branch name would be (where issue #325 is the ticket you're working on): + +```sh +git checkout -b 325-add-new-validation-tag +``` + +## Local Development Setup + +1. Clone your fork: + ```sh + git clone https://github.com/your-username/phpswag.git + cd phpswag + ``` +2. Install dependencies: + ```sh + composer install + ``` + +## Coding Standards + +This project follows PSR-12 coding standards. +Please ensure your code conforms to our coding standards by running: + +```sh +# PHP CodeSniffer +./vendor/bin/phpcs + +# PHPStan for static analysis (Level 7) +./vendor/bin/phpstan analyse +``` + +## Testing + +Please write tests for any new features or bug fixes. To run the test suite: + +```sh +./vendor/bin/phpunit +``` + +## Pull Requests + +- Fill out the pull request template completely. +- Ensure all tests pass. +- Ensure your code passes static analysis and coding standard checks. +- Document any new features in the `README.md`. diff --git a/README.md b/README.md index 4e3f6ba..f72d955 100644 --- a/README.md +++ b/README.md @@ -633,3 +633,30 @@ To validate the schema: ```bash php bin/console phpswag:generate --validate ``` + +--- + +## Contributing + +We welcome contributions from the community! If you'd like to help improve `phpswag`, please review our [Contributing Guidelines](CONTRIBUTING.md). + +Please also adhere to our [Code of Conduct](CODE_OF_CONDUCT.md) to keep our community approachable and respectable. + +For security vulnerabilities, please refer to our [Security Policy](SECURITY.md). + +--- + +## ☕ Support / Donate + +**⭐️ Star this repository** + +If you find `phpswag` useful, please consider giving it a star on GitHub! It helps the project grow and reach more developers. + +**☕ Buy me a coffee** + +This project is developed and maintained entirely for free during my spare time. If you would like to financially support its development, you can buy me a coffee through the following channels: + +* **PayPal:** [paypal.me/tolawho](https://paypal.me/tolawho) +* **Ko-fi:** [ko-fi.com/tolawho](https://ko-fi.com/tolawho) +* **Crypto (ETH/ERC20):** `0x730c98ef98c660862baedef292ae3a041a905cdd` +* **Crypto (BTC):** `bc1qv2cp6mcjcd3m2v6hvk09qjg47tljd6mkea6dmuevhxm3a6ps38jqxtwgex` diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..7e97ad8 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,18 @@ +# Security Policy + +## Supported Versions + +Please check the table below to see which versions of `phpswag` are currently receiving security updates. + +| Version | Supported | +| ------- | ------------------ | +| 1.x.x | :white_check_mark: | +| < 1.0 | :x: | + +## Reporting a Vulnerability + +If you discover a security vulnerability within `phpswag`, please DO NOT open a public issue. + +Instead, please send an email to the repository owner or maintainers directly. (Please update with your actual email address). + +We will try our best to acknowledge your report within 48 hours and work with you to resolve the issue as quickly as possible. Once the vulnerability is patched, we will release a security update and acknowledge your contribution.