You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

2.7 KiB

Contributing Guidelines

Thank you for your interest in contributing to the CodeXchange AI project! This document provides guidelines and instructions for contributing to the project.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Workflow

  1. Check the issues page for open tasks or create a new issue for the feature/bug you want to work on
  2. Assign yourself to the issue
  3. Implement your changes following the best practices outlined below
  4. Write tests for your changes
  5. Update documentation as needed
  6. Submit a pull request referencing the issue

Best Practices

Code Style

  • Follow existing patterns for consistency
  • Follow PEP 8 style guidelines for Python code
  • Use descriptive variable and function names
  • Add type hints for all new functions
  • Keep functions small and focused on a single responsibility
  • Use docstrings for all public functions and classes

Error Handling

  • Add comprehensive error handling
  • Use specific exception types
  • Provide helpful error messages
  • Log errors with appropriate context

Logging

  • Include detailed logging
  • Use the existing logging framework
  • Log at appropriate levels (DEBUG, INFO, WARNING, ERROR)
  • Include relevant context in log messages

Documentation

  • Update documentation for any changes
  • Document new features, configuration options, and APIs
  • Keep the README and docs directory in sync
  • Use clear, concise language

Testing

  • Write unit tests for new functionality
  • Ensure all tests pass before submitting a PR
  • Test edge cases and error conditions
  • Aim for good test coverage

Pull Request Process

  1. Ensure your code follows the style guidelines
  2. Update documentation as needed
  3. Include tests for new functionality
  4. Link the PR to any related issues
  5. Wait for code review and address any feedback

Code Review

All submissions require review. We use GitHub pull requests for this purpose:

  1. Reviewers will check code quality, test coverage, and documentation
  2. Address any comments or requested changes
  3. Once approved, maintainers will merge your PR

Acknowledgments

We would like to thank the following organizations and projects that make CodeXchange AI possible:

  • OpenAI for GPT models
  • Anthropic for Claude
  • Google for Gemini
  • DeepSeek and GROQ for their AI models
  • The Gradio team for the web interface framework

License

By contributing to this project, you agree that your contributions will be licensed under the project's MIT License.