Skip to content

Latest commit

 

History

History
127 lines (87 loc) · 3.87 KB

File metadata and controls

127 lines (87 loc) · 3.87 KB

Contributing to PyRootFinder

Thank you for your interest in contributing to PyRootFinder.

This project welcomes all types of contributions—code improvements, documentation updates, bug reports, and feature suggestions. Please review the relevant sections below before submitting your contribution. Doing so helps maintainers review your work efficiently and ensures a smooth experience for everyone involved.

If you find the project useful but are unable to contribute directly, you can still support it by:

  • Starring the repository
  • Sharing it on social media
  • Mentioning it in your own projects
  • Recommending it to peers and colleagues

Table of Contents

Code of Conduct

All contributors are expected to follow the Code of Conduct. Please report any unacceptable behavior to the maintainers.

Questions and Support

Before opening a new issue, please:

  • Review the README
  • Search existing issues
  • Check relevant discussions or documentation

If your question remains unresolved:

  • Open a new issue with a clear title and detailed description
  • Include relevant environment details (Python version, OS, etc.)
  • Provide minimal code to reproduce the issue if applicable

Ways to Contribute

Reporting Bugs

Before submitting a bug report:

  • Confirm the issue exists in the latest version
  • Check for similar reports in the issue tracker
  • Collect relevant details:
    • Python version and OS
    • Stack trace or error message
    • Function input and expected output
    • Steps to reproduce the issue

To report a bug:

  • Open a new issue
  • Use a descriptive title
  • Include all relevant information and reproduction steps

Suggesting Enhancements

Enhancement suggestions may include new solvers, API improvements, or usability features.

Before submitting:

  • Confirm the idea is not already implemented or proposed
  • Ensure it aligns with the project's scope
  • Provide a clear rationale for its usefulness

To suggest an enhancement:

  • Open a new issue
  • Describe the current behavior and the proposed change
  • Include examples, alternatives considered, and potential impact

Submitting Code

To contribute code:

  1. Fork the repository and clone your fork
  2. Create a new branch for your changes
  3. Make your changes following the style guidelines
  4. Add or update tests in the tests/ directory
  5. Run tests locally:
    python -m unittest discover tests
  6. Commit with a clear message and push to your fork
  7. Open a pull request with a summary of changes

All solvers must return a RootResult object and handle edge cases gracefully.

Improving Documentation

Documentation contributions are welcome. You may:

  • Fix typos or formatting
  • Clarify usage examples
  • Expand API descriptions
  • Add tutorials or guides

Please ensure changes are consistent with the project's tone and structure.

Style Guidelines

Commit Messages

Use clear and conventional commit messages. Examples:

  • fix: handle zero derivative in Newton method
  • feat: add Halley's method solver
  • docs: update README with usage examples

Legal Notice

By contributing, you confirm that:

  • You have authored 100% of the content
  • You have the necessary rights to submit the content
  • Your contribution may be distributed under the MIT license