|
| 1 | +# Contributing to Snapshots for AI |
| 2 | + |
| 3 | +Thank you for your interest in contributing to Snapshots for AI! We welcome contributions from the community to help make this plugin even better. This document outlines the process for contributing to the project. |
| 4 | + |
| 5 | +## Getting Started |
| 6 | + |
| 7 | +### Important: Always Start with an Issue |
| 8 | + |
| 9 | +Before making any changes or submitting a pull request: |
| 10 | +1. **Check Existing Issues** |
| 11 | + - Search through existing issues to avoid duplicates |
| 12 | + - Review open pull requests to ensure no one is already working on the same thing |
| 13 | + |
| 14 | +2. **Create an Issue First** |
| 15 | + - Create a new issue describing what you want to work on |
| 16 | + - Explain the problem you're solving or feature you're adding |
| 17 | + - Wait for maintainer feedback and approval |
| 18 | + - This ensures your time is well spent and your contribution aligns with project goals |
| 19 | + |
| 20 | +3. **Reference the Issue** |
| 21 | + - All pull requests must be linked to an issue |
| 22 | + - Use keywords like "Fixes #123" or "Resolves #123" in your PR description |
| 23 | + - This helps maintain traceability and context for changes |
| 24 | + |
| 25 | +## Development Process |
| 26 | + |
| 27 | +1. **Fork the Repository** |
| 28 | + - Visit the [Snapshots for AI repository](https://github.com/gbti-network/phpstorm-snapshots-for-ai) |
| 29 | + - Click the "Fork" button in the top-right corner |
| 30 | + - This will create a copy of the repository in your GitHub account |
| 31 | + |
| 32 | +2. **Clone Your Fork** |
| 33 | + ```bash |
| 34 | + git clone https://github.com/gbti-network/phpstorm-snapshots-for-ai.git |
| 35 | + cd phpstorm-snapshots-for-ai |
| 36 | + ``` |
| 37 | + |
| 38 | +3. **Set Up Development Environment** |
| 39 | + - Install Java Development Kit (JDK) 17 |
| 40 | + - Install IntelliJ IDEA or PhpStorm |
| 41 | + - Import the project as a Gradle project |
| 42 | + - Ensure all dependencies are properly resolved |
| 43 | + |
| 44 | +## Making Changes |
| 45 | + |
| 46 | +1. **Create a Branch** |
| 47 | + ```bash |
| 48 | + git checkout -b feature/your-feature-name |
| 49 | + # or |
| 50 | + git checkout -b bugfix/your-bugfix-name |
| 51 | + ``` |
| 52 | + |
| 53 | +2. **Development Guidelines** |
| 54 | + - Follow the existing code style and conventions |
| 55 | + - Keep your changes focused and atomic |
| 56 | + - Write meaningful commit messages |
| 57 | + - Add appropriate comments and documentation |
| 58 | + - Update the changelog.md file with your changes |
| 59 | + - Test your changes thoroughly |
| 60 | + |
| 61 | +3. **Running Tests** |
| 62 | + |
| 63 | +No tests exist at this time. |
| 64 | + |
| 65 | + ```bash |
| 66 | + ./gradlew test |
| 67 | + ``` |
| 68 | + |
| 69 | +4. **Building the Plugin** |
| 70 | + ```bash |
| 71 | + ./gradlew buildPlugin |
| 72 | + ``` |
| 73 | + |
| 74 | +## Submitting Changes |
| 75 | + |
| 76 | +1. **Push Your Changes** |
| 77 | + ```bash |
| 78 | + git push origin feature/your-feature-name |
| 79 | + ``` |
| 80 | + |
| 81 | +2. **Create a Pull Request** |
| 82 | + - Go to your fork on GitHub |
| 83 | + - Click "New Pull Request" |
| 84 | + - Select your feature branch |
| 85 | + - Fill out the PR template with: |
| 86 | + - A clear title and description |
| 87 | + - Reference to the related issue (required) |
| 88 | + - Description of the changes made |
| 89 | + - Any additional context or screenshots |
| 90 | + |
| 91 | +3. **Code Review Process** |
| 92 | + - Maintainers will review your PR |
| 93 | + - Address any feedback or requested changes |
| 94 | + - Once approved, your PR will be merged |
| 95 | + |
| 96 | +## What to Contribute |
| 97 | + |
| 98 | +- Bug fixes |
| 99 | +- New features |
| 100 | +- Documentation improvements |
| 101 | +- Performance optimizations |
| 102 | +- Additional file pattern configurations |
| 103 | +- UI/UX enhancements |
| 104 | + |
| 105 | +## Best Practices |
| 106 | + |
| 107 | +- Always start with an issue |
| 108 | +- Keep PRs small and focused |
| 109 | +- Test your changes thoroughly |
| 110 | +- Update documentation as needed |
| 111 | +- Follow semantic versioning |
| 112 | +- Keep the changelog up to date |
| 113 | +- Write clear commit messages |
| 114 | +- Respond to review comments promptly |
| 115 | + |
| 116 | +## Getting Help |
| 117 | + |
| 118 | +If you need help with anything: |
| 119 | +- Open an issue with your question |
| 120 | +- Join our community discussions |
| 121 | +- Reach out to the maintainers |
| 122 | + |
| 123 | +## Code of Conduct |
| 124 | + |
| 125 | +Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. |
| 126 | + |
| 127 | +## License |
| 128 | + |
| 129 | +By contributing to Snapshots for AI, you agree that your contributions will be licensed under the same terms as the original project. |
| 130 | + |
| 131 | +## Thank You |
| 132 | + |
| 133 | +Your contributions to Snapshots for AI are greatly appreciated. Thank you for helping make this project better for everyone! |
0 commit comments