<commit_before># Vagrant Installer Generators

This project builds installers for full-stack software builds for
Vagrant. This allows us to distribute Vagrant as a single executable
item which will install Ruby, RubyGems, Vagrant, etc. in an isolated
environment already ready to run.

**Current status:** Highly experimental. This doesn't yet generate
stable installers. Use at your own risk. This will create stable installers
very soon.

## How it Works (Technically)

The general steps are given below. Note that for specific platforms,
there may be more steps involved but the basic idea is the same:

1. Create a directory to store a fully self-contained Vagrant install.
   On Linux, this is typically `/tmp/vagrant-temp`. Software built into
   this directory is placed in the `embedded` directory.
2. Build Ruby using only libraries in the isolated directory, and install
   into the embedded directory.
3. Build the Vagrant gem from source.
4. Install the Vagrant gem using the isolated Ruby.
5. Create a binary stub that simply proxies to the install Vagrant binary.
   This typically goes in `/tmp/vagrant-temp/bin`. The binary stub is
   responsible for making sure that _only_ the embedded software is used.
6. Build an installer that simply copies the directory structure of the
   isolated directory to some installation location.

## Building an Installer

### Mac

#### Prerequisites

* [Chef](http://opscode.com/chef)
* [Git](http://git-scm.com/)
* [XCode](http://developer.apple.com/xcode/) (for PackageMaker)

#### Build

    sudo rake

The resulting `dmg` will appear in the `dist` directory.<commit_msg>Update README for Windows<commit_after># Vagrant Installer Generators

This project builds installers for full-stack software builds for
Vagrant. This allows us to distribute Vagrant as a single executable
item which will install Ruby, RubyGems, Vagrant, etc. in an isolated
environment already ready to run.

**Current status:** Highly experimental. This doesn't yet generate
stable installers. Use at your own risk. This will create stable installers
very soon.
n
## How it Works (Technically)

The general steps are given below. Note that for specific platforms,
there may be more steps involved but the basic idea is the same:

1. Create a directory to store a fully self-contained Vagrant install.
   On Linux, this is typically `/tmp/vagrant-temp`. Software built into
   this directory is placed in the `embedded` directory.
2. Build Ruby using only libraries in the isolated directory, and install
   into the embedded directory.
3. Build the Vagrant gem from source.
4. Install the Vagrant gem using the isolated Ruby.
5. Create a binary stub that simply proxies to the install Vagrant binary.
   This typically goes in `/tmp/vagrant-temp/bin`. The binary stub is
   responsible for making sure that _only_ the embedded software is used.
6. Build an installer that simply copies the directory structure of the
   isolated directory to some installation location.

## Building an Installer

### Mac

#### Prerequisites

* [Chef](http://opscode.com/chef)
* [Git](http://git-scm.com/)
* [XCode](http://developer.apple.com/xcode/) (for PackageMaker)

#### Build

    sudo rake

The resulting `dmg` will appear in the `dist` directory.

### Windows

#### Prerequisites

* [Chef](http://opscode.com/chef)
* [Git](http://git-scm.com/)

#### Build

In an administrator console:

    rake

The resulting `msi` will appear in the `dist` directory.
{'fraction_non_alphanumeric': 0.07603686635944701, 'fraction_numerical': 0.0034562211981566822, 'mean_word_length': 4.145185185185185, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4343401', 'n_tokens_mistral': 965, 'n_tokens_neox': 937, 'n_words': 468}