Contributing - amosproj/amos2025ss04-ai-driven-testing GitHub Wiki

Contributing to AI-Driven Testing

We welcome contributions to the AI-Driven Testing project! Whether you're fixing a bug, adding a new feature, or improving documentation, your help is appreciated. Please follow these guidelines to make the contribution process smooth.

1. Getting Started

  • Familiarize yourself with the project:
    • Read the User Developer Guide and other relevant Wiki pages to understand the project's purpose, architecture, and setup.
    • Explore the existing codebase.
  • Check for existing issues: Look at the GitHub Issues tab to see if your idea or bug is already being tracked.
  • Discuss your plans (for larger contributions): If you plan to make a significant change, it's a good idea to open an issue first to discuss your approach with the maintainers.

2. Development Workflow

  1. Fork the Repository (if you are an external contributor):

    • Click the "Fork" button on the main repository page.
    • Clone your fork to your local machine: git clone https://github.com/YOUR-USERNAME/amos2025ss04-ai-driven-testing.git
  2. Create a New Branch:

    • Navigate to your local repository directory.
    • Create a descriptive branch for your changes (e.g., feature/new-llm-support, fix/api-bug-123):
      git checkout development  # Or the main development branch
      git pull origin development # Ensure you have the latest changes
      git checkout -b your-branch-name
      
  3. Make Your Changes:

    • Write your code, add tests, and update documentation as needed.
    • Follow the project's coding style (see below).
  4. Test Your Changes:

    • Run existing tests to ensure you haven't introduced regressions: pytest (from the backend directory or project root, depending on test setup).
    • Add new tests for any new functionality you've implemented. Aim for good test coverage.
  5. Code Style and Linting:

    • This project may use linters and formatters like Black, Flake8, or Ruff (check pyproject.toml, pre-commit-config.yaml, or CI workflows).
    • Run the formatter/linter before committing:
      # Example using Black
      black .
      # Example using Ruff
      # ruff format .
      # ruff check --fix .
      
    • Ensure your code adheres to these standards. Pre-commit hooks might be set up to automate this.
  6. Commit Your Changes:

    • Use clear and descriptive commit messages.
    • Stage your changes: git add .
    • Commit: git commit -m "feat: Add support for XYZ feature" or fix: Resolve issue with ABC"
  7. Push Your Branch:

    • Push your branch to your fork (if external) or the main repository (if you have write access):
      git push origin your-branch-name
      
  8. Open a Pull Request (PR):

    • Go to the original amosproj/amos2025ss04-ai-driven-testing repository on GitHub.
    • You should see a prompt to create a Pull Request from your recently pushed branch.
    • Ensure the PR targets the correct base branch (e.g., development or main).
    • Provide a clear title and description for your PR, explaining the changes and referencing any related issues (e.g., "Closes #123").
    • The CI process (GitHub Actions) will automatically run checks on your PR. Address any failures.
    • Engage in any code review discussions.

3. Coding Guidelines (General)

  • Write clear, readable, and maintainable code.
  • Add comments where necessary to explain complex logic.
  • Follow Python best practices (PEP 8).
  • Ensure new dependencies are added to requirements.txt and/or environment.yml and justified.

4. Documentation

  • If you add new features or change existing behavior, update the relevant Wiki pages or README files.
  • Ensure code comments and docstrings are clear and up-to-date.

5. Issue Tracking

  • Use GitHub Issues to report bugs or suggest features.
  • Provide as much detail as possible when creating an issue (e.g., steps to reproduce, error messages, expected behavior).

Thank you for contributing!