diff --git a/dev/bots/docs.sh b/dev/bots/docs.sh index 0d910dd05f0..6932f0f1925 100755 --- a/dev/bots/docs.sh +++ b/dev/bots/docs.sh @@ -2,15 +2,35 @@ set -e # Install dartdoc. -# Versions after 0.9.7+1 suffer from https://github.com/dart-lang/dartdoc/issues/1236 -# so are we pinned to this old version until that bug is fixed. -pub global activate dartdoc 0.9.7+1 +pub global activate dartdoc 0.9.9 # This script generates a unified doc set, and creates # a custom index.html, placing everything into dev/docs/doc (cd dev/tools; pub get) FLUTTER_ROOT=$PWD dart dev/tools/dartdoc.dart +# Smoke test the docs to make sure we have all the major kinds of things. + +if [[ ! -f dev/docs/doc/flutter/widgets/Widget/Widget.html ]]; then + echo 'Failed to find documentation for Widget class. Are the docs complete?' + exit 1 +fi + +if [[ ! -f dev/docs/doc/flutter/dart-io/File/File.html ]]; then + echo 'Failed to find documentation for File class. Are the docs complete?' + exit 1 +fi + +if [[ ! -f dev/docs/doc/flutter/dart-ui/Canvas/drawRect.html ]]; then + echo 'Failed to find documentation for Canvas.drawRect. Are the docs complete?' + exit 1 +fi + +if [[ ! -f dev/docs/doc/flutter/flutter_test/WidgetTester/pumpWidget.html ]]; then + echo 'Failed to find documentation for WidgetTester.pumpWidget. Are the docs complete?' + exit 1 +fi + # Ensure google webmaster tools can verify our site. cp dev/docs/google2ed1af765c529f57.html dev/docs/doc diff --git a/dev/tools/dartdoc.dart b/dev/tools/dartdoc.dart index eb27f80d613..d92b40c0cef 100644 --- a/dev/tools/dartdoc.dart +++ b/dev/tools/dartdoc.dart @@ -62,16 +62,14 @@ dependencies: 'global', 'run', 'dartdoc', '--header', 'styles.html', '--header', 'analytics.html', - '--dart-sdk', '../../bin/cache/dart-sdk', '--exclude', 'temp_doc', '--favicon=favicon.ico', '--use-categories' ]; - for (String libraryRef in libraryRefs()) { - String name = path.basename(libraryRef); + for (String libraryRef in libraryRefs(diskPath: true)) { args.add('--include-external'); - args.add(name.substring(0, name.length - 5)); + args.add(libraryRef); } process = await Process.start('pub', args, workingDirectory: 'dev/docs'); @@ -145,6 +143,7 @@ List findPackageNames() { return findPackages().map((Directory dir) => path.basename(dir.path)).toList(); } +/// Finds all packages in the Flutter SDK List findPackages() { return new Directory('packages') .listSync() @@ -158,12 +157,19 @@ List findPackages() { .toList(); } -Iterable libraryRefs() sync* { +/// Returns import or on-disk paths for all libraries in the Flutter SDK. +/// +/// diskPath toggles between import paths vs. disk paths. +Iterable libraryRefs({ bool diskPath: false }) sync* { for (Directory dir in findPackages()) { String dirName = path.basename(dir.path); for (FileSystemEntity file in new Directory('${dir.path}/lib').listSync()) { - if (file is File && file.path.endsWith('.dart')) - yield '$dirName/${path.basename(file.path)}'; + if (file is File && file.path.endsWith('.dart')) { + if (diskPath) + yield '$dirName/lib/${path.basename(file.path)}'; + else + yield '$dirName/${path.basename(file.path)}'; + } } } }