<commit_before>Contributing to HaLVM
====

Development Environment Setup
----

**NOTE**: it is not trivial to set up everything, esp. for the first-time contributor. And this guide is not exhaustively tested in different environments and not necessarily up-to-date. But that's is why HaLVM NEEDS YOUR HELP :) Please report any trouble you met that is not mentioned in this guide, or make a pull request fixing the problem. Any form of contribution is appreciated!

## Step #1: Set up the Host Virtual Machine

Why we need another VM? Because we need to install a Xen hypervisor on the host system, which is probably not something you want to do with your own machine. Besides, we can standardize the steps if we can assume the host OS. Also, it is easier to backup (You can **snapshot** at any check point as you like, and we recommend you to do so frequently before accidentally screwing things up).

Our Host OS of choice is **Fedora Server 22 or newer**. (Why "Server"? Because "Workstation" might have `xen-libs` etc. pre-installed, which might cause trouble for us. And "Server" is also more lightweight than "WorkStation").

You can download its image from any mirror site, for example:

- For Server 22: https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/22/Server/x86_64/iso/Fedora-Server-DVD-x86_64-22.iso
- For Server 23: https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/23/Server/x86_64/iso/Fedora-Server-DVD-x86_64-23.iso
- For Server 24: https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/24/Server/x86_64/iso/Fedora-Server-dvd-x86_64-24-1.2.iso
- For Server 25: https://download.fedoraproject.org/pub/fedora/linux/releases/25/Server/x86_64/iso/Fedora-Server-dvd-x86_64-25-1.3.iso 
- For Server 26: https://download.fedoraproject.org/pub/fedora/linux/releases/26/Server/x86_64/iso/Fedora-Server-dvd-x86_64-26-1.5.iso 

You can also try 21, 25 etc. or even other distros, good luck and if any, please tell us any problem you met, or make a PR documenting how to solve it.

Next, please refer to different subsections depending on your VM softwares, though the steps are not much different.

### Option 1: VMWare

VMWare Fusion really wants you to install from a disk / image, or import an existing PC. Let's not do that. Instead, select "More options ...". At the next screen, we'll "Create a custom virtual machine," and then hit the continue button. When it asks us to select the operating system select **Other** and then **Other 64-bit**. This is _**very important**_. It may be very tempting to know that we're going to install Fedora at some point, and instead pick that specific option from the Linux menu. _Do not be tempted!_ The truth is that the OS we are going to install is Xen, not Linux, and the whole VM-within-a-VM stack tends to fall apart unless you choose `Other 64-bit`.

_**Important warning:**_ do **not** install the VMware Tools or Guest Additions at any point on your new machine. This will, like failing to choose `Other 64-bit`, cause the VM-within-a-VM stack to fall apart.<commit_msg>Fix some broken links noted in #129.<commit_after>Contributing to HaLVM
====

Development Environment Setup
----

**NOTE**: it is not trivial to set up everything, esp. for the first-time contributor. And this guide is not exhaustively tested in different environments and not necessarily up-to-date. But that's is why HaLVM NEEDS YOUR HELP :) Please report any trouble you met that is not mentioned in this guide, or make a pull request fixing the problem. Any form of contribution is appreciated!

## Step #1: Set up the Host Virtual Machine

Why we need another VM? Because we need to install a Xen hypervisor on the host system, which is probably not something you want to do with your own machine. Besides, we can standardize the steps if we can assume the host OS. Also, it is easier to backup (You can **snapshot** at any check point as you like, and we recommend you to do so frequently before accidentally screwing things up).

Our Host OS of choice is **Fedora Server 22 or newer**. (Why "Server"? Because "Workstation" might have `xen-libs` etc. pre-installed, which might cause trouble for us. And "Server" is also more lightweight than "WorkStation").

You can download its image from any mirror site, for example:

- For Server 22: https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/22/Server/x86_64/iso/Fedora-Server-DVD-x86_64-22.iso
- For Server 23: https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/23/Server/x86_64/iso/Fedora-Server-DVD-x86_64-23.iso
- For Server 24: https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/24/Server/x86_64/iso/Fedora-Server-dvd-x86_64-24-1.2.iso
- For Server 25: https://download.fedoraproject.org/pub/archive/fedora/linux/releases/25/Server/x86_64/iso/Fedora-Server-dvd-x86_64-25-1.3.iso
- For Server 26: https://download.fedoraproject.org/pub/archive/fedora/linux/releases/26/Server/x86_64/iso/Fedora-Server-dvd-x86_64-26-1.5.iso

You can also try 21, 25 etc. or even other distros, good luck and if any, please tell us any problem you met, or make a PR documenting how to solve it.

Next, please refer to different subsections depending on your VM softwares, though the steps are not much different.

### Option 1: VMWare

VMWare Fusion really wants you to install from a disk / image, or import an existing PC. Let's not do that. Instead, select "More options ...". At the next screen, we'll "Create a custom virtual machine," and then hit the continue button. When it asks us to select the operating system select **Other** and then **Other 64-bit**. This is _**very important**_. It may be very tempting to know that we're going to install Fedora at some point, and instead pick that specific option from the Linux menu. _Do not be tempted!_ The truth is that the OS we are going to install is Xen, not Linux, and the whole VM-within-a-VM stack tends to fall apart unless you choose `Other 64-bit`.

_**Important warning:**_ do **not** install the VMware Tools or Guest Additions at any point on your new machine. This will, like failing to choose `Other 64-bit`, cause the VM-within-a-VM stack to fall apart.
{'fraction_non_alphanumeric': 0.08611514271891631, 'fraction_numerical': 0.029511369134010642, 'mean_word_length': 4.19430485762144, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '39881', 'n_tokens_mistral': 1949, 'n_tokens_neox': 1763, 'n_words': 841}