Contributing Guidelines # Contributing Guidelines Thank you for considering contributing to the `file_organizer` gem! We welcome contributions of all kinds, from bug reports and feature requests to documentation improvements and code contributions. Please read the following guidelines to help us maintain a high standard for the project and to make the contribution process smooth for everyone involved. ## How to Contribute ### 1. Reporting Issues - Search the [issue tracker](https://github.com/mayankagnihotri7/file-organizer/issues) to check if the issue has already been reported. - If the issue hasn’t been reported, [open a new issue](https://github.com/mayankagnihotri7/file-organizer/issues/new). - Provide a clear and descriptive title. - Include steps to reproduce the issue, expected results, and actual results. - Add screenshots or error messages if applicable. ### 2. Suggesting Features - Before suggesting a new feature, check the [issue tracker](https://github.com/mayankagnihotri7/file-organizer/issues) to see if someone else has already suggested it. - If not, [open a new issue](https://github.com/mayankagnihotri7/file-organizer/issues/new) and describe the feature you’d like to see. - Explain why the feature is useful. - Provide details about how it might work. ### 3. Contributing Code - Fork the repository and clone your fork locally. - Create a new branch for your changes: `git checkout -b feature/your-feature-name`. - Follow the [Code of Conduct](#code-of-conduct). - Make sure your code adheres to the project’s coding standards: - Follow Ruby’s community guidelines and conventions. - Use meaningful commit messages. - Run tests locally to ensure your changes don’t break existing functionality. - Open a pull request (PR) and provide a detailed description of your changes. ### 4. Writing Documentation - Review the existing documentation to understand the style and structure. - Update relevant sections to reflect your changes. - If creating entirely new documentation, ensure it is concise and clear. ### 5. Reviewing Pull Requests - Be respectful and constructive. - Provide actionable feedback. ## Code Standards - Use 2 spaces for indentation. - Write descriptive method names. - Follow the principle of single responsibility for methods and classes. - Add comments for complex logic. - Write tests for new features or changes using RSpec. --- # Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: - Using welcoming and inclusive language. - Being respectful of differing viewpoints and experiences. - Gracefully accepting constructive criticism. - Focusing on what is best for the community. - Showing empathy towards other community members. Examples of unacceptable behavior include: - The use of sexualized language or imagery and unwelcome sexual attention or advances. - Trolling, insulting/derogatory comments, and personal or political attacks. - Public or private harassment. - Publishing others’ private information, such as a physical or electronic address, without explicit permission. - Other conduct which could reasonably be considered inappropriate in a professional setting. ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.