# Contributing to Turing Machine Backend Library We appreciate your interest in contributing to the Turing Machine Backend Library! We value your time and effort, and we want to make sure that your contribution has a positive impact on the project. To ensure a smooth contribution process, please follow the guidelines below. ## Getting Started 1. Fork the repository on GitHub. 2. Clone your fork to your local machine (`git clone https://github.com/turing-marcos/turing-lib.git`). 3. Create a new branch for your feature or bugfix (`git checkout -b my-feature-branch`). ## Development Environment Setup 1. Ensure you have Rust and Cargo installed. Follow the [official guide](https://www.rust-lang.org/tools/install) for installation instructions. 2. Run `cargo build` to compile the project. 3. Run `cargo test` to run the tests. 4. Make your changes in your feature or bugfix branch. ## Coding Guidelines - Write clean, maintainable, and efficient code. - Use meaningful names for variables, functions, and types. - Add comments where necessary to explain complex or non-obvious code. - Write unit tests for your changes. - Follow the [Rust Style Guidelines](https://doc.rust-lang.org/1.0.0/style/README.html) where possible. ## Submitting Changes 1. Commit your changes (git commit -am 'Add my feature or bugfix'). 2. Make sure all tests pass by running cargo test. 3. Update the documentation if your changes affect public interfaces or require new documentation. 4. Push your branch to your fork (git push origin my-feature-branch). 5. Create a new Pull Request on the original repository, describing your changes and referencing any related issues. ## Reporting Issues If you encounter any bugs or issues, please create a new issue on the GitHub issue tracker. Be sure to include the following information: - A clear and concise description of the issue - Steps to reproduce the issue - Expected behavior - Actual behavior - Any relevant error messages or logs # Feature Requests If you have an idea for a new feature or enhancement, please create a new issue on the GitHub issue tracker and label it as a feature request. Be sure to include the following information: - A clear and concise description of the feature - The motivation for the feature - How the feature will benefit users or the project - Any relevant examples or prior art ## Updating Documentation If you notice any issues in the documentation or want to contribute to the project's documentation, please update the relevant files and submit a pull request. ## License By contributing to this project, you agree that your contributions will be licensed under the same terms as the project itself, as specified in [the LICENSE file](https://github.com/turing-marcos/turing-lib/LICENSE.md).