|
| 1 | +# Contributing to PyX |
| 2 | + |
| 3 | +Thank you for your interest in contributing to PyX! We welcome contributions from everyone. By participating in this project, you agree to abide by our Code of Conduct. |
| 4 | + |
| 5 | +## 🚀 How to Contribute |
| 6 | + |
| 7 | +### 1. Report Bugs or Suggest Features |
| 8 | +- **Issues**: Use the [GitHub Issues](https://github.com/sukirman1901/usePyX/issues) tab to report bugs or suggest new features. |
| 9 | +- **Descriptive**: Be as descriptive as possible. Include steps to reproduce bugs or detailed explanations for feature requests. |
| 10 | + |
| 11 | +### 2. Submit Pull Requests (PRs) |
| 12 | +1. **Fork** the repository to your own GitHub account. |
| 13 | +2. **Clone** your fork to your local machine: |
| 14 | + ```bash |
| 15 | + git clone https://github.com/YOUR_USERNAME/usePyX.git |
| 16 | + cd usePyX |
| 17 | + ``` |
| 18 | +3. **Create a Branch** for your specific feature or fix: |
| 19 | + ```bash |
| 20 | + git checkout -b feature/amazing-feature |
| 21 | + ``` |
| 22 | +4. **Set up Development Environment**: |
| 23 | + ```bash |
| 24 | + # Install in editable mode |
| 25 | + pip install -e . |
| 26 | + ``` |
| 27 | +5. **Make your changes**. Ensure your code follows the existing style (clean, Pythonic, "Zen Mode"). |
| 28 | +6. **Run Tests** to ensure no regressions: |
| 29 | + ```bash |
| 30 | + pyx test |
| 31 | + # or manually |
| 32 | + python3 -m pytest tests/ |
| 33 | + ``` |
| 34 | +7. **Commit** your changes with a descriptive message: |
| 35 | + ```bash |
| 36 | + git commit -m "feat: Add amazing new component" |
| 37 | + ``` |
| 38 | +8. **Push** to your fork: |
| 39 | + ```bash |
| 40 | + git push origin feature/amazing-feature |
| 41 | + ``` |
| 42 | +9. **Open a Pull Request** on the main `usePyX` repository. |
| 43 | + |
| 44 | +## 🛠️ Development Guidelines |
| 45 | + |
| 46 | +- **Zen Mode**: Adhere to the philosophy "Write less, do more. Python only." |
| 47 | +- **Type Hinting**: Use strict Python type hinting for better developer experience (IDE autocompletion). |
| 48 | +- **Documentation**: If you add a new feature, please update the relevant documentation (e.g., `README.md` or docstrings). |
| 49 | + |
| 50 | +## 🧪 Running Tests |
| 51 | + |
| 52 | +We use `pytest` for testing. |
| 53 | + |
| 54 | +```bash |
| 55 | +# Run all tests |
| 56 | +pytest |
| 57 | +
|
| 58 | +# Run a specific test file |
| 59 | +pytest tests/test_core.py |
| 60 | +``` |
| 61 | + |
| 62 | +## 🤝 Community |
| 63 | + |
| 64 | +Join the discussion! |
| 65 | +- [GitHub Discussions](https://github.com/sukirman1901/usePyX/discussions) (if enabled) |
| 66 | + |
| 67 | +Thank you for building with us! 🚀 |
0 commit comments