EVO-melroy-winegui/CONTRIBUTING.md
Melroy van den Berg 83c9773b53 Fix gitlab link
2024-06-08 14:02:54 +02:00

96 lines
4.2 KiB
Markdown

# Contributing to WineGUI
First off, thank you for considering contributing to WineGUI! Your contributions are highly valued and help make this project better for everyone.
## Table of Contents
1. [Code of Conduct](#code-of-conduct)
2. [Getting Started](#getting-started)
3. [How to Contribute](#how-to-contribute)
4. [Coding Standards](#coding-standards)
5. [Commit Guidelines](#commit-guidelines)
6. [Pull Request Process](#pull-request-process)
7. [Resources](#resources)
## Code of Conduct
This project and everyone participating in it is governed by the [WineGUI Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to: melroy at melroy dot org.
## Getting Started
### Forking the Repository
1. Fork the project repository from [GitHub](https://github.com/winegui/WineGUI). Or fork the [GitLab project](https://gitlab.melroy.org/melroy/winegui), if you have access to my [gitlab.melroy.org](https://gitlab.melroy.org) instance.
2. Clone your fork:
```sh
git clone git@github.com:winegui/WineGUI.git
cd WineGUI
```
### Setting Up Your Local Environment
1. Ensure you have all the necessary dependencies installed. Refer to the [README.md](README.md) for detailed installation instructions.
2. Create a new branch for your work:
```sh
git checkout -b feature/my-feature
```
## How to Contribute
### Reporting Bugs
- Ensure the bug was not already reported by searching on the [GitHub issues](https://github.com/winegui/WineGUI/issues).
- If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/winegui/WineGUI/issues/new). Be sure to include:
- A descriptive title.
- A clear description of the issue.
- Steps to reproduce the problem.
- Any relevant logs or screenshots (_Hint:_ running `winegui` command via terminal might output some additional information to the console).
### Suggesting Enhancements
- Check the [GitHub issues list](https://github.com/winegui/WineGUI/issues) for similar suggestions before opening a new one.
- Check the [**GitLab** issue list](https://gitlab.melroy.org/melroy/winegui/-/issues) as well before opening a new one.
- If you find none, you can [create a new issue](https://github.com/winegui/WineGUI/issues/new) that describes:
- The enhancement you are suggesting.
- Why you believe this enhancement would be beneficial.
- Any relevant examples.
### Submitting Code Changes
1. Ensure your work aligns with the [Coding Standards](#coding-standards).
2. Ensure your commits follow the [Commit Guidelines](#commit-guidelines).
3. Push your branch to your forked repository on GitHub.
4. Open a Pull Request on the [GitHub repository](https://github.com/winegui/WineGUI/pulls).
Alternatively, if you prefer, you can submit Merge Requests via the [GitLab instance](https://gitlab.melroy.org/melroy/winegui) (assuming you have access).
## Coding Standards
- Follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) as the basis.
- Additionally, adhere to the [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) as much as possible.
- Ensure your code is formatted using `clang-format` to maintain [consistent code style](.clang-format). Please run the following command to format your code before submitting:
```sh
./scripts/fix_format.sh
```
## Commit Guidelines
- Write clear, concise commit messages.
- Separate each change into its own commit.
## Pull Request Process
1. Ensure your changes pass all tests.
2. Ensure your code adheres to the coding standards and is properly formatted.
3. Create a descriptive title and include relevant details in the Pull Request.
4. Link any relevant issues (e.g., `Fixes #123`, `Closes #456`).
5. Request a review from the maintainers.
6. Address any feedback received during the review process promptly.
## Resources
- [GitHub Mirror](https://github.com/winegui/WineGUI)
- [GitLab Main Project](https://gitlab.melroy.org/melroy/winegui)
- [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
- [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
- [Clang-Format Documentation](https://clang.llvm.org/docs/ClangFormat.html)