# Contributing to Mod Installer First off, thank you for considering contributing to Mod Installer. It's people like you that make Mod Installer such a great tool. ## Code of Conduct By participating in this project, you are expected to uphold our Code of Conduct. Please report unacceptable behavior to [PROJECT MAINTAINER EMAIL]. ## How Can I Contribute? ### Reporting Bugs This section guides you through submitting a bug report for Mod Installer. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports. - Use a clear and descriptive title for the issue to identify the problem. - Describe the exact steps which reproduce the problem in as many details as possible. - Provide specific examples to demonstrate the steps. ### Suggesting Enhancements This section guides you through submitting an enhancement suggestion for Mod Installer, including completely new features and minor improvements to existing functionality. - Use a clear and descriptive title for the issue to identify the suggestion. - Provide a step-by-step description of the suggested enhancement in as many details as possible. - Provide specific examples to demonstrate the steps. ### Pull Requests - Fill in the required template - Do not include issue numbers in the PR title - Include screenshots and animated GIFs in your pull request whenever possible. - Follow the Rust styleguides. - Include thoughtfully-worded, well-structured tests. - Document new code based on the Documentation Styleguide - End all files with a newline ## Styleguides ### Git Commit Messages - Use the present tense ("Add feature" not "Added feature") - Use the imperative mood ("Move cursor to..." not "Moves cursor to...") - Limit the first line to 72 characters or less - Reference issues and pull requests liberally after the first line - Consider starting the commit message with an applicable emoji: - 🎨 `:art:` when improving the format/structure of the code - 🐎 `:racehorse:` when improving performance - 🚱 `:non-potable_water:` when plugging memory leaks - 📝 `:memo:` when writing docs - 🐧 `:penguin:` when fixing something on Linux - 🍎 `:apple:` when fixing something on macOS - 🏁 `:checkered_flag:` when fixing something on Windows - 🐛 `:bug:` when fixing a bug - 🔥 `:fire:` when removing code or files - 💚 `:green_heart:` when fixing the CI build - ✅ `:white_check_mark:` when adding tests - 🔒 `:lock:` when dealing with security - ⬆️ `:arrow_up:` when upgrading dependencies - ⬇️ `:arrow_down:` when downgrading dependencies ### Rust Styleguide All Rust code should adhere to [Rust Style](https://doc.rust-lang.org/beta/style-guide/index.html) and be formatted using `cargo fmt`. ## Additional Notes ### Issue and Pull Request Labels This section lists the labels we use to help us track and manage issues and pull requests. * `bug` - Issues that are bugs. * `enhancement` - Issues that are feature requests. * `documentation` - Issues or pull requests related to documentation. * `good first issue` - Good for newcomers. ### Thank you! Your contributions to open source, large or small, make great projects like this possible. Thank you for taking the time to contribute.