diff --git a/dev/automated_tests/flutter.yaml b/dev/automated_tests/flutter.yaml
deleted file mode 100644
index 2cdeaa40b70..00000000000
--- a/dev/automated_tests/flutter.yaml
+++ /dev/null
@@ -1 +0,0 @@
-uses-material-design: true
diff --git a/dev/automated_tests/pubspec.yaml b/dev/automated_tests/pubspec.yaml
index a76769da5bc..a228bb5e33a 100644
--- a/dev/automated_tests/pubspec.yaml
+++ b/dev/automated_tests/pubspec.yaml
@@ -4,3 +4,5 @@ dependencies:
sdk: flutter
flutter_test:
sdk: flutter
+flutter:
+ uses-material-design: true
diff --git a/dev/benchmarks/complex_layout/flutter.yaml b/dev/benchmarks/complex_layout/flutter.yaml
deleted file mode 100644
index 16e08e13853..00000000000
--- a/dev/benchmarks/complex_layout/flutter.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: complex_layout
-uses-material-design: true
-assets:
- - packages/flutter_gallery_assets/ali_connors.png
- - packages/flutter_gallery_assets/ali_connors_sml.png
- - packages/flutter_gallery_assets/top_10_australian_beaches.png
diff --git a/dev/benchmarks/complex_layout/pubspec.yaml b/dev/benchmarks/complex_layout/pubspec.yaml
index 8e3f79a49d7..3f2863d84c4 100644
--- a/dev/benchmarks/complex_layout/pubspec.yaml
+++ b/dev/benchmarks/complex_layout/pubspec.yaml
@@ -1,5 +1,5 @@
name: complex_layout
-description: A new flutter project.
+description: A benchmark of a relatively complex layout.
dependencies:
flutter:
@@ -16,3 +16,10 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
+
+flutter:
+ uses-material-design: true
+ assets:
+ - packages/flutter_gallery_assets/ali_connors.png
+ - packages/flutter_gallery_assets/ali_connors_sml.png
+ - packages/flutter_gallery_assets/top_10_australian_beaches.png
diff --git a/dev/benchmarks/microbenchmarks/flutter.yaml b/dev/benchmarks/microbenchmarks/flutter.yaml
deleted file mode 100644
index 810d01190db..00000000000
--- a/dev/benchmarks/microbenchmarks/flutter.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-name: microbenchmarks
-uses-material-design: true
diff --git a/dev/benchmarks/microbenchmarks/pubspec.yaml b/dev/benchmarks/microbenchmarks/pubspec.yaml
index da5e4561fed..44fcf2abcff 100644
--- a/dev/benchmarks/microbenchmarks/pubspec.yaml
+++ b/dev/benchmarks/microbenchmarks/pubspec.yaml
@@ -1,5 +1,5 @@
name: microbenchmarks
-description: A new flutter project.
+description: Small benchmarks for very specific parts of the Flutter framework.
dependencies:
meta: ^1.0.3
flutter:
@@ -8,3 +8,5 @@ dependencies:
sdk: flutter
stocks:
path: ../../../examples/stocks
+flutter:
+ uses-material-design: true
diff --git a/dev/manual_tests/flutter.yaml b/dev/manual_tests/flutter.yaml
deleted file mode 100644
index 2cdeaa40b70..00000000000
--- a/dev/manual_tests/flutter.yaml
+++ /dev/null
@@ -1 +0,0 @@
-uses-material-design: true
diff --git a/dev/manual_tests/pubspec.yaml b/dev/manual_tests/pubspec.yaml
index 026ef9e8a6c..abb062d4e4b 100644
--- a/dev/manual_tests/pubspec.yaml
+++ b/dev/manual_tests/pubspec.yaml
@@ -1,9 +1,9 @@
name: flutter_manual_tests
-
dependencies:
flutter:
sdk: flutter
-
dev_dependencies:
flutter_test:
sdk: flutter
+flutter:
+ uses-material-design: true
diff --git a/examples/flutter_gallery/flutter.yaml b/examples/flutter_gallery/flutter.yaml
deleted file mode 100644
index 80bdaa0e458..00000000000
--- a/examples/flutter_gallery/flutter.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-name: flutter_gallery
-uses-material-design: true
-assets:
- - lib/gallery/example_code.dart
- - packages/flutter_gallery_assets/appbar_background.jpg
- - packages/flutter_gallery_assets/appbar/appbar_background_layer0.png
- - packages/flutter_gallery_assets/appbar/appbar_background_layer1.png
- - packages/flutter_gallery_assets/appbar/appbar_background_layer2.png
- - packages/flutter_gallery_assets/appbar/appbar_background_layer3.png
- - packages/flutter_gallery_assets/appbar/appbar_background_layer4.png
- - packages/flutter_gallery_assets/appbar/appbar_background_layer5.png
- - packages/flutter_gallery_assets/pesto/avatar.jpg
- - packages/flutter_gallery_assets/pesto/image10.jpg
- - packages/flutter_gallery_assets/pesto/image11.jpg
- - packages/flutter_gallery_assets/pesto/image12.jpg
- - packages/flutter_gallery_assets/pesto/image13.jpg
- - packages/flutter_gallery_assets/pesto/image1.jpg
- - packages/flutter_gallery_assets/pesto/image2.jpg
- - packages/flutter_gallery_assets/pesto/image3.jpg
- - packages/flutter_gallery_assets/pesto/image4.jpg
- - packages/flutter_gallery_assets/pesto/image5.jpg
- - packages/flutter_gallery_assets/pesto/image6.jpg
- - packages/flutter_gallery_assets/pesto/image7.jpg
- - packages/flutter_gallery_assets/pesto/image8.jpg
- - packages/flutter_gallery_assets/pesto/image9.jpg
- - packages/flutter_gallery_assets/pesto/logo_small.png
- - packages/flutter_gallery_assets/pesto/logo_medium.png
- - packages/flutter_gallery_assets/pesto/fish.png
- - packages/flutter_gallery_assets/pesto/healthy.png
- - packages/flutter_gallery_assets/pesto/main.png
- - packages/flutter_gallery_assets/pesto/meat.png
- - packages/flutter_gallery_assets/pesto/quick.png
- - packages/flutter_gallery_assets/pesto/spicy.png
- - packages/flutter_gallery_assets/pesto/veggie.png
- - packages/flutter_gallery_assets/about_logo.png
- - packages/flutter_gallery_assets/ali_connors.jpg
- - packages/flutter_gallery_assets/drawer_logo.png
- - packages/flutter_gallery_assets/kangaroo_valley_safari.jpg
- - packages/flutter_gallery_assets/top_10_australian_beaches.jpg
- - packages/flutter_gallery_assets/landscape_0.jpg
- - packages/flutter_gallery_assets/landscape_1.jpg
- - packages/flutter_gallery_assets/landscape_2.jpg
- - packages/flutter_gallery_assets/landscape_3.jpg
- - packages/flutter_gallery_assets/landscape_4.jpg
- - packages/flutter_gallery_assets/landscape_5.jpg
- - packages/flutter_gallery_assets/landscape_6.jpg
- - packages/flutter_gallery_assets/landscape_7.jpg
- - packages/flutter_gallery_assets/landscape_8.jpg
- - packages/flutter_gallery_assets/landscape_9.jpg
- - packages/flutter_gallery_assets/landscape_10.jpg
- - packages/flutter_gallery_assets/landscape_11.jpg
- - packages/flutter_gallery_assets/shrine/products/backpack.png
- - packages/flutter_gallery_assets/shrine/products/beachball.png
- - packages/flutter_gallery_assets/shrine/products/binoculars.png
- - packages/flutter_gallery_assets/shrine/products/brush.png
- - packages/flutter_gallery_assets/shrine/products/chair.png
- - packages/flutter_gallery_assets/shrine/products/chucks.png
- - packages/flutter_gallery_assets/shrine/products/clock.png
- - packages/flutter_gallery_assets/shrine/products/fish_bowl.png
- - packages/flutter_gallery_assets/shrine/products/flippers.png
- - packages/flutter_gallery_assets/shrine/products/green-shoes.png
- - packages/flutter_gallery_assets/shrine/products/heels.png
- - packages/flutter_gallery_assets/shrine/products/helmet.png
- - packages/flutter_gallery_assets/shrine/products/lawn_chair.png
- - packages/flutter_gallery_assets/shrine/products/lipstick.png
- - packages/flutter_gallery_assets/shrine/products/popsicle.png
- - packages/flutter_gallery_assets/shrine/products/radio.png
- - packages/flutter_gallery_assets/shrine/products/sunnies.png
- - packages/flutter_gallery_assets/shrine/products/surfboard.png
- - packages/flutter_gallery_assets/shrine/products/teapot.png
- - packages/flutter_gallery_assets/shrine/vendors/16c477b.jpg
- - packages/flutter_gallery_assets/shrine/vendors/ali-connors.png
- - packages/flutter_gallery_assets/shrine/vendors/peter-carlsson.png
- - packages/flutter_gallery_assets/shrine/vendors/sandra-adams.jpg
- - packages/flutter_gallery_assets/shrine/vendors/zach.jpg
-fonts:
- - family: Raleway
- fonts:
- - asset: packages/flutter_gallery_assets/pesto/fonts/Raleway-Regular.ttf
- - asset: packages/flutter_gallery_assets/pesto/fonts/Raleway-Medium.ttf
- weight: 500
- - asset: packages/flutter_gallery_assets/pesto/fonts/Raleway-SemiBold.ttf
- weight: 600
- - family: AbrilFatface
- fonts:
- - asset: packages/flutter_gallery_assets/shrine/fonts/abrilfatface/AbrilFatface-Regular.ttf
diff --git a/examples/flutter_gallery/pubspec.yaml b/examples/flutter_gallery/pubspec.yaml
index 5fe35918865..8d41f33d232 100644
--- a/examples/flutter_gallery/pubspec.yaml
+++ b/examples/flutter_gallery/pubspec.yaml
@@ -18,3 +18,90 @@ dev_dependencies:
sdk: flutter
flutter_driver:
sdk: flutter
+
+flutter:
+ uses-material-design: true
+ assets:
+ - lib/gallery/example_code.dart
+ - packages/flutter_gallery_assets/appbar_background.jpg
+ - packages/flutter_gallery_assets/appbar/appbar_background_layer0.png
+ - packages/flutter_gallery_assets/appbar/appbar_background_layer1.png
+ - packages/flutter_gallery_assets/appbar/appbar_background_layer2.png
+ - packages/flutter_gallery_assets/appbar/appbar_background_layer3.png
+ - packages/flutter_gallery_assets/appbar/appbar_background_layer4.png
+ - packages/flutter_gallery_assets/appbar/appbar_background_layer5.png
+ - packages/flutter_gallery_assets/pesto/avatar.jpg
+ - packages/flutter_gallery_assets/pesto/image10.jpg
+ - packages/flutter_gallery_assets/pesto/image11.jpg
+ - packages/flutter_gallery_assets/pesto/image12.jpg
+ - packages/flutter_gallery_assets/pesto/image13.jpg
+ - packages/flutter_gallery_assets/pesto/image1.jpg
+ - packages/flutter_gallery_assets/pesto/image2.jpg
+ - packages/flutter_gallery_assets/pesto/image3.jpg
+ - packages/flutter_gallery_assets/pesto/image4.jpg
+ - packages/flutter_gallery_assets/pesto/image5.jpg
+ - packages/flutter_gallery_assets/pesto/image6.jpg
+ - packages/flutter_gallery_assets/pesto/image7.jpg
+ - packages/flutter_gallery_assets/pesto/image8.jpg
+ - packages/flutter_gallery_assets/pesto/image9.jpg
+ - packages/flutter_gallery_assets/pesto/logo_small.png
+ - packages/flutter_gallery_assets/pesto/logo_medium.png
+ - packages/flutter_gallery_assets/pesto/fish.png
+ - packages/flutter_gallery_assets/pesto/healthy.png
+ - packages/flutter_gallery_assets/pesto/main.png
+ - packages/flutter_gallery_assets/pesto/meat.png
+ - packages/flutter_gallery_assets/pesto/quick.png
+ - packages/flutter_gallery_assets/pesto/spicy.png
+ - packages/flutter_gallery_assets/pesto/veggie.png
+ - packages/flutter_gallery_assets/about_logo.png
+ - packages/flutter_gallery_assets/ali_connors.jpg
+ - packages/flutter_gallery_assets/drawer_logo.png
+ - packages/flutter_gallery_assets/kangaroo_valley_safari.jpg
+ - packages/flutter_gallery_assets/top_10_australian_beaches.jpg
+ - packages/flutter_gallery_assets/landscape_0.jpg
+ - packages/flutter_gallery_assets/landscape_1.jpg
+ - packages/flutter_gallery_assets/landscape_2.jpg
+ - packages/flutter_gallery_assets/landscape_3.jpg
+ - packages/flutter_gallery_assets/landscape_4.jpg
+ - packages/flutter_gallery_assets/landscape_5.jpg
+ - packages/flutter_gallery_assets/landscape_6.jpg
+ - packages/flutter_gallery_assets/landscape_7.jpg
+ - packages/flutter_gallery_assets/landscape_8.jpg
+ - packages/flutter_gallery_assets/landscape_9.jpg
+ - packages/flutter_gallery_assets/landscape_10.jpg
+ - packages/flutter_gallery_assets/landscape_11.jpg
+ - packages/flutter_gallery_assets/shrine/products/backpack.png
+ - packages/flutter_gallery_assets/shrine/products/beachball.png
+ - packages/flutter_gallery_assets/shrine/products/binoculars.png
+ - packages/flutter_gallery_assets/shrine/products/brush.png
+ - packages/flutter_gallery_assets/shrine/products/chair.png
+ - packages/flutter_gallery_assets/shrine/products/chucks.png
+ - packages/flutter_gallery_assets/shrine/products/clock.png
+ - packages/flutter_gallery_assets/shrine/products/fish_bowl.png
+ - packages/flutter_gallery_assets/shrine/products/flippers.png
+ - packages/flutter_gallery_assets/shrine/products/green-shoes.png
+ - packages/flutter_gallery_assets/shrine/products/heels.png
+ - packages/flutter_gallery_assets/shrine/products/helmet.png
+ - packages/flutter_gallery_assets/shrine/products/lawn_chair.png
+ - packages/flutter_gallery_assets/shrine/products/lipstick.png
+ - packages/flutter_gallery_assets/shrine/products/popsicle.png
+ - packages/flutter_gallery_assets/shrine/products/radio.png
+ - packages/flutter_gallery_assets/shrine/products/sunnies.png
+ - packages/flutter_gallery_assets/shrine/products/surfboard.png
+ - packages/flutter_gallery_assets/shrine/products/teapot.png
+ - packages/flutter_gallery_assets/shrine/vendors/16c477b.jpg
+ - packages/flutter_gallery_assets/shrine/vendors/ali-connors.png
+ - packages/flutter_gallery_assets/shrine/vendors/peter-carlsson.png
+ - packages/flutter_gallery_assets/shrine/vendors/sandra-adams.jpg
+ - packages/flutter_gallery_assets/shrine/vendors/zach.jpg
+ fonts:
+ - family: Raleway
+ fonts:
+ - asset: packages/flutter_gallery_assets/pesto/fonts/Raleway-Regular.ttf
+ - asset: packages/flutter_gallery_assets/pesto/fonts/Raleway-Medium.ttf
+ weight: 500
+ - asset: packages/flutter_gallery_assets/pesto/fonts/Raleway-SemiBold.ttf
+ weight: 600
+ - family: AbrilFatface
+ fonts:
+ - asset: packages/flutter_gallery_assets/shrine/fonts/abrilfatface/AbrilFatface-Regular.ttf
diff --git a/examples/hello_world/flutter.yaml b/examples/hello_world/flutter.yaml
deleted file mode 100644
index d668b442c37..00000000000
--- a/examples/hello_world/flutter.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-name: hello_world
-uses-material-design: true
diff --git a/examples/hello_world/pubspec.yaml b/examples/hello_world/pubspec.yaml
index 0588b4ed332..0ece77b9d32 100644
--- a/examples/hello_world/pubspec.yaml
+++ b/examples/hello_world/pubspec.yaml
@@ -7,3 +7,6 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
+
+flutter:
+ uses-material-design: true
diff --git a/examples/layers/flutter.yaml b/examples/layers/flutter.yaml
deleted file mode 100644
index c4d16c77fd3..00000000000
--- a/examples/layers/flutter.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-name: layers-examples
-assets:
- - services/data.json
diff --git a/examples/layers/pubspec.yaml b/examples/layers/pubspec.yaml
index c88f60fac25..0a11561a631 100644
--- a/examples/layers/pubspec.yaml
+++ b/examples/layers/pubspec.yaml
@@ -6,3 +6,7 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
+
+flutter:
+ assets:
+ - services/data.json
diff --git a/examples/stocks/flutter.yaml b/examples/stocks/flutter.yaml
deleted file mode 100644
index c2cedb483b5..00000000000
--- a/examples/stocks/flutter.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-name: stocks
-uses-material-design: true
diff --git a/examples/stocks/pubspec.yaml b/examples/stocks/pubspec.yaml
index 471dad272bb..07fb30f4fa2 100644
--- a/examples/stocks/pubspec.yaml
+++ b/examples/stocks/pubspec.yaml
@@ -9,3 +9,6 @@ dev_dependencies:
sdk: flutter
flutter_driver:
sdk: flutter
+
+flutter:
+ uses-material-design: true
diff --git a/packages/flutter/lib/src/material/icon.dart b/packages/flutter/lib/src/material/icon.dart
index a8ffe5ae30b..a96bbbf0aad 100644
--- a/packages/flutter/lib/src/material/icon.dart
+++ b/packages/flutter/lib/src/material/icon.dart
@@ -21,8 +21,15 @@ import 'theme.dart';
/// Available icons are shown on this page:
///
/// To use this class, make sure you set `uses-material-design: true` in your
-/// project's `flutter.yaml` file. This ensures that the MaterialIcons font is
-/// included in your application. This font is used to display the icons.
+/// project's `pubspec.yaml` file in the `flutter` section. This ensures that
+/// the MaterialIcons font is included in your application. This font is used to
+/// display the icons. For example:
+///
+/// ```yaml
+/// name: my_awesome_application
+/// flutter:
+/// uses-material-design: true
+/// ```
///
/// See also:
///
diff --git a/packages/flutter/lib/src/services/asset_bundle.dart b/packages/flutter/lib/src/services/asset_bundle.dart
index b35553015bc..46e3a8634a6 100644
--- a/packages/flutter/lib/src/services/asset_bundle.dart
+++ b/packages/flutter/lib/src/services/asset_bundle.dart
@@ -21,8 +21,18 @@ import 'platform_messages.dart';
///
/// Applications have a [rootBundle], which contains the resources that were
/// packaged with the application when it was built. To add resources to the
-/// [rootBundle] for your application, add them to the `assets` section of your
-/// `flutter.yaml` manifest.
+/// [rootBundle] for your application, add them to the `assets` subsection of
+/// the `flutter` section of your application's `pubspec.yaml` manifest.
+///
+/// For example:
+///
+/// ```yaml
+/// name: my_awesome_application
+/// flutter:
+/// assets:
+/// - images/hamilton.jpeg
+/// - images/lafayette.jpeg
+/// ```
///
/// Rather than accessing the [rootBundle] global static directly, consider
/// obtaining the [AssetBundle] for the current [BuildContext] using
@@ -202,8 +212,18 @@ AssetBundle _initRootBundle() {
///
/// The [rootBundle] contains the resources that were packaged with the
/// application when it was built. To add resources to the [rootBundle] for your
-/// application, add them to the `assets` section of your `flutter.yaml`
-/// manifest.
+/// application, add them to the `assets` subsection of the `flutter` section of
+/// your application's `pubspec.yaml` manifest.
+///
+/// For example:
+///
+/// ```yaml
+/// name: my_awesome_application
+/// flutter:
+/// assets:
+/// - images/hamilton.jpeg
+/// - images/lafayette.jpeg
+/// ```
///
/// Rather than using [rootBundle] directly, consider obtaining the
/// [AssetBundle] for the current [BuildContext] using [DefaultAssetBundle.of].
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
index 1ccb438c6d9..fd141e0f05e 100644
--- a/packages/flutter_tools/lib/src/asset.dart
+++ b/packages/flutter_tools/lib/src/asset.dart
@@ -20,7 +20,7 @@ import 'globals.dart';
class AssetBundle {
final Map entries = {};
- static const String defaultManifestPath = 'flutter.yaml';
+ static const String defaultManifestPath = 'pubspec.yaml';
static const String _kAssetManifestJson = 'AssetManifest.json';
static const String _kFontManifestJson = 'FontManifest.json';
static const String _kFontSetMaterial = 'material';
@@ -31,7 +31,7 @@ class AssetBundle {
DateTime _lastBuildTimestamp;
/// Constructs an [AssetBundle] that gathers the set of assets from the
- /// flutter.yaml manifest.
+ /// pubspec.yaml manifest.
AssetBundle();
/// Constructs an [AssetBundle] with a fixed set of assets.
@@ -77,9 +77,9 @@ class AssetBundle {
packagesPath ??= path.absolute(PackageMap.globalPackagesPath);
Object manifest;
try {
- manifest = _loadFlutterYamlManifest(manifestPath);
+ manifest = _loadFlutterManifest(manifestPath);
} catch (e) {
- printStatus('Error detected in flutter.yaml:', emphasis: true);
+ printStatus('Error detected in pubspec.yaml:', emphasis: true);
printError(e);
return 1;
}
@@ -89,12 +89,12 @@ class AssetBundle {
return 0;
}
if (manifest != null) {
- int result = await _validateFlutterYamlManifest(manifest);
+ int result = await _validateFlutterManifest(manifest);
if (result != 0)
return result;
}
Map manifestDescriptor = manifest;
- assert(manifestDescriptor != null);
+ manifestDescriptor = manifestDescriptor['flutter'] ?? {};
String assetBasePath = path.dirname(path.absolute(manifestPath));
_lastBuildTimestamp = new DateTime.now();
@@ -112,6 +112,7 @@ class AssetBundle {
return 1;
final bool usesMaterialDesign = (manifestDescriptor != null) &&
+ manifestDescriptor.containsKey('uses-material-design') &&
manifestDescriptor['uses-material-design'];
for (_Asset asset in assetVariants.keys) {
@@ -321,8 +322,8 @@ DevFSContent _createFontManifest(Map manifestDescriptor,
return new DevFSStringContent(JSON.encode(fonts));
}
-/// Given an assetBase location and a flutter.yaml manifest, return a map of
-/// assets to asset variants.
+/// Given an assetBase location and a pubspec.yaml Flutter manifest, return a
+/// map of assets to asset variants.
///
/// Returns `null` on missing assets.
Map<_Asset, List<_Asset>> _parseAssets(
@@ -344,7 +345,7 @@ Map<_Asset, List<_Asset>> _parseAssets(
_Asset baseAsset = _resolveAsset(packageMap, assetBase, asset);
if (!baseAsset.assetFileExists) {
- printError('Error: unable to locate asset entry in flutter.yaml: "$asset".');
+ printError('Error: unable to locate asset entry in pubspec.yaml: "$asset".');
return null;
}
@@ -389,7 +390,7 @@ Map<_Asset, List<_Asset>> _parseAssets(
_Asset baseAsset = _resolveAsset(packageMap, assetBase, asset);
if (!baseAsset.assetFileExists) {
- printError('Error: unable to locate asset entry in flutter.yaml: "$asset".');
+ printError('Error: unable to locate asset entry in pubspec.yaml: "$asset".');
return null;
}
@@ -427,23 +428,23 @@ _Asset _resolveAsset(
return new _Asset(base: assetBase, relativePath: asset);
}
-dynamic _loadFlutterYamlManifest(String manifestPath) {
+dynamic _loadFlutterManifest(String manifestPath) {
if (manifestPath == null || !fs.isFileSync(manifestPath))
return null;
String manifestDescriptor = fs.file(manifestPath).readAsStringSync();
return loadYaml(manifestDescriptor);
}
-Future _validateFlutterYamlManifest(Object manifest) async {
+Future _validateFlutterManifest(Object manifest) async {
String schemaPath = path.join(path.absolute(Cache.flutterRoot),
- 'packages', 'flutter_tools', 'schema', 'flutter_yaml.json');
+ 'packages', 'flutter_tools', 'schema', 'pubspec_yaml.json');
Schema schema = await Schema.createSchemaFromUrl('file://$schemaPath');
Validator validator = new Validator(schema);
if (validator.validate(manifest)) {
return 0;
} else {
- printStatus('Error detected in flutter.yaml:', emphasis: true);
+ printStatus('Error detected in pubspec.yaml:', emphasis: true);
printError(validator.errors.join('\n'));
return 1;
}
diff --git a/packages/flutter_tools/lib/src/commands/build_apk.dart b/packages/flutter_tools/lib/src/commands/build_apk.dart
index 5ba6a5f10fa..f6395d55898 100644
--- a/packages/flutter_tools/lib/src/commands/build_apk.dart
+++ b/packages/flutter_tools/lib/src/commands/build_apk.dart
@@ -29,7 +29,7 @@ const String _kDefaultAndroidManifestPath = 'android/AndroidManifest.xml';
const String _kDefaultResourcesPath = 'android/res';
const String _kDefaultAssetsPath = 'android/assets';
-const String _kFlutterManifestPath = 'flutter.yaml';
+const String _kFlutterManifestPath = 'pubspec.yaml';
const String _kPackagesStatusPath = '.packages';
// Alias of the key provided in the Chromium debug keystore
diff --git a/packages/flutter_tools/lib/src/flx.dart b/packages/flutter_tools/lib/src/flx.dart
index 7cd8ff69a07..9c4f22f11bf 100644
--- a/packages/flutter_tools/lib/src/flx.dart
+++ b/packages/flutter_tools/lib/src/flx.dart
@@ -19,7 +19,7 @@ import 'zip.dart';
const String defaultMainPath = 'lib/main.dart';
const String defaultAssetBasePath = '.';
-const String defaultManifestPath = 'flutter.yaml';
+const String defaultManifestPath = 'pubspec.yaml';
String get defaultFlxOutputPath => path.join(getBuildDirectory(), 'app.flx');
String get defaultSnapshotPath => path.join(getBuildDirectory(), 'snapshot_blob.bin');
String get defaultDepfilePath => path.join(getBuildDirectory(), 'snapshot_blob.bin.d');
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart
index 37c5eeb5f9d..7c39287881f 100644
--- a/packages/flutter_tools/lib/src/runner/flutter_command.dart
+++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart
@@ -208,9 +208,28 @@ abstract class FlutterCommand extends Command {
if (!PackageMap.isUsingCustomPackagesPath) {
// Don't expect a pubspec.yaml file if the user passed in an explicit .packages file path.
if (!fs.isFileSync('pubspec.yaml')) {
- throw new ToolExit('Error: No pubspec.yaml file found.\n'
+ throw new ToolExit(
+ 'Error: No pubspec.yaml file found.\n'
'This command should be run from the root of your Flutter project.\n'
- 'Do not run this command from the root of your git clone of Flutter.');
+ 'Do not run this command from the root of your git clone of Flutter.'
+ );
+ }
+ if (fs.isFileSync('flutter.yaml')) {
+ throw new ToolExit(
+ 'Please merge your flutter.yaml into your pubspec.yaml.\n\n'
+ 'We have changed from having separate flutter.yaml and pubspec.yaml\n'
+ 'files to having just one pubspec.yaml file. Transitioning is simple:\n'
+ 'add a line that just says "flutter:" to your pubspec.yaml file, and\n'
+ 'move everything from your current flutter.yaml file into the\n'
+ 'pubspec.yaml file, below that line, with everything indented by two\n'
+ 'extra spaces compared to how it was in the flutter.yaml file. Then, if\n'
+ 'you had a "name:" line, move that to the top of your "pubspec.yaml"\n'
+ 'file (you may already have one there), so that there is only one\n'
+ '"name:" line. Finally, delete the flutter.yaml file.\n\n'
+ 'For an example of what a new-style pubspec.yaml file might look like,\n'
+ 'check out the Flutter Gallery pubspec.yaml:\n'
+ 'https://github.com/flutter/flutter/blob/master/examples/flutter_gallery/pubspec.yaml\n'
+ );
}
}
diff --git a/packages/flutter_tools/lib/src/services.dart b/packages/flutter_tools/lib/src/services.dart
index fe208464f42..af3e6cc7269 100644
--- a/packages/flutter_tools/lib/src/services.dart
+++ b/packages/flutter_tools/lib/src/services.dart
@@ -13,7 +13,7 @@ import 'dart/package_map.dart';
import 'android/android_sdk.dart';
import 'globals.dart';
-const String _kFlutterManifestPath = 'flutter.yaml';
+const String _kFlutterManifestPath = 'pubspec.yaml';
const String _kFlutterServicesManifestPath = 'flutter_services.yaml';
dynamic _loadYamlFile(String path) {
@@ -24,7 +24,7 @@ dynamic _loadYamlFile(String path) {
return loadYaml(manifestString);
}
-/// Loads all services specified in `flutter.yaml`. Parses each service config file,
+/// Loads all services specified in `pubspec.yaml`. Parses each service config file,
/// storing meta data in [services] and the list of jar files in [jars].
Future parseServiceConfigs(
List