# Contributing Guide
* [Ways to contribute](#ways-to-contribute)
* [Finding an issue](#finding-an-issue)
* [Asking for help](#asking-for-help)
* [Submitting a contribution](#submitting-a-contribution)
* [Setting up a development environment](#setting-up-a-development-environment)
* [Pull request checklist](#pull-request-checklist)
Welcome to the DNF5 project! We are glad that you want to contribute!
We welcome your feedback on different areas of our project, including the following:
* Problems found during a new developer environment setup.
* Gaps in our documentation.
* Bugs in automation scripts.
If you are experiencing problems with the project, let us know by opening an
[issue](https://github.com/rpm-software-management/dnf5/issues/new).
If you want to file a bug on Fedora, you can open the bug in the
[Bugzilla](https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=dnf5) tool.
## Ways to contribute
We welcome different types of contributions, including the following:
* [New features](https://github.com/rpm-software-management/dnf5/labels/RFE)
* [Bug fixes](https://bugzilla.redhat.com/buglist.cgi?bug_status=__open__&product=Fedora&component=dnf5)
* [Documentation](https://dnf5.readthedocs.io)
* [Issue triage](https://github.com/rpm-software-management/dnf5/issues)
* [Copr builds](https://copr.fedorainfracloud.org/coprs/rpmsoftwaremanagement/), [CI/CD](https://github.com/rpm-software-management/dnf5/actions)
* [Communications](#asking-for-help) and [GH discussions](https://github.com/rpm-software-management/dnf5/discussions)
## Finding an issue
If you are a new contributor, you can search for issues with the
[_good first issue_](https://github.com/rpm-software-management/dnf5/labels/good%20first%20issue) label.
These issues are suitable for contributors who are not core maintainers and want to get familiar with the codebase.
Note that sometimes there can be no issues with the _good first issue_ label. Do not worry! There is likely still
something for you to work on. If you want to contribute but you do not know where to start or cannot find a suitable
issue, ask for help by reaching out to us on one of our [channels](#asking-for-help).
If there is an issue that you would like to work on, add a comment saying
that you want to work on this issue, for example, "I want to work on this", and assign the issue to yourself.
## Asking for help
If you need any help when contributing to the project, reach out to us either of the following ways:
* Leave a comment in the original github issue.
* Send a message to our mailing list: [sst-cs-software-management@redhat.com](mailto:sst-cs-software-management@redhat.com)
* Ask us on our IRC channel: [#dnf](irc:/chat.libera.org/#dnf)
## Submitting a contribution
Once you have a contribution ready, complete the following steps to submit the contribution:
1. Submit a pull request (PR).
* If the PR is not yet ready to be reviewed by the maintainers, create a
"Draft Pull Request". Then, when it's ready, mark it as "Ready for
review".
2. Review the PR.
1. Discuss the PR with one of the maintainers. Note that the maintainers might request some changes.
2. Review the PR again.
3. Merge the PR.
## Setting up a development environment
To setup a development environment, complete the following steps:
1. Install build requirements:
```
dnf builddep dnf5.spec #[--define '_without_