Contributing to SelfiSys

We welcome contributions to the SelfiSys repository! Please follow these guidelines when contributing.


Reporting Issues

If you find a bug or have a suggestion, please open an issue in the GitHub repository. Include as much detail as possible:

  • Steps to reproduce the issue

  • Expected vs. actual behaviour

  • Relevant error messages or logs (if applicable)

  • Suggestions for improvement (if applicable)

If you are unsure whether your issue is a bug or have questions about the code, you are welcome to open an issue for discussion.

Submitting Contributions

  1. Fork the repository and create a new branch for your changes.

  2. Ensure your contributions are well-documented and adhere to the highest coding standards.

  3. Test your changes thoroughly before submitting:

    • Ensure Jupyter notebooks run without errors from top to bottom.

    • Validate new functionality or fixes using appropriate test cases.

  4. Before submitting a pull request, synchronise your fork with the main repository to incorporate upstream changes.

    • Add the main repository as a remote.

      git remote add upstream https://github.com/hoellin/selfisys_public.git
      
    • Fetch the latest changes from the upstream repository.

      git fetch upstream
      
    • Merge the changes into your local repository.

      git merge upstream/main
      
  5. Open a pull request describing your changes to the main repository.

Style Guidelines

Follow best practices for Python coding and Jupyter notebooks.

Python code

Refer to the PEP 8 Style Guide for Python coding standards.

Jupyter Notebooks

  • Use clear and concise Markdown cells to explain code and results.

  • Avoid leaving unnecessary output (e.g., debugging print statements).

  • Ensure notebooks are runnable from top to bottom.

  • For tips on creating clean and effective Jupyter notebooks, see Jupyter Notebook Best Practices.


Questions?

If you have any questions or need further clarification, feel free to contact the authors.