Guidelines for Contributing

Feature Improvement

Contributions to PANINIpy are very welcome and encouraged! Please refer to the following guidlines to contribute to the development of the project with new features and modules:

  1. Fork the Repository: Create a personal fork of the repository on GitHub.

  2. Clone the Fork: Clone the repository fork to the local machine:

    git clone https://github.com/[username]/PANINIpy.git
    
  3. Create a Branch: Create a new branch for the new feature or bugfix:

    git checkout -b feature/[new_feature_name]
    
  4. Make Changes: Implement changes or additions.

  5. Write Tests: Write tests for the new code, if applicable.

  6. Commit Changes: Commit changes with clear and descriptive messages:

    git commit -a -m "Add feature X"
    
  7. Push to Fork: Push the branch to the forked repository:

    git push origin feature/[new_feature_name]
    
  8. Submit a Pull Request: Open a pull request to the main branch of the original repository.

    • Pull Request Template: Please include the following in the pull request description:

      • A summary of the changes and new feature.

      • Any relevant issue reasoning.

      • A description of any limitations or future work.

  9. Code Review: Collaborate with the maintainers during the code review process to improve the pull request.

Issue Reporting

If anyone encounters any issues or have suggestions for improvements, please open an issue on GitHub. Use the following templates:

  • Bug Report Template:

    • Description: Describe the bug in detail.

    • Steps to Reproduce: Provide a step-by-step guide to reproduce the issue.

    • Expected Behavior: Explain what you expected to happen.

    • Actual Behavior: Describe what actually happened.

    • Screenshots or Code Snippets: Include any relevant visuals or code.

    • System Information: Operating system, Python version, etc.

  • Feature Request Template:

    • Description: Describe the new feature you would like to see.

    • Use Case: Explain why this feature would be useful.

    • Additional Context: Any additional information or examples.

Branch Management

  • The main branch contains the latest stable release.

  • Feature branches should be created from the main branch.

  • Please avoid committing directly to the main branch.

Code Style

  • Best to follow PEP 8 style guidelines.

  • Use descriptive variable and function names.

  • Include documentation strings for all public modules, classes, and functions.