Contribution

We welcome contributions to the BlockInvGPFA package, whether they involve enhancements, bug fixes, or documentation improvements. To ensure the codebase’s quality and maintainability, please follow this guide carefully.

Code Style

We adhere to the Python Enhancement Proposal 8 (PEP 8). You can find the PEP 8 guidelines here: PEP 8 – Style Guide for Python Code.

Code Documentation

Proper documentation is essential for maintaining and understanding the codebase. Please follow the Numpydoc Style for documenting your code. You can find an example of Numpydoc Style here: Numpydoc Style.

In addition to Numpydoc, ensure that there is at least one comment for each module, class, and function that explains their purpose, usage, and any important details. If you make significant changes to the documentation, update the documentation source files located in the ./docs directory. The documentation is generated using Sphinx.

Code Tests

To maintain code quality and identify potential bugs or errors early in the development process, run the test modules located in the ./test directory. The README.md file in the test directory provides instructions on running these tests. Whenever possible, include tests for any module, class, or function you contribute.

Version Control Workflow

When contributing to the BlockInvGPFA package, please follow these steps:

  1. Fork the BlockInvGPFA repository on GitHub.

  2. Clone your forked repository to your local machine.

  3. Create a new branch for your contribution. Use a descriptive and concise branch name.

  4. Make your code changes, ensuring they adhere to the code style and documentation standards.

  5. Run the relevant tests to ensure your changes do not introduce new issues.

  6. Commit your changes with clear and meaningful commit messages.

  7. Push your branch to your GitHub fork.

  8. Create a pull request (PR) from your branch to the BlockInvGPFA main repository. Provide a detailed description of your changes in the PR.

  9. We will review your PR, and if necessary, provide feedback or request changes.

  10. Once your PR is approved, it will be merged into the main BlockInvGPFA repository.

Thank you for your contribution to the BlockInvGPFA package. Your efforts help improve and maintain this valuable resource for the community.