Contributing to pat2vec

Thank you for your interest in contributing to pat2vec! Whether you’re reporting a bug, suggesting a feature, or writing code, your contributions are welcome.

How to Contribute

Reporting Bugs

If you encounter a bug, please open an issue on our GitHub issue tracker. Provide as much detail as possible, including:

  • Steps to reproduce the bug.

  • The expected behavior.

  • The actual behavior and any error messages.

  • Your operating system and Python version.

Suggesting Enhancements

If you have an idea for a new feature or an improvement, please open an issue using the “Feature Request” template. Describe your idea clearly, explaining the problem it solves and its potential benefits.

Development Setup

To contribute code, you’ll need to set up a development environment. The install_pat2vec.sh script makes this easy.

  1. Clone the repository:

    git clone https://github.com/SamoraHunter/pat2vec.git
    cd pat2vec
    
  2. Run the installation script with the --dev flag: This flag installs all necessary development dependencies, such as pytest and nbmake.

    ./install_pat2vec.sh --dev
    

    Use the --proxy flag as well if you are behind a corporate proxy.

  3. Activate the virtual environment:

    source pat2vec_env/bin/activate
    

Running Tests

Before submitting a pull request, please ensure all tests pass. pat2vec uses pytest for testing Python code and nbmake for testing Jupyter Notebooks.

  1. Run Python unit tests: From the root of the pat2vec directory, run:

    pytest
    
  2. Run Notebook tests: To ensure the example notebooks run without errors, use nbmake:

    pytest --nbmake notebooks/
    

Pull Request Process

  1. Fork the repository and create a new branch for your feature or bugfix.

  2. Make your changes and add or update tests as appropriate.

  3. Ensure all tests pass locally.

  4. Update the documentation (README, wiki, docstrings) if your changes affect it.

  5. Submit a pull request to the main branch, detailing the changes you have made.