Skip to contents

Thank you for your interest in contributing to manimR! This document provides guidelines and information for contributors.

Code of Conduct

By participating in this project, you agree to abide by our Code of Conduct.

How to Contribute

Reporting Bugs

  1. Check if the bug has already been reported in Issues
  2. If not, create a new issue using the bug report template
  3. Include a minimal reproducible example (reprex)
  4. Describe expected vs actual behavior
  5. Include your environment details

Suggesting Features

  1. Check existing feature requests
  2. Create a new issue using the feature request template
  3. Describe the problem your feature would solve
  4. Propose an API if applicable

Contributing Code

  1. Fork the repository
  2. Create a new branch for your feature (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Write or update tests
  5. Update documentation
  6. Run devtools::check() to ensure no errors
  7. Commit your changes (git commit -m 'Add amazing feature')
  8. Push to your branch (git push origin feature/amazing-feature)
  9. Open a Pull Request

Development Setup

Prerequisites

  • R >= 4.1.0
  • RStudio (recommended)
  • devtools package

Setup

# Clone the repository
# git clone https://github.com/Reyanda/manimR.git

# Install development dependencies
install.packages("devtools")
devtools::install_dev_deps()

# Load the package for development
devtools::load_all()

# Run tests
devtools::test()

# Run R CMD check
devtools::check()

Code Style

We follow the tidyverse style guide. Key points:

  • Use snake_case for function and variable names
  • Use roxygen2 for documentation
  • Write unit tests for new functionality
  • Keep lines under 80 characters when possible

Documentation

  • All exported functions must have roxygen2 documentation
  • Include examples in documentation
  • Update vignettes if adding significant features
  • NEWS.md should document user-facing changes

Testing

  • Write tests using testthat
  • Aim for high test coverage
  • Test edge cases and error conditions
  • Run devtools::test() before submitting

Pull Request Process

  1. Update the README.md with details of changes if applicable
  2. Update the NEWS.md with notes on your changes
  3. Ensure all tests pass
  4. Request review from maintainers
  5. Address any feedback
  6. Once approved, your PR will be merged

Getting Help

License

By contributing, you agree that your contributions will be licensed under the MIT License.