
# Contributing to COTI Contracts

Thank you for your interest in contributing to the COTI Contracts project! We welcome contributions from the community and appreciate your efforts to improve our project.

## Table of Contents

1. [Code of Conduct](#code-of-conduct)
2. [How Can I Contribute?](#how-can-i-contribute)
   - [Reporting Bugs](#reporting-bugs)
   - [Suggesting Enhancements](#suggesting-enhancements)
   - [Contributing Code](#contributing-code)
3. [Development Guidelines](#development-guidelines)
   - [Development Workflow](#development-workflow)
   - [Coding Standards](#coding-standards)
   - [Commit Messages](#commit-messages)
4. [License](#license)

## Code of Conduct

Please note that this project is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.

## How Can I Contribute?

### Reporting Bugs

If you encounter any bugs, please report them by [opening an issue](https://github.com/coti-io/coti-contracts/issues/new) on GitHub. Include as much detail as possible, including steps to reproduce the bug, the environment you encountered it in, and any other relevant information.

### Suggesting Enhancements

If you have ideas for new features or improvements, feel free to suggest them by [opening an issue](https://github.com/coti-io/coti-contracts/issues/new) on GitHub. Please provide a clear description of the proposed enhancement and why it would be beneficial to the project.

### Contributing Code

We welcome code contributions! To get started, follow these steps:

1. **Fork the repository**: Click the **"Fork"** button at the top right of the repository page to create your own copy of the project.

2. **Clone your fork**: 
   ```sh
   git clone https://github.com/your-username/coti-contracts.git
   cd coti-contracts
   ```

3. **Create a branch**: 
   ```sh
   git checkout -b feature/my-new-feature
   ```

4. **Make your changes**: Develop your feature or bug fix.

5. **Commit your changes**: 
   ```sh
   git commit -m 'Add some feature'
   ```

6. **Push to your fork**: 
   ```sh
   git push origin feature/my-new-feature
   ```

7. **Create a pull request**: Go to the original repository and open a pull request.

## Development Guidelines

### Development Workflow

1. Ensure that you have the latest version of the main branch:
   ```sh
   git checkout main
   git pull origin main
   ```

2. Create a new branch for your work:
   ```sh
   git checkout -b feature/your-feature-name
   ```

3. Make your changes and test thoroughly.

4. Commit your changes with a clear and descriptive message.

5. Push your branch to your fork.

6. Create a pull request against the main branch of the original repository.

### Coding Standards

- Follow the existing coding style.
- Write clear, concise, and meaningful commit messages.
- Ensure your code passes all tests and linter checks.

### Commit Messages

- Use the present tense ("Add feature" not "Added feature").
- Capitalize the first letter.
- Keep the message concise but descriptive.

## License

By contributing, you agree that your contributions will be licensed under the [Apache 2.0 License](/LICENSE).