# Contributing Guidelines Thank you for considering contributing to our open-source project! We appreciate your interest and support. To ensure a smooth collaboration, please review and adhere to the following guidelines. ## Table of Contents - [Contributing Guidelines](#contributing-guidelines) - [Table of Contents](#table-of-contents) - [Getting Started](#getting-started) - [Prerequisites](#prerequisites) - [Fork the Repository](#fork-the-repository) - [Clone the Repository](#clone-the-repository) - [Making Contributions](#making-contributions) - [Branches](#branches) - [Coding Standards](#coding-standards) - [Commit Messages](#commit-messages) - [Testing](#testing) - [Submitting Changes](#submitting-changes) - [Pull Requests](#pull-requests) - [Issues](#issues) - [Community and Communication](#community-and-communication) - [Code of Conduct](#code-of-conduct) ## Getting Started ### Prerequisites Before you start contributing, please make sure you have the following: - [Git](https://git-scm.com/) installed - [A GitHub account](https://github.com/) - A text editor or integrated development environment (IDE) of your choice - Knowledge of the programming language(s) used in this project ### Fork the Repository Fork our repository by clicking the "Fork" button on the top right of the repository page. This will create a copy of the project in your GitHub account. ### Clone the Repository After forking the repository, clone it to your local machine using the following command, replacing `[your-username]` with your GitHub username: ```bash git clone https://github.com/gbowne1/[repository-name].git ``` ## Making Contributions ### Branches Create a new branch for your work. It's important to keep your changes isolated from the `main` or `master` branch to prevent conflicts. Name your branch descriptively, such as `feature/your-feature-name` or `bugfix/issue-number`. ```bash git checkout -b feature/your-feature-name ``` ### Coding Standards Please follow the coding standards and style guide of the project. If there are no established standards, maintain consistency with the existing codebase. A few notes about this project's coding standards. We use the C11 and/or C17 standard in this project. Use whatever editor or IDE you prefer. We have toolchain recommendations including versions in the main README.md file. ### Commit Messages Write clear, concise, and meaningful commit messages. A good commit message should: - Begin with a verb in the imperative mood (e.g., "Add", "Fix" "Update", etc. ). - Be concise and focused on a single change. - Keep your changes limited to the issue. - Reference related issues or pull requests, if applicable. - Do not be afraid to post any issues you encounter Example: "Fix #123: Add validation for user email input" ### Testing Make sure your changes do not break existing functionality. Write tests for new features and update existing tests as needed. ## Submitting Changes ### Pull Requests When your contribution is ready, open a pull request (PR) from your branch to the main repository's branch (e.g., `main` or `master`). Be sure to: - Give the PR a descriptive title. - Provide a clear and detailed description of your changes. - Do NOT screenshot code, rather copy and paste into code blocks in Markdown. - Reference related issues, if any. - Be prepared to respond to feedback and make necessary adjustments. ### Issues If you find a bug, have a suggestion, or want to work on an issue, please check the project's issue tracker. If the issue doesn't exist yet, feel free to open a new one to discuss the problem or feature request. ## Community and Communication Join our community on [GitHub Discussions](https://github.com/gbowne1/ClassicOS/discussions) or [our Discord](https://discord.gg/QusyDYeh) or [our Slack server/channel](https://join.slack.com/t/connectcoders/shared_invite/zt-23ajnvegn-0nUuIlxhSDU8tQrPBL~riQ)to connect with other contributors and maintainers. This is the place to seek help, discuss ideas, and stay updated on project developments. ## Code of Conduct Please adhere to our [Code of Conduct](CODE_OF_CONDUCT.md) to ensure a welcoming and inclusive environment for all contributors. Thank you for your interest in contributing to our project! Your contributions make a significant impact on the success and growth of the project.