Files
swiftui-math/CONTRIBUTING.md
2026-01-11 12:03:39 +01:00

133 lines
4.3 KiB
Markdown

# Contributing to SwiftUIMath
Thank you for your interest in contributing to SwiftUIMath! We welcome contributions from the community and are grateful for any help you can provide.
## Code of Conduct
This project adheres to the [Contributor Covenant Code of Conduct](.github/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
## How to Contribute
### Reporting Bugs
Before submitting a bug report:
- Check the existing issues to avoid duplicates
- Verify you're using the latest version of SwiftUIMath
When creating a bug report, include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected behavior vs. actual behavior
- Code samples or minimal reproduction cases
- Screenshots or videos if applicable
- Your environment (Xcode version, OS version, device/simulator)
### Suggesting Enhancements
We welcome feature requests and enhancement suggestions! Before submitting:
- Check existing issues for similar suggestions
- Consider if the feature aligns with SwiftUIMath's core goals
When proposing an enhancement:
- Provide a clear and descriptive title
- Explain the problem you're trying to solve
- Describe your proposed solution
- Include code examples or mockups if applicable
- Discuss any alternative solutions you've considered
### Pull Requests
1. **Fork the repository** and create your branch from `main`
2. **Set up your development environment**:
- Open `Package.swift` at the repository root
3. **Make your changes**:
- Write clear, self-documenting code
- Add tests for new functionality
- Update documentation as needed
4. **Test your changes**:
- Run the test suite and verify all tests pass
- Test on multiple platforms (iOS, macOS, visionOS) if applicable
5. **Commit your changes** with a descriptive commit message (see style guide below)
6. **Push to your fork** and submit a pull request to the `main` branch
## Development Setup
1. Clone the repository:
```bash
git clone https://github.com/gonzalezreal/swiftui-math.git
cd swiftui-math
```
2. Open the package:
```bash
open Package.swift
```
3. Build and run the tests to verify your setup
## Style Guides
### Git Commit Messages
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Keep the first line concise (50 characters or less)
- Reference issues and pull requests where appropriate
- Use the body to explain what and why, not how
Examples:
- `Add Math view snapshot coverage`
- `Fix line breaking for accented words`
- `Improve typesetter performance`
### Swift Code Style
- Follow Swift API Design Guidelines
- Use clear, descriptive names for types, methods, and variables
- Prefer clarity over brevity
- Use SwiftUI's declarative style and composition patterns
- Keep view bodies focused and extract complex logic into separate methods or types
- Document public APIs with clear, helpful comments
- Use `// MARK:` comments to organize code into logical sections
### Testing
- Write tests for new functionality
- Ensure existing tests continue to pass
- Focus on testing public APIs and observable behavior
- Include edge cases and error conditions
- Keep tests focused and independent
### Documentation
- Update the README if you add user-facing features
- Document public APIs with clear descriptions and examples
- Include code examples in documentation when helpful
- Update previews or snapshots to showcase new features
## Additional Notes
### Issue Labels
We use labels to categorize issues and pull requests:
- `bug` - Something isn't working
- `enhancement` - New feature or request
- `documentation` - Improvements or additions to documentation
- `good first issue` - Good for newcomers
- `help wanted` - Extra attention is needed
### Questions?
If you have questions about contributing, feel free to:
- Open an issue with your question
- Start a discussion in the repository
- Review existing issues and pull requests for examples
## Recognition
Contributors are recognized in the project's commit history and release notes. Significant contributions may be highlighted in the README.
---
Thank you for contributing to SwiftUIMath! Your efforts help make this library better for everyone.