<commit_before>## What is Aura?

Aura is an open-source UI framework built by Salesforce for developing dynamic web apps for mobile and desktop 
devices. You can use open-source Aura to build apps independent of Salesforce.

Salesforce uses Aura to build apps, such as Lightning Experience and the Salesforce app. 

Salesforce customers use the Lightning Component framework to build Lightning components. The Lightning Component framework is built on the open-source Aura framework. However, the open-source Aura framework has some features that aren't available to Salesforce customers.

If you're a Salesforce customer, you'll get more relevant information and learn more by starting with the [Lightning Components Basics](https://trailhead.salesforce.com/en/modules/lex_dev_lc_basics) module in Trailhead. 

If you're interested in how Aura is architected, all the code is in this repo. Feel free to poke around.

## How Do I Develop with Aura?

Aura's architecture uses two key building blocks: components and events.
 
**Components** are the self-contained and reusable units of an app. They represent a reusable section of the UI, and can range in granularity from a single line of text to an entire app.

The framework includes a set of prebuilt components in the <code>aura</code> and <code>ui</code> namespaces. You can assemble and configure components to form new components in an app. Components are rendered to produce HTML DOM elements within the browser. 

Components communicate with other components by firing and handling **events**. The robust event model enables you to develop loosely coupled components. Once you define the events that interact with your components, your team can work on the components in parallel to quickly build a powerful app.

Aura also supports a powerful expression language, embedded testing, performance, and security features.

## How Do I Start?

The easiest way to build your first Aura app is from the command line, but you can easily use Aura
with your favorite IDE too.

**Note**: If you’re a Salesforce customer, we recommend that you build Lightning components or application as opposed to building an open-source Aura app. You'll greatly benefit from a lot of foundational architecture that makes it easy to customize Lightning Experience, the Salesforce app, or other Lightning apps. If you're a Salesforce customer, you'll get more relevant information and learn more by starting with the [Lightning Components Basics](https://trailhead.salesforce.com/en/modules/lex_dev_lc_basics) module in Trailhead.

### Prerequisites

You need:

* JDK 1.8
* Apache Maven 3
* Node 4.1.0+
* NPM 2.2.0+
* Google Chrome 67.0+
* Chromedriver 2.41

### Step 1: Install Node, NPM and Chromedriver

1. Install Node and NPM (https://nodejs.org/en/download/)
2. Download Google Chromedriver for your OS
    - Mac (http://chromedriver.storage.googleapis.com/2.41/chromedriver_mac64.zip)
    - Linux (http://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip)
3. Unzip chromedriver into `~/bin/`
4. Ensure node, npm and chromedriver appear within your PATH variable (run `echo $PATH` within your command line window).
   If you cannot see node, npm or chromedriver within your PATH, be sure to add it to your PATH via the export function, eg:
     `echo "export PATH=$PATH:$HOME/bin" >> $HOME/.bash_profile`
   Or paste it directly into your $HOME/.bash_profile, $HOME/.profile, $HOME/.bashrc etc files


### Step 2: Clone Aura git repo and build Archetype

1. Open a command line window.
2. Clone or download Aura maven project using the above github button.
3. Navigate to root `aura` directory
4. Build Aura

    `mvn clean install`

### Step 2: Generate a Template from the Aura Archetype

1. Open a command line window.
2. Navigate to the directory where you want to create your project template and run:<commit_msg>update readme with grunt installation instructions (#3320)<commit_after>## What is Aura?

Aura is an open-source UI framework built by Salesforce for developing dynamic web apps for mobile and desktop 
devices. You can use open-source Aura to build apps independent of Salesforce.

Salesforce uses Aura to build apps, such as Lightning Experience and the Salesforce app. 

Salesforce customers use the Lightning Component framework to build Lightning components. The Lightning Component framework is built on the open-source Aura framework. However, the open-source Aura framework has some features that aren't available to Salesforce customers.

If you're a Salesforce customer, you'll get more relevant information and learn more by starting with the [Lightning Components Basics](https://trailhead.salesforce.com/en/modules/lex_dev_lc_basics) module in Trailhead. 

If you're interested in how Aura is architected, all the code is in this repo. Feel free to poke around.

## How Do I Develop with Aura?

Aura's architecture uses two key building blocks: components and events.
 
**Components** are the self-contained and reusable units of an app. They represent a reusable section of the UI, and can range in granularity from a single line of text to an entire app.

The framework includes a set of prebuilt components in the <code>aura</code> and <code>ui</code> namespaces. You can assemble and configure components to form new components in an app. Components are rendered to produce HTML DOM elements within the browser. 

Components communicate with other components by firing and handling **events**. The robust event model enables you to develop loosely coupled components. Once you define the events that interact with your components, your team can work on the components in parallel to quickly build a powerful app.

Aura also supports a powerful expression language, embedded testing, performance, and security features.

## How Do I Start?

The easiest way to build your first Aura app is from the command line, but you can easily use Aura
with your favorite IDE too.

**Note**: If you’re a Salesforce customer, we recommend that you build Lightning components or application as opposed to building an open-source Aura app. You'll greatly benefit from a lot of foundational architecture that makes it easy to customize Lightning Experience, the Salesforce app, or other Lightning apps. If you're a Salesforce customer, you'll get more relevant information and learn more by starting with the [Lightning Components Basics](https://trailhead.salesforce.com/en/modules/lex_dev_lc_basics) module in Trailhead.

### Prerequisites

You need:

* JDK 1.8
* Apache Maven 3
* Node 4.1.0+
* NPM 2.2.0+
* grunt-cli 1.3.1+
* Google Chrome 67.0+
* Chromedriver 2.41

### Step 1: Install Node, NPM, grunt, and Chromedriver

1. Install Node and NPM (https://nodejs.org/en/download/)
1. Install grunt-cli (https://gruntjs.com/getting-started)
1. Download Google Chromedriver for your OS
    - Mac (http://chromedriver.storage.googleapis.com/2.41/chromedriver_mac64.zip)
    - Linux (http://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip)
1. Unzip chromedriver into `~/bin/`
1. Ensure node, npm and chromedriver appear within your PATH variable (run `echo $PATH` within your command line window).
   If you cannot see node, npm or chromedriver within your PATH, be sure to add it to your PATH via the export function, eg:
     `echo "export PATH=$PATH:$HOME/bin" >> $HOME/.bash_profile`
   Or paste it directly into your $HOME/.bash_profile, $HOME/.profile, $HOME/.bashrc etc files


### Step 2: Clone Aura git repo and build Archetype

1. Open a command line window.
2. Clone or download Aura maven project using the above github button.
3. Navigate to root `aura` directory
4. Build Aura

    `mvn clean install`

### Step 2: Generate a Template from the Aura Archetype

1. Open a command line window.
2. Navigate to the directory where you want to create your project template and run:
{'fraction_non_alphanumeric': 0.06322203884727688, 'fraction_numerical': 0.010663958359781643, 'mean_word_length': 4.414432989690722, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 15, 'https://': 7, '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': '34610', 'n_tokens_mistral': 2185, 'n_tokens_neox': 2033, 'n_words': 1104}