# Installing the Project

Just like any open-source software, we are open to contributors and would love to have some extra helping hands! This section will go over how to correctly install the Lua++ project so that you can become a contributor.

<details>

<summary><mark style="color:blue;">Step 1:</mark>  Forking the Repository</summary>

The first and most important part of this process is forking your desired repository. There are a few steps to this process:

1. On GitHub.com, navigate to the [luapp-org/luapp](https://github.com/luapp-org/luapp) repository.

2. In the top right corner of the page, click **Fork.**<br>

   <figure><img src="https://3830794175-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4UivSLxpywEEiaOp1OMZ%2Fuploads%2FLXmuv3MslCcalqIrx8ah%2Fimage.png?alt=media&#x26;token=0cea7a29-f1a8-46d2-9af4-a734891c039f" alt=""><figcaption><p>The <strong>Fork</strong> button at the top right of the page</p></figcaption></figure>

3. Once you have forked the repository, you need to clone the repo to your local machine so that you can add your changes. You can find the link to the repo after clicking the **Code** dropdown.<br>

   <figure><img src="https://3830794175-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4UivSLxpywEEiaOp1OMZ%2Fuploads%2FFh4eP457s6zGin0RV9rQ%2Fimage.png?alt=media&#x26;token=c70addc9-d0fb-4228-ad15-7e9674d5fc21" alt=""><figcaption><p>The <strong>Clone</strong> menu for the repo.</p></figcaption></figure>

   Then run the clone command in your local environment:\
   `git clone <link>`

&#x20;

</details>

Before you can get to contributing you need to install Lua++'s few dependencies. Instructions are listed below in the order of your operating system.

{% tabs %}
{% tab title="Linux" %}
You need to install `make`, `flex`, and `bison`. To install them on a Linux machine run the following commands:

```
sudo apt update
sudo apt install flex
sudo apt install bison
sudo apt install make
```

Then you need to enter the main source folder and build the desired project (e.g. `make interpreter`). The binaries are stored in `src/bin` with `luappc` being the compiler, `luappvm` the VM, and `luapp` the interpreter.
{% endtab %}
{% endtabs %}

<details>

<summary><mark style="color:blue;">Step 2:</mark>  Creating a Pull Request</summary>

1. To begin committing new changes to your fork, you need to first create a new branch. This can be done with the following command:\
   `git checkout -b new-user-contribution`
2. Once you have committed your changes to your new branch, you need to **create a pull request**.<br>

   <figure><img src="https://3830794175-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4UivSLxpywEEiaOp1OMZ%2Fuploads%2FgEtA7CR7SgbeGIOj3OqH%2F3hgusjnp9c93g9zt3o72.png?alt=media&#x26;token=82e4d405-9339-4944-92d4-ffedb827df37" alt=""><figcaption><p>How to create a new pull request.</p></figcaption></figure>

</details>

Thank you for showing interest Lua++, we hope that we can get as much assistance from the community as possible. Happy coding!&#x20;
