Skip to main content

Contributing Guide

We welcome contributions to Whisper2Linux! This guide outlines the process for contributing to the project and helps you get started with development.

Getting Started

  1. Fork the Repository:

    • Visit the Whisper2Linux GitHub repository.
    • Click the "Fork" button to create your own copy of the repository.
  2. Clone Your Fork:

    git clone https://github.com/your-username/whisper2linux.git
    cd whisper2linux
  3. Set Up the Development Environment:

    • Ensure you have Python 3.8+ installed.
    • Install the required dependencies:
      pip install -r requirements.txt
  4. Create a New Branch:

    git checkout -b feature/your-feature-name

Development Guidelines

  1. Code Style:

    • Follow PEP 8 guidelines for Python code style.
    • Use meaningful variable and function names.
    • Include docstrings for functions and classes.
  2. Testing:

    • Write unit tests for new features or bug fixes.
    • Ensure all existing tests pass before submitting a pull request.
  3. Documentation:

    • Update the README.md file if your changes affect the user interface or setup process.
    • Add inline comments for complex logic.
  4. Commit Messages:

    • Write clear, concise commit messages.
    • Use the imperative mood (e.g., "Add feature" not "Added feature").
  5. Keep Pull Requests Focused:

    • Each pull request should address a single feature or bug fix.
    • Break large changes into smaller, manageable pull requests.

Submitting a Pull Request

  1. Push Your Changes:

    git push origin feature/your-feature-name
  2. Create a Pull Request:

    • Go to the Whisper2Linux repository on GitHub.
    • Click "New Pull Request" and select your branch.
    • Fill out the pull request template with details about your changes.
  3. Code Review:

    • A project maintainer will review your pull request.
    • Address any feedback or requested changes.
  4. Continuous Integration:

    • Ensure your changes pass all automated tests.
  5. Merge:

    • Once approved, a maintainer will merge your pull request.

Reporting Issues

  • Use the GitHub issue tracker to report bugs or suggest features.
  • Provide as much detail as possible, including steps to reproduce bugs.

Code of Conduct

  • Be respectful and inclusive in your interactions with other contributors.
  • Follow the project's code of conduct (if available).

Areas for Contribution

  • Bug fixes
  • Performance improvements
  • New features
  • Documentation improvements
  • Test coverage expansion

Setting Up a Development Environment

  1. Local API Services:

    • For development, you may want to set up local instances of the required API services (Whisper, TTS, Ollama).
    • Update the API endpoint URLs in the configuration to point to your local services.
  2. Virtual Environment:

    • Use a virtual environment to isolate your development dependencies:
      python -m venv venv
      source venv/bin/activate # On Windows: venv\Scripts\activate
  3. IDE Setup:

    • Configure your IDE to use the project's virtual environment.
    • Set up linting (e.g., flake8) and formatting (e.g., black) tools in your IDE.

Continuous Integration

  • The project uses GitHub Actions for continuous integration.
  • Familiarize yourself with the CI workflow in .github/workflows/.

Release Process

  • Releases are managed by project maintainers.
  • Contributors can propose releases by creating a pull request with version updates.

Community

  • Join our community chat (if available) to discuss development.
  • Participate in project discussions on GitHub Issues and Pull Requests.

Recognition

  • All contributors will be acknowledged in the project's CONTRIBUTORS.md file.

Thank you for contributing to Whisper2Linux! Your efforts help improve the project for everyone.