Contributing ============ Thank you for your interest in contributing to the **Blender Development for PyCharm** plugin! This guide focuses on the development workflow and setup for the Kotlin source code of the plugin. Reporting Issues ---------------- If you find a bug or have a feature request, and don't have any Kotlin and Intellij Platform development skills, please `open an issue `_ with: - A clear title and description. - Steps to reproduce the bug. - Your OS, PyCharm version, and Blender version. - Any relevant logs or screenshots. Upon submission, your post will be reviewed and appropriate action will be taken. Getting Started --------------- Prerequisites ~~~~~~~~~~~~~ - `IntelliJ IDEA `_ (Community or Ultimate) - `Plugin DevKit `_ (For Intellij IDEA) - `JDK 21 `_ or later Setup ~~~~~ 1. **Fork the repository** on GitHub. 2. **Clone your fork** locally. 3. **Open the project** in IntelliJ IDEA. 4. **Set up the SDK**: Ensure you have JDK 21+ installed and configured. Development Workflow -------------------- 1. Create a Branch ~~~~~~~~~~~~~~~~~~ .. code-block:: bash git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix 2. Make Changes ~~~~~~~~~~~~~~~ Implement your changes in the ``src/main/kotlin`` directory. Follow the existing project structure and :doc:`coding-guidelines`. 3. Test Your Changes ~~~~~~~~~~~~~~~~~~~~ Run the plugin in a sandbox environment to verify your changes: .. code-block:: bash ./gradlew runIde If you've added new logic, please consider adding unit tests in ``src/test/kotlin``. The project includes a suite of **headless integration tests** for validating core communication and reload cycles. Run all tests with: .. code-block:: bash ./gradlew test 4. Build and Verify ~~~~~~~~~~~~~~~~~~~ To build the distribution plugin ZIP file: .. code-block:: bash ./gradlew buildPlugin The project uses **GitHub Actions** (``.github/workflows/verify.yml``) to automatically validate all Pull Requests. Ensure your changes pass all CI checks before submission. 5. Open a Pull Request ~~~~~~~~~~~~~~~~~~~~~~ Submit a Pull Request on GitHub. Provide a clear description of the changes and any related issues. Communication ------------- For questions or discussions, feel free to use GitHub Discussions or open an issue. --- By contributing, you agree that your contributions will be licensed under the project's license.