# Contributing to AMICO

Thank you for your interest in contributing to AMICO! We welcome contributions from the community and are pleased to have you join us.

## Getting Started

1. **Fork the Repository**: Start by forking the repository and then clone it locally.
2. **Install Dependencies**: Make sure you have Rust installed via [rustup](https://rustup.rs/).
3. **Create a Branch**: Create a branch for your work using a descriptive name.

## Development Process

1. **Code Style**
   - We use `rustfmt` for code formatting
   - Run `cargo fmt` before committing to ensure your code is properly formatted
   - Follow the Rust standard naming conventions
   - Use meaningful variable and function names

2. **Code Quality**
   - We use `clippy` for linting
   - Run `cargo clippy` to check your code
   - Fix any warnings before submitting your PR
   - Write clear commit messages explaining your changes

3. **Testing**
   - Write tests for new functionality
   - Ensure all tests pass by running `cargo test`
   - Include both unit tests and integration tests where appropriate

## Pull Request Process

1. **Before Submitting**
   - Update documentation if you're changing functionality
   - Ensure your code passes all CI checks
   - Keep your changes focused and atomic
   - Rebase your branch on the latest main branch

2. **Submitting**
   - Create a Pull Request with a clear title and description
   - Link any related issues
   - Explain what the changes do and why they're needed
   - Include steps for testing your changes

3. **Review Process**
   - Maintainers will review your PR
   - Address any requested changes
   - Once approved, your PR will be merged

## Reporting Issues

- Use the GitHub issue tracker
- Include steps to reproduce the issue
- Include relevant logs and error messages
- Describe expected vs actual behavior

## Code of Conduct

We expect all contributors to:

- Be respectful and inclusive
- Accept constructive criticism
- Focus on what is best for the community
- Show empathy towards other community members

## Questions?

If you have questions, feel free to:

- Open an issue for discussion
- Ask in the project's discussions section

Thank you for contributing to AMICO! 🚀