== Getting Started
:toc: right

This document is intended to guide you through your first contribution
to a Fedora Infrastructure project. It assumes you are already familiar
with the https://git-scm.com/[git] version control system and the
https://www.python.org/[Python] programming language.

=== Development Environment

The Fedora Infrastructure team uses https://www.ansible.com/[Ansible]
and https://vagrantup.com/[Vagrant] to set up development environments
for the majority of our projects. It's recommended that you develop on a
Fedora host, but that is not strictly required.

To install https://www.ansible.com/[Ansible] and
https://vagrantup.com/[Vagrant] on Fedora, run:

....
$ sudo dnf install vagrant libvirt vagrant-libvirt vagrant-sshfs ansible
....

Projects will provide a `Vagrantfile.example` file in the root of their
repository if they support using https://vagrantup.com/[Vagrant]. Copy
this to `Vagrantfile`, adjust it as you see fit, and then run:

....
$ vagrant up
$ vagrant reload
$ vagrant ssh
....

This will create a new virtual machine, configure it with
https://www.ansible.com/[Ansible], restart it to ensure you're running
the latest updates, and then SSH into the virtual machine.

Individual projects will provide detailed instructions for their
particular setup.

=== Finding a Project

Fedora Infrastructure applications are either on
https://github.com/[GitHub] in the
https://github.com/fedora-infra[fedora-infra] organization, or on
https://pagure.io/[Pagure]. Check out the issues tagged with
https://fedoraproject.org/easyfix/[easyfix] for an issue to fix.
