From b6a53e3046edcdf5c93d27026ca0970da5aa5e88 Mon Sep 17 00:00:00 2001
From: Qiang Xue <qiang.xue@gmail.com>
Date: Tue, 16 Sep 2014 13:31:32 -0400
Subject: [PATCH] WIP

---
 apps/advanced/README.md                   |   1 +
 apps/basic/README.md                      |   1 +
 apps/basic/composer.json                  |   7 +------
 composer.json                             | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------
 docs/guide/start-installation.md          |   7 +++++--
 docs/guide/tutorial-advanced-app.md       |   1 +
 docs/guide/tutorial-start-from-scratch.md |   1 +
 extensions/bootstrap/composer.json        |   3 ++-
 extensions/gii/composer.json              |   3 ++-
 extensions/jui/composer.json              |   3 ++-
 framework/composer.json                   | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------
 11 files changed, 220 insertions(+), 200 deletions(-)

diff --git a/apps/advanced/README.md b/apps/advanced/README.md
index efd10e6..30707e0 100644
--- a/apps/advanced/README.md
+++ b/apps/advanced/README.md
@@ -75,6 +75,7 @@ at [getcomposer.org](http://getcomposer.org/doc/00-intro.md#installation-nix).
 You can then install the application using the following command:
 
 ~~~
+php composer.phar global require "fxp/composer-asset-plugin:~1.0"
 php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-advanced advanced
 ~~~
 
diff --git a/apps/basic/README.md b/apps/basic/README.md
index 452d030..43aaed8 100644
--- a/apps/basic/README.md
+++ b/apps/basic/README.md
@@ -55,6 +55,7 @@ at [getcomposer.org](http://getcomposer.org/doc/00-intro.md#installation-nix).
 You can then install this application template using the following command:
 
 ~~~
+php composer.phar global require "fxp/composer-asset-plugin:~1.0"
 php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
 ~~~
 
diff --git a/apps/basic/composer.json b/apps/basic/composer.json
index 72c67f2..dc168d0 100644
--- a/apps/basic/composer.json
+++ b/apps/basic/composer.json
@@ -17,12 +17,7 @@
         "php": ">=5.4.0",
         "yiisoft/yii2": "*",
         "yiisoft/yii2-bootstrap": "*",
-        "yiisoft/yii2-swiftmailer": "*",
-        /* bower packages, added temporarily to test "composer-asset-plugin" */
-        "bower-asset/bootstrap": "3.2.* | 3.1.* | 3.0.*",
-        "bower-asset/jquery": "2.1.1",
-        "bower-asset/jquery-ui": "1.11.*",
-        "bower-asset/typeahead.js": "0.10.*"
+        "yiisoft/yii2-swiftmailer": "*"
     },
     "require-dev": {
         "yiisoft/yii2-codeception": "*",
diff --git a/composer.json b/composer.json
index 21f5992..27c9a5a 100644
--- a/composer.json
+++ b/composer.json
@@ -1,128 +1,136 @@
 {
-	"name": "yiisoft/yii2-dev",
-	"description": "Yii PHP Framework Version 2 - Development Package",
-	"keywords": ["yii2", "framework"],
-	"homepage": "http://www.yiiframework.com/",
-	"type": "yii2-extension",
-	"license": "BSD-3-Clause",
-	"authors": [
-		{
-			"name": "Qiang Xue",
-			"email": "qiang.xue@gmail.com",
-			"homepage": "http://www.yiiframework.com/",
-			"role": "Founder and project lead"
-		},
-		{
-			"name": "Alexander Makarov",
-			"email": "sam@rmcreative.ru",
-			"homepage": "http://rmcreative.ru/",
-			"role": "Core framework development"
-		},
-		{
-			"name": "Maurizio Domba",
-			"homepage": "http://mdomba.info/",
-			"role": "Core framework development"
-		},
-		{
-			"name": "Carsten Brandt",
-			"email": "mail@cebe.cc",
-			"homepage": "http://cebe.cc/",
-			"role": "Core framework development"
-		},
-		{
-			"name": "Timur Ruziev",
-			"email": "resurtm@gmail.com",
-			"homepage": "http://resurtm.com/",
-			"role": "Core framework development"
-		},
-		{
-			"name": "Paul Klimov",
-			"email": "klimov.paul@gmail.com",
-			"role": "Core framework development"
-		}
-	],
-	"support": {
-		"issues": "https://github.com/yiisoft/yii2/issues?state=open",
-		"forum": "http://www.yiiframework.com/forum/",
-		"wiki": "http://www.yiiframework.com/wiki/",
-		"irc": "irc://irc.freenode.net/yii",
-		"source": "https://github.com/yiisoft/yii2"
-	},
-	"minimum-stability": "dev",
-	"replace": {
-		"yiisoft/yii2-apidoc": "self.version",
-		"yiisoft/yii2-authclient": "self.version",
-		"yiisoft/yii2-bootstrap": "self.version",
-		"yiisoft/yii2-codeception": "self.version",
-		"yiisoft/yii2-debug": "self.version",
-		"yiisoft/yii2-elasticsearch": "self.version",
-		"yiisoft/yii2-faker": "self.version",
-		"yiisoft/yii2-imagine": "self.version",
-		"yiisoft/yii2-gii": "self.version",
-		"yiisoft/yii2-jui": "self.version",
-		"yiisoft/yii2-mongodb": "self.version",
-		"yiisoft/yii2-redis": "self.version",
-		"yiisoft/yii2-smarty": "self.version",
-		"yiisoft/yii2-swiftmailer": "self.version",
-		"yiisoft/yii2-sphinx": "self.version",
-		"yiisoft/yii2-twig": "self.version",
-		"yiisoft/yii2": "self.version"
-	},
-	"require": {
-		"php": ">=5.4.0",
-		"ext-mbstring": "*",
-		"lib-pcre": "*",
-		"yiisoft/yii2-composer": "*",
-		"yiisoft/jquery": "~2.0 | ~1.10",
-		"yiisoft/jquery-pjax": "*",
-		"ezyang/htmlpurifier": "4.6.*",
-		"cebe/markdown": "0.9.*"
-	},
-	"require-dev": {
-		"phpunit/phpunit": "3.7.*",
-		"twig/twig": "*",
-		"smarty/smarty": "*",
-		"imagine/imagine": "v0.5.0",
-		"swiftmailer/swiftmailer": "*",
-		"cebe/indent": "*"
-	},
-	"suggest": {
-		"phpdocumentor/reflection": "required by yii2-apidoc extension",
-		"twbs/bootstrap": "required by yii2-bootstrap, yii2-debug, yii2-gii extension",
-		"ext-curl": "required by yii2-elasticsearch extension",
-		"ext-mongo": "required by yii2-mongo extension",
-		"ext-pdo": "required by yii2-sphinx extension",
-		"ext-pdo_mysql": "required by yii2-sphinx extension",
-		"fzaninotto/faker": "required by yii2-faker extension",
-		"imagine/imagine": "required by yii2-imagine extension",
-		"phpspec/php-diff": "required by yii2-gii extension",
-		"smarty/smarty": "required by yii2-smarty extension",
-		"swiftmailer/swiftmailer": "required by yii2-swiftmailer extension",
-		"twig/twig": "required by yii2-twig extension",
-		"yiisoft/yii2-coding-standards": "you can use this package to check for code style issues when contributing to yii"
-	},
-	"autoload": {
-		"psr-4": {
-			"yii\\": "framework/",
-			"yii\\apidoc\\": "extensions/apidoc/",
-			"yii\\authclient\\": "extensions/authclient/",
-			"yii\\bootstrap\\": "extensions/bootstrap/",
-			"yii\\codeception\\": "extensions/codeception/",
-			"yii\\debug\\": "extensions/debug/",
-			"yii\\elasticsearch\\": "extensions/elasticsearch/",
-			"yii\\faker\\": "extensions/faker/",
-			"yii\\gii\\": "extensions/gii/",
-			"yii\\imagine\\" : "extensions/imagine/",
-			"yii\\jui\\": "extensions/jui/",
-			"yii\\mongodb\\": "extensions/mongodb/",
-			"yii\\redis\\": "extensions/redis/",
-			"yii\\smarty\\": "extensions/smarty/",
-			"yii\\swiftmailer\\": "extensions/swiftmailer/",
-			"yii\\sphinx\\": "extensions/sphinx/",
-			"yii\\twig\\": "extensions/twig/"
-		}
-	},
-	"bin": [
-		"framework/yii"
-	]
+    "name": "yiisoft/yii2-dev",
+    "description": "Yii PHP Framework Version 2 - Development Package",
+    "keywords": [
+        "yii2",
+        "framework"
+    ],
+    "homepage": "http://www.yiiframework.com/",
+    "type": "yii2-extension",
+    "license": "BSD-3-Clause",
+    "authors": [
+        {
+            "name": "Qiang Xue",
+            "email": "qiang.xue@gmail.com",
+            "homepage": "http://www.yiiframework.com/",
+            "role": "Founder and project lead"
+        },
+        {
+            "name": "Alexander Makarov",
+            "email": "sam@rmcreative.ru",
+            "homepage": "http://rmcreative.ru/",
+            "role": "Core framework development"
+        },
+        {
+            "name": "Maurizio Domba",
+            "homepage": "http://mdomba.info/",
+            "role": "Core framework development"
+        },
+        {
+            "name": "Carsten Brandt",
+            "email": "mail@cebe.cc",
+            "homepage": "http://cebe.cc/",
+            "role": "Core framework development"
+        },
+        {
+            "name": "Timur Ruziev",
+            "email": "resurtm@gmail.com",
+            "homepage": "http://resurtm.com/",
+            "role": "Core framework development"
+        },
+        {
+            "name": "Paul Klimov",
+            "email": "klimov.paul@gmail.com",
+            "role": "Core framework development"
+        }
+    ],
+    "support": {
+        "issues": "https://github.com/yiisoft/yii2/issues?state=open",
+        "forum": "http://www.yiiframework.com/forum/",
+        "wiki": "http://www.yiiframework.com/wiki/",
+        "irc": "irc://irc.freenode.net/yii",
+        "source": "https://github.com/yiisoft/yii2"
+    },
+    "minimum-stability": "dev",
+    "replace": {
+        "yiisoft/yii2-apidoc": "self.version",
+        "yiisoft/yii2-authclient": "self.version",
+        "yiisoft/yii2-bootstrap": "self.version",
+        "yiisoft/yii2-codeception": "self.version",
+        "yiisoft/yii2-debug": "self.version",
+        "yiisoft/yii2-elasticsearch": "self.version",
+        "yiisoft/yii2-faker": "self.version",
+        "yiisoft/yii2-imagine": "self.version",
+        "yiisoft/yii2-gii": "self.version",
+        "yiisoft/yii2-jui": "self.version",
+        "yiisoft/yii2-mongodb": "self.version",
+        "yiisoft/yii2-redis": "self.version",
+        "yiisoft/yii2-smarty": "self.version",
+        "yiisoft/yii2-swiftmailer": "self.version",
+        "yiisoft/yii2-sphinx": "self.version",
+        "yiisoft/yii2-twig": "self.version",
+        "yiisoft/yii2": "self.version"
+    },
+    "require": {
+        "php": ">=5.4.0",
+        "ext-mbstring": "*",
+        "lib-pcre": "*",
+        "yiisoft/yii2-composer": "*",
+        "yiisoft/jquery": "~2.0 | ~1.10",
+        "yiisoft/jquery-pjax": "*",
+        "ezyang/htmlpurifier": "4.6.*",
+        "cebe/markdown": "0.9.*",
+        "bower-asset/jquery": ">=1.8",
+        "bower-asset/jquery.inputmask": ">=3.0.0",
+        "bower-asset/punycode": ">=1.3.0",
+        "bower-asset/yii2-pjax": ">=2.0.0",
+        "bower-asset/bootstrap": ">=3.0.0",
+        "bower-asset/jquery.ui": ">=1.10.0"
+    },
+    "require-dev": {
+        "phpunit/phpunit": "3.7.*",
+        "twig/twig": "*",
+        "smarty/smarty": "*",
+        "imagine/imagine": "v0.5.0",
+        "swiftmailer/swiftmailer": "*",
+        "cebe/indent": "*"
+    },
+    "suggest": {
+        "phpdocumentor/reflection": "required by yii2-apidoc extension",
+        "ext-curl": "required by yii2-elasticsearch extension",
+        "ext-mongo": "required by yii2-mongo extension",
+        "ext-pdo": "required by yii2-sphinx extension",
+        "ext-pdo_mysql": "required by yii2-sphinx extension",
+        "fzaninotto/faker": "required by yii2-faker extension",
+        "imagine/imagine": "required by yii2-imagine extension",
+        "phpspec/php-diff": "required by yii2-gii extension",
+        "smarty/smarty": "required by yii2-smarty extension",
+        "swiftmailer/swiftmailer": "required by yii2-swiftmailer extension",
+        "twig/twig": "required by yii2-twig extension",
+        "yiisoft/yii2-coding-standards": "you can use this package to check for code style issues when contributing to yii"
+    },
+    "autoload": {
+        "psr-4": {
+            "yii\\": "framework/",
+            "yii\\apidoc\\": "extensions/apidoc/",
+            "yii\\authclient\\": "extensions/authclient/",
+            "yii\\bootstrap\\": "extensions/bootstrap/",
+            "yii\\codeception\\": "extensions/codeception/",
+            "yii\\debug\\": "extensions/debug/",
+            "yii\\elasticsearch\\": "extensions/elasticsearch/",
+            "yii\\faker\\": "extensions/faker/",
+            "yii\\gii\\": "extensions/gii/",
+            "yii\\imagine\\": "extensions/imagine/",
+            "yii\\jui\\": "extensions/jui/",
+            "yii\\mongodb\\": "extensions/mongodb/",
+            "yii\\redis\\": "extensions/redis/",
+            "yii\\smarty\\": "extensions/smarty/",
+            "yii\\swiftmailer\\": "extensions/swiftmailer/",
+            "yii\\sphinx\\": "extensions/sphinx/",
+            "yii\\twig\\": "extensions/twig/"
+        }
+    },
+    "bin": [
+        "framework/yii"
+    ]
 }
diff --git a/docs/guide/start-installation.md b/docs/guide/start-installation.md
index ef6c591..e56f637 100644
--- a/docs/guide/start-installation.md
+++ b/docs/guide/start-installation.md
@@ -21,11 +21,14 @@ On Windows, you'll download and run [Composer-Setup.exe](https://getcomposer.org
 Please refer to the [Composer Documentation](https://getcomposer.org/doc/) if you encounter any
 problems or want to learn more about Composer usage.
 
-With Composer installed, you can install Yii by running the following command under a Web-accessible folder:
+With Composer installed, you can install Yii by running the following commands under a Web-accessible folder:
 
+    composer global require "fxp/composer-asset-plugin:~1.0"
     composer create-project --prefer-dist yiisoft/yii2-app-basic basic
 
-The above command installs Yii in a directory named `basic`.
+The first command installs the [composer asset plugin](https://github.com/francoispluchino/composer-asset-plugin/)
+which allows managing bower and npm package dependencies through composer. You only need to run this command
+once for all. The second command installs Yii in a directory named `basic`.
 
 > Tip: If you want to install the latest development version of Yii, you may use the following command,
 > which adds a [stability option](https://getcomposer.org/doc/04-schema.md#minimum-stability):
diff --git a/docs/guide/tutorial-advanced-app.md b/docs/guide/tutorial-advanced-app.md
index 2f9554c..d66fd81 100644
--- a/docs/guide/tutorial-advanced-app.md
+++ b/docs/guide/tutorial-advanced-app.md
@@ -22,6 +22,7 @@ curl -sS http://getcomposer.org/installer | php
 You can then install the application using the following command:
 
 ~~~
+php composer.phar global require "fxp/composer-asset-plugin:~1.0"
 php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-advanced /path/to/yii-application
 ~~~
 
diff --git a/docs/guide/tutorial-start-from-scratch.md b/docs/guide/tutorial-start-from-scratch.md
index b216f18..4acb7bb 100644
--- a/docs/guide/tutorial-start-from-scratch.md
+++ b/docs/guide/tutorial-start-from-scratch.md
@@ -48,5 +48,6 @@ Use the Template
 That's all that's required to create a new Yii application template. Now you can create projects using your template:
 
 ```
+php composer.phar global require "fxp/composer-asset-plugin:~1.0"
 php composer.phar create-project --prefer-dist --stability=dev mysoft/yii2-app-coolone new-project
 ```
diff --git a/extensions/bootstrap/composer.json b/extensions/bootstrap/composer.json
index 0e43773..075f444 100644
--- a/extensions/bootstrap/composer.json
+++ b/extensions/bootstrap/composer.json
@@ -18,7 +18,8 @@
         }
     ],
     "require": {
-        "yiisoft/yii2": "*"
+        "yiisoft/yii2": "*",
+        "bower-asset/bootstrap": ">=3.0.0"
     },
     "autoload": {
         "psr-4": {
diff --git a/extensions/gii/composer.json b/extensions/gii/composer.json
index 7787846..29e4c61 100644
--- a/extensions/gii/composer.json
+++ b/extensions/gii/composer.json
@@ -20,7 +20,8 @@
     "require": {
         "yiisoft/yii2": "*",
         "yiisoft/yii2-bootstrap": "*",
-        "phpspec/php-diff": ">=1.0.2"
+        "phpspec/php-diff": ">=1.0.2",
+        "bower-asset/typeahead.js": ">=0.10.0"
     },
     "autoload": {
         "psr-4": {
diff --git a/extensions/jui/composer.json b/extensions/jui/composer.json
index ff67c6d..c2737e7 100644
--- a/extensions/jui/composer.json
+++ b/extensions/jui/composer.json
@@ -18,7 +18,8 @@
         }
     ],
     "require": {
-        "yiisoft/yii2": "*"
+        "yiisoft/yii2": "*",
+        "bower-asset/jquery.ui": ">=1.10.0"
     },
     "autoload": {
         "psr-4": {
diff --git a/framework/composer.json b/framework/composer.json
index eb4cba9..1905f5c 100644
--- a/framework/composer.json
+++ b/framework/composer.json
@@ -1,65 +1,72 @@
 {
-	"name": "yiisoft/yii2",
-	"description": "Yii PHP Framework Version 2",
-	"keywords": ["yii2", "framework"],
-	"homepage": "http://www.yiiframework.com/",
-	"type": "library",
-	"license": "BSD-3-Clause",
-	"authors": [
-		{
-			"name": "Qiang Xue",
-			"email": "qiang.xue@gmail.com",
-			"homepage": "http://www.yiiframework.com/",
-			"role": "Founder and project lead"
-		},
-		{
-			"name": "Alexander Makarov",
-			"email": "sam@rmcreative.ru",
-			"homepage": "http://rmcreative.ru/",
-			"role": "Core framework development"
-		},
-		{
-			"name": "Maurizio Domba",
-			"homepage": "http://mdomba.info/",
-			"role": "Core framework development"
-		},
-		{
-			"name": "Carsten Brandt",
-			"email": "mail@cebe.cc",
-			"homepage": "http://cebe.cc/",
-			"role": "Core framework development"
-		},
-		{
-			"name": "Timur Ruziev",
-			"email": "resurtm@gmail.com",
-			"homepage": "http://resurtm.com/",
-			"role": "Core framework development"
-		},
-		{
-			"name": "Paul Klimov",
-			"email": "klimov.paul@gmail.com",
-			"role": "Core framework development"
-		}
-	],
-	"support": {
-		"issues": "https://github.com/yiisoft/yii2/issues?state=open",
-		"forum": "http://www.yiiframework.com/forum/",
-		"wiki": "http://www.yiiframework.com/wiki/",
-		"irc": "irc://irc.freenode.net/yii",
-		"source": "https://github.com/yiisoft/yii2"
-	},
-	"require": {
-		"php": ">=5.4.0",
-		"ext-mbstring": "*",
-		"lib-pcre": "*",
-		"yiisoft/yii2-composer": "*",
-		"ezyang/htmlpurifier": "4.6.*",
-		"cebe/markdown": "0.9.*"
-	},
-	"autoload": {
-		"psr-4": { "yii\\": "" }
-	},
-	"bin": [
-		"yii"
-	]
+    "name": "yiisoft/yii2",
+    "description": "Yii PHP Framework Version 2",
+    "keywords": [
+        "yii2",
+        "framework"
+    ],
+    "homepage": "http://www.yiiframework.com/",
+    "type": "library",
+    "license": "BSD-3-Clause",
+    "authors": [
+        {
+            "name": "Qiang Xue",
+            "email": "qiang.xue@gmail.com",
+            "homepage": "http://www.yiiframework.com/",
+            "role": "Founder and project lead"
+        },
+        {
+            "name": "Alexander Makarov",
+            "email": "sam@rmcreative.ru",
+            "homepage": "http://rmcreative.ru/",
+            "role": "Core framework development"
+        },
+        {
+            "name": "Maurizio Domba",
+            "homepage": "http://mdomba.info/",
+            "role": "Core framework development"
+        },
+        {
+            "name": "Carsten Brandt",
+            "email": "mail@cebe.cc",
+            "homepage": "http://cebe.cc/",
+            "role": "Core framework development"
+        },
+        {
+            "name": "Timur Ruziev",
+            "email": "resurtm@gmail.com",
+            "homepage": "http://resurtm.com/",
+            "role": "Core framework development"
+        },
+        {
+            "name": "Paul Klimov",
+            "email": "klimov.paul@gmail.com",
+            "role": "Core framework development"
+        }
+    ],
+    "support": {
+        "issues": "https://github.com/yiisoft/yii2/issues?state=open",
+        "forum": "http://www.yiiframework.com/forum/",
+        "wiki": "http://www.yiiframework.com/wiki/",
+        "irc": "irc://irc.freenode.net/yii",
+        "source": "https://github.com/yiisoft/yii2"
+    },
+    "require": {
+        "php": ">=5.4.0",
+        "ext-mbstring": "*",
+        "lib-pcre": "*",
+        "yiisoft/yii2-composer": "*",
+        "ezyang/htmlpurifier": "4.6.*",
+        "cebe/markdown": "0.9.*",
+        "bower-asset/jquery": ">=1.8",
+        "bower-asset/jquery.inputmask": ">=3.0.0",
+        "bower-asset/punycode": ">=1.3.0",
+        "bower-asset/yii2-pjax": ">=2.0.0"
+    },
+    "autoload": {
+        "psr-4": {"yii\\": ""}
+    },
+    "bin": [
+        "yii"
+    ]
 }
--
libgit2 0.27.1