# Contributing to LIRA Thank you for your interest in contributing to LIRA (Language-Instructed Robotic Assistant)! This document provides guidelines and instructions for contributing to the project. ## Table of Contents - [Code of Conduct](#code-of-conduct) - [Getting Started](#getting-started) - [How to Contribute](#how-to-contribute) - [Reporting Bugs](#reporting-bugs) - [Suggesting Enhancements](#suggesting-enhancements) - [Code Contributions](#code-contributions) - [Development Workflow](#development-workflow) - [Pull Request Process](#pull-request-process) - [Style Guidelines](#style-guidelines) - [Research Contributions](#research-contributions) ## Code of Conduct This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior. ## Getting Started 1. **Fork the Repository**: Start by forking the repository to your GitHub account. 2. **Clone Your Fork**: ```bash git clone https://github.com/YOUR-USERNAME/lira.git cd lira ``` 3. **Set Up Development Environment**: ```bash python setup.py source venv/bin/activate ``` 4. **Configure API Key** (if needed): ```bash cp env_template.txt .env # Edit .env and add your OpenAI API key ``` ## How to Contribute ### Reporting Bugs If you find a bug, please create an issue with the following information: - Clear description of the bug - Steps to reproduce - Expected behavior - Actual behavior - Screenshots (if applicable) - Environment information (OS, Python version, etc.) ### Suggesting Enhancements For feature suggestions: - Clearly describe the feature - Explain why it would be valuable - Provide examples of how it would work - Discuss any potential implementation challenges ### Code Contributions 1. **Choose an Issue**: Start by looking at open issues or create a new one. 2. **Create a Branch**: Create a branch for your work with a descriptive name. 3. **Make Changes**: Implement your changes with appropriate tests. 4. **Test Your Changes**: Ensure all tests pass and add new tests as needed. 5. **Submit a Pull Request**: Create a PR with a clear description of the changes. ## Development Workflow 1. **Create a Feature Branch**: ```bash git checkout -b feature/your-feature-name ``` 2. **Commit Your Changes**: ```bash git commit -m "Add feature X" ``` 3. **Push to Your Fork**: ```bash git push origin feature/your-feature-name ``` 4. **Create a Pull Request**: Go to the original repository and create a PR. ## Pull Request Process 1. Update documentation as needed 2. Add or update tests as needed 3. Ensure all CI checks pass 4. Get at least one code review approval 5. Merge will be handled by maintainers ## Style Guidelines - Follow PEP 8 for Python code - Use type hints where appropriate - Write docstrings for all functions, classes, and modules - Keep functions focused on a single responsibility - Use descriptive variable and function names ## Research Contributions LIRA is a research project, and we welcome contributions beyond code: - **Experiments**: Design and conduct experiments with LIRA - **Documentation**: Improve technical documentation or add tutorials - **Use Cases**: Demonstrate novel applications of LIRA - **Hardware Integrations**: Add support for new hardware components - **Performance Optimizations**: Improve speed, memory usage, or accuracy When contributing research findings: - Document your methodology - Include reproducible steps - Share data when possible - Discuss limitations and future work Thank you for contributing to LIRA!