diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 000000000000..6d17b0daf267 --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,55 @@ +task: + container: + image: cirrusci/flutter:latest + cpu: 4 + memory: 8G + upgrade_script: + - flutter channel master + - flutter upgrade + - git fetch origin master + activate_script: pub global activate flutter_plugin_tools + matrix: + - name: publishable + script: ./script/check_publish.sh + - name: test+format + install_script: + - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + - sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main" + - sudo apt-get update + - sudo apt-get install -y --allow-unauthenticated clang-format-5.0 + format_script: ./script/incremental_build.sh format --travis --clang-format=clang-format-5.0 + test_script: ./script/incremental_build.sh test + - name: analyze + script: ./script/incremental_build.sh analyze + - name: build-apks+java-test + env: + matrix: + BUILD_SHARDING: "--shardIndex 0 --shardCount 2" + BUILD_SHARDING: "--shardIndex 1 --shardCount 2" + script: + - ./script/incremental_build.sh build-examples --apk + - ./script/incremental_build.sh java-test # must come after apk build + +task: + name: build-ipas + osx_instance: + image: high-sierra-xcode-9.4 + env: + PATH: $PATH:/usr/local/bin + matrix: + BUILD_SHARDING: "--shardIndex 0 --shardCount 2" + BUILD_SHARDING: "--shardIndex 1 --shardCount 2" + setup_script: + - brew update + - brew install libimobiledevice + - brew install ideviceinstaller + - brew install ios-deploy + - pod repo update + - git clone https://github.com/flutter/flutter.git + - git fetch origin master + - export PATH=`pwd`/flutter/bin:`pwd`/flutter/bin/cache/dart-sdk/bin:$PATH + - flutter doctor + - pub global activate flutter_plugin_tools + build_script: + - export PATH=`pwd`/flutter/bin:`pwd`/flutter/bin/cache/dart-sdk/bin:$PATH + - ./script/incremental_build.sh build-examples --ipa diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 83d8345a8538..000000000000 --- a/.travis.yml +++ /dev/null @@ -1,112 +0,0 @@ -matrix: - include: - # Job 1) Run analyzer - - os: linux - env: - - SHARD=Analyze - sudo: false - addons: - apt: - # Flutter depends on /usr/lib/x86_64-linux-gnu/libstdc++.so.6 version GLIBCXX_3.4.18 - sources: - - ubuntu-toolchain-r-test # if we don't specify this, the libstdc++6 we get is the wrong version - packages: - - libstdc++6 - - fonts-droid - before_script: - - git clone https://github.com/flutter/flutter.git - - export PATH=`pwd`/flutter/bin:`pwd`/flutter/bin/cache/dart-sdk/bin:$PATH - - flutter doctor - - pub global activate flutter_plugin_tools - script: - - ./script/plugin_tools.sh analyze - # Job 2) Check format and run tests - - os: linux - env: - - SHARD=Format+Test - jdk: oraclejdk8 - sudo: false - addons: - apt: - # Flutter depends on /usr/lib/x86_64-linux-gnu/libstdc++.so.6 version GLIBCXX_3.4.18 - sources: - - ubuntu-toolchain-r-test # if we don't specify this, the libstdc++6 we get is the wrong version - - llvm-toolchain-precise # for clang-format-5.0 - packages: - - libstdc++6 - - fonts-droid - before_script: - - git clone https://github.com/flutter/flutter.git - - export PATH=`pwd`/flutter/bin:`pwd`/flutter/bin/cache/dart-sdk/bin:$PATH - - flutter doctor - - pub global activate flutter_plugin_tools - script: - - flutter format `pwd`/packages - - ./script/plugin_tools.sh test - # Job 3) Build example APKs and run Java tests - - os: linux - env: - - SHARD=Build-example-APKs+Java-Tests - jdk: oraclejdk8 - sudo: false - addons: - apt: - # Flutter depends on /usr/lib/x86_64-linux-gnu/libstdc++.so.6 version GLIBCXX_3.4.18 - sources: - - ubuntu-toolchain-r-test # if we don't specify this, the libstdc++6 we get is the wrong version - packages: - - lib32stdc++6 # https://github.com/flutter/flutter/issues/6207 - - libstdc++6 - - fonts-droid - before_script: - - wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip - - mkdir android-sdk - - unzip -qq sdk-tools-linux-3859397.zip -d android-sdk - - export ANDROID_HOME=`pwd`/android-sdk - - export PATH=`pwd`/android-sdk/tools/bin:$PATH - - mkdir -p /home/travis/.android # silence sdkmanager warning - - echo 'count=0' > /home/travis/.android/repositories.cfg # silence sdkmanager warning - # suppressing output of sdkmanager to keep log under 4MB (travis limit) - - echo y | sdkmanager "tools" >/dev/null - - echo y | sdkmanager "platform-tools" >/dev/null - - echo y | sdkmanager "build-tools;26.0.3" >/dev/null - - echo y | sdkmanager "platforms;android-26" >/dev/null - - echo y | sdkmanager "extras;android;m2repository" >/dev/null - - echo y | sdkmanager "extras;google;m2repository" >/dev/null - - echo y | sdkmanager "patcher;v4" >/dev/null - - sdkmanager --list - - wget http://services.gradle.org/distributions/gradle-4.1-bin.zip - - unzip -qq gradle-4.1-bin.zip - - export GRADLE_HOME=$PWD/gradle-4.1 - - export PATH=$GRADLE_HOME/bin:$PATH - - gradle -v - - git clone https://github.com/flutter/flutter.git - - export PATH=`pwd`/flutter/bin:`pwd`/flutter/bin/cache/dart-sdk/bin:$PATH - - flutter doctor - - pub global activate flutter_plugin_tools - script: - - ./script/plugin_tools.sh build-examples --apk - - ./script/plugin_tools.sh java-test # must come after apk build - # Job 4) Build example IPAs - - os: osx - env: - - SHARD=Build-example-IPAs - language: generic - osx_image: xcode9.3 - before_script: - - brew update - - brew install libimobiledevice - - brew install ideviceinstaller - - brew install ios-deploy - - pod repo update - - gem update cocoapods - - git clone https://github.com/flutter/flutter.git - - export PATH=`pwd`/flutter/bin:`pwd`/flutter/bin/cache/dart-sdk/bin:$PATH - - flutter doctor - - pub global activate flutter_plugin_tools - script: - - ./script/plugin_tools.sh build-examples --ipa - -cache: - directories: - - $HOME/.pub-cache diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c837111f5848..c94643b08ae0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,7 @@ Contributing to Flutter ======================= -[![Build Status](https://travis-ci.org/flutter/packages.svg)](https://travis-ci.org/flutter/packages) +[![Build Status](https://api.cirrus-ci.com/github/flutter/packages.svg)](https://cirrus-ci.com/github/flutter/packages) _See also: [Flutter's code of conduct](https://flutter.io/design-principles/#code-of-conduct)_ @@ -37,7 +37,7 @@ example's directory, run `flutter packages get` to make sure its dependencies ha downloaded, and use `flutter run`. Make sure you have a device connected over USB and debugging enabled on that device. For example: - * `cd packages/palette_generator/example/image_colors` + * `cd packages/palette_generator/example` * `flutter packages get` * `flutter run` @@ -64,6 +64,12 @@ pub global run flutter_plugin_tools format --plugins package_name pub global run flutter_plugin_tools analyze --plugins package_name pub global run flutter_plugin_tools test --plugins package_name ``` + * Check that the package can be published (but don't publish it until it has landed!): + +``` +cd packages/package_name; pub publish --dry-run +``` + * `git commit -a -m ""` * `git push origin ` diff --git a/README.md b/README.md index 53af8f16ebe8..64a5bf26a5a5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # Flutter Packages -[![Build Status](https://travis-ci.org/flutter/packages.svg?branch=master)](https://travis-ci.org/flutter/packages) -[![Build Status](https://api.cirrus-ci.com/github/flutter/packages.svg)](https://cirrus-ci.com/github/flutter/packages) +[![Build Status](https://api.cirrus-ci.com/github/flutter/packages.svg)](https://cirrus-ci.com/github/flutter/packages/master) This repo is a companion repo to the main [flutter repo]( https://github.com/flutter/flutter). It contains the source code for Flutter's diff --git a/packages/palette_generator/README.md b/packages/palette_generator/README.md index a1bf087a1002..5fb025dcf982 100644 --- a/packages/palette_generator/README.md +++ b/packages/palette_generator/README.md @@ -18,4 +18,4 @@ import 'package:palette_generator/palette_generator.dart'; ``` Then use the `PaletteGenerator` Dart class in your code. To see how this is done, -check out the [image_colors example app](example/image_colors/README.md). +check out the [image_colors example app](example/README.md). diff --git a/packages/palette_generator/example/image_colors/.gitignore b/packages/palette_generator/example/.gitignore similarity index 100% rename from packages/palette_generator/example/image_colors/.gitignore rename to packages/palette_generator/example/.gitignore diff --git a/packages/palette_generator/example/image_colors/.metadata b/packages/palette_generator/example/.metadata similarity index 100% rename from packages/palette_generator/example/image_colors/.metadata rename to packages/palette_generator/example/.metadata diff --git a/packages/palette_generator/example/image_colors/README.md b/packages/palette_generator/example/README.md similarity index 100% rename from packages/palette_generator/example/image_colors/README.md rename to packages/palette_generator/example/README.md diff --git a/packages/palette_generator/example/image_colors/android/.gitignore b/packages/palette_generator/example/android/.gitignore similarity index 100% rename from packages/palette_generator/example/image_colors/android/.gitignore rename to packages/palette_generator/example/android/.gitignore diff --git a/packages/palette_generator/example/image_colors/android/app/build.gradle b/packages/palette_generator/example/android/app/build.gradle similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/build.gradle rename to packages/palette_generator/example/android/app/build.gradle diff --git a/packages/palette_generator/example/image_colors/android/app/src/main/AndroidManifest.xml b/packages/palette_generator/example/android/app/src/main/AndroidManifest.xml similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/src/main/AndroidManifest.xml rename to packages/palette_generator/example/android/app/src/main/AndroidManifest.xml diff --git a/packages/palette_generator/example/image_colors/android/app/src/main/java/io/flutter/packages/palettegenerator/imagecolors/MainActivity.java b/packages/palette_generator/example/android/app/src/main/java/io/flutter/packages/palettegenerator/imagecolors/MainActivity.java similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/src/main/java/io/flutter/packages/palettegenerator/imagecolors/MainActivity.java rename to packages/palette_generator/example/android/app/src/main/java/io/flutter/packages/palettegenerator/imagecolors/MainActivity.java diff --git a/packages/palette_generator/example/image_colors/android/app/src/main/res/drawable/launch_background.xml b/packages/palette_generator/example/android/app/src/main/res/drawable/launch_background.xml similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/src/main/res/drawable/launch_background.xml rename to packages/palette_generator/example/android/app/src/main/res/drawable/launch_background.xml diff --git a/packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/palette_generator/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to packages/palette_generator/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/palette_generator/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to packages/palette_generator/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/palette_generator/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to packages/palette_generator/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/palette_generator/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to packages/palette_generator/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/palette_generator/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to packages/palette_generator/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/packages/palette_generator/example/image_colors/android/app/src/main/res/values/styles.xml b/packages/palette_generator/example/android/app/src/main/res/values/styles.xml similarity index 100% rename from packages/palette_generator/example/image_colors/android/app/src/main/res/values/styles.xml rename to packages/palette_generator/example/android/app/src/main/res/values/styles.xml diff --git a/packages/palette_generator/example/image_colors/android/build.gradle b/packages/palette_generator/example/android/build.gradle similarity index 100% rename from packages/palette_generator/example/image_colors/android/build.gradle rename to packages/palette_generator/example/android/build.gradle diff --git a/packages/palette_generator/example/image_colors/android/gradle.properties b/packages/palette_generator/example/android/gradle.properties similarity index 100% rename from packages/palette_generator/example/image_colors/android/gradle.properties rename to packages/palette_generator/example/android/gradle.properties diff --git a/packages/palette_generator/example/image_colors/android/gradle/wrapper/gradle-wrapper.jar b/packages/palette_generator/example/android/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from packages/palette_generator/example/image_colors/android/gradle/wrapper/gradle-wrapper.jar rename to packages/palette_generator/example/android/gradle/wrapper/gradle-wrapper.jar diff --git a/packages/palette_generator/example/image_colors/android/gradle/wrapper/gradle-wrapper.properties b/packages/palette_generator/example/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from packages/palette_generator/example/image_colors/android/gradle/wrapper/gradle-wrapper.properties rename to packages/palette_generator/example/android/gradle/wrapper/gradle-wrapper.properties diff --git a/packages/palette_generator/example/image_colors/android/gradlew b/packages/palette_generator/example/android/gradlew similarity index 100% rename from packages/palette_generator/example/image_colors/android/gradlew rename to packages/palette_generator/example/android/gradlew diff --git a/packages/palette_generator/example/image_colors/android/gradlew.bat b/packages/palette_generator/example/android/gradlew.bat similarity index 100% rename from packages/palette_generator/example/image_colors/android/gradlew.bat rename to packages/palette_generator/example/android/gradlew.bat diff --git a/packages/palette_generator/example/image_colors/android/settings.gradle b/packages/palette_generator/example/android/settings.gradle similarity index 100% rename from packages/palette_generator/example/image_colors/android/settings.gradle rename to packages/palette_generator/example/android/settings.gradle diff --git a/packages/palette_generator/example/image_colors/assets/landscape.png b/packages/palette_generator/example/assets/landscape.png similarity index 100% rename from packages/palette_generator/example/image_colors/assets/landscape.png rename to packages/palette_generator/example/assets/landscape.png diff --git a/packages/palette_generator/example/image_colors/ios/.gitignore b/packages/palette_generator/example/ios/.gitignore similarity index 100% rename from packages/palette_generator/example/image_colors/ios/.gitignore rename to packages/palette_generator/example/ios/.gitignore diff --git a/packages/palette_generator/example/image_colors/ios/Flutter/AppFrameworkInfo.plist b/packages/palette_generator/example/ios/Flutter/AppFrameworkInfo.plist similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Flutter/AppFrameworkInfo.plist rename to packages/palette_generator/example/ios/Flutter/AppFrameworkInfo.plist diff --git a/packages/palette_generator/example/image_colors/ios/Flutter/Debug.xcconfig b/packages/palette_generator/example/ios/Flutter/Debug.xcconfig similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Flutter/Debug.xcconfig rename to packages/palette_generator/example/ios/Flutter/Debug.xcconfig diff --git a/packages/palette_generator/example/image_colors/ios/Flutter/Release.xcconfig b/packages/palette_generator/example/ios/Flutter/Release.xcconfig similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Flutter/Release.xcconfig rename to packages/palette_generator/example/ios/Flutter/Release.xcconfig diff --git a/packages/palette_generator/example/image_colors/ios/Runner.xcodeproj/project.pbxproj b/packages/palette_generator/example/ios/Runner.xcodeproj/project.pbxproj similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner.xcodeproj/project.pbxproj rename to packages/palette_generator/example/ios/Runner.xcodeproj/project.pbxproj diff --git a/packages/palette_generator/example/image_colors/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/palette_generator/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to packages/palette_generator/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/packages/palette_generator/example/image_colors/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/palette_generator/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme rename to packages/palette_generator/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/packages/palette_generator/example/image_colors/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/palette_generator/example/ios/Runner.xcworkspace/contents.xcworkspacedata similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner.xcworkspace/contents.xcworkspacedata rename to packages/palette_generator/example/ios/Runner.xcworkspace/contents.xcworkspacedata diff --git a/packages/palette_generator/example/image_colors/ios/Runner/AppDelegate.h b/packages/palette_generator/example/ios/Runner/AppDelegate.h similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/AppDelegate.h rename to packages/palette_generator/example/ios/Runner/AppDelegate.h diff --git a/packages/palette_generator/example/image_colors/ios/Runner/AppDelegate.m b/packages/palette_generator/example/ios/Runner/AppDelegate.m similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/AppDelegate.m rename to packages/palette_generator/example/ios/Runner/AppDelegate.m diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md rename to packages/palette_generator/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/palette_generator/example/ios/Runner/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Base.lproj/LaunchScreen.storyboard rename to packages/palette_generator/example/ios/Runner/Base.lproj/LaunchScreen.storyboard diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Base.lproj/Main.storyboard b/packages/palette_generator/example/ios/Runner/Base.lproj/Main.storyboard similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Base.lproj/Main.storyboard rename to packages/palette_generator/example/ios/Runner/Base.lproj/Main.storyboard diff --git a/packages/palette_generator/example/image_colors/ios/Runner/Info.plist b/packages/palette_generator/example/ios/Runner/Info.plist similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/Info.plist rename to packages/palette_generator/example/ios/Runner/Info.plist diff --git a/packages/palette_generator/example/image_colors/ios/Runner/main.m b/packages/palette_generator/example/ios/Runner/main.m similarity index 100% rename from packages/palette_generator/example/image_colors/ios/Runner/main.m rename to packages/palette_generator/example/ios/Runner/main.m diff --git a/packages/palette_generator/example/image_colors/lib/main.dart b/packages/palette_generator/example/lib/main.dart similarity index 99% rename from packages/palette_generator/example/image_colors/lib/main.dart rename to packages/palette_generator/example/lib/main.dart index c1ed3e081b5a..0c90334380ad 100644 --- a/packages/palette_generator/example/image_colors/lib/main.dart +++ b/packages/palette_generator/example/lib/main.dart @@ -302,4 +302,3 @@ class PaletteSwatch extends StatelessWidget { return swatch; } } - diff --git a/packages/palette_generator/example/image_colors/pubspec.yaml b/packages/palette_generator/example/pubspec.yaml similarity index 95% rename from packages/palette_generator/example/image_colors/pubspec.yaml rename to packages/palette_generator/example/pubspec.yaml index 8f1eee305593..e7a0e3e3ce37 100644 --- a/packages/palette_generator/example/image_colors/pubspec.yaml +++ b/packages/palette_generator/example/pubspec.yaml @@ -7,7 +7,7 @@ dependencies: flutter: sdk: flutter palette_generator: - path: ../.. + path: .. cupertino_icons: ^0.1.2 dev_dependencies: diff --git a/packages/palette_generator/palette_generator.iml b/packages/palette_generator/palette_generator.iml index b5426556b10f..c9ef74cfcdfc 100644 --- a/packages/palette_generator/palette_generator.iml +++ b/packages/palette_generator/palette_generator.iml @@ -6,13 +6,10 @@ - - - - - - - + + + + diff --git a/packages/palette_generator/pubspec.yaml b/packages/palette_generator/pubspec.yaml index 81234d140b50..400baac57831 100644 --- a/packages/palette_generator/pubspec.yaml +++ b/packages/palette_generator/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: path: ^1.6.1 dev_dependencies: - mockito: ^2.2.3 + mockito: ^3.0.0 flutter_test: sdk: flutter diff --git a/packages/palette_generator/test/palette_generator_test.dart b/packages/palette_generator/test/palette_generator_test.dart index c777b0195950..54d3ded22be4 100644 --- a/packages/palette_generator/test/palette_generator_test.dart +++ b/packages/palette_generator/test/palette_generator_test.dart @@ -65,7 +65,7 @@ void main() async { testImages[name] = await loadImage('$name.png'); } - testWidgets('Initialize the image cache', (WidgetTester tester) { + testWidgets('Initialize the image cache', (WidgetTester tester) async { // We need to have a testWidgets test in order to initialize the image // cache for the other tests, but they timeout if they too are testWidgets // tests. @@ -104,8 +104,10 @@ void main() async { final ImageProvider imageProvider = testImages['dominant']; Rect region = new Rect.fromLTRB(0.0, 0.0, 100.0, 100.0); const Size size = const Size(100.0, 100.0); - PaletteGenerator palette = await PaletteGenerator.fromImageProvider(imageProvider, - region: region, size: size); + PaletteGenerator palette = await PaletteGenerator.fromImageProvider( + imageProvider, + region: region, + size: size); expect(palette.paletteColors.length, equals(3)); expect(palette.dominantColor.color, within(distance: 8, from: const Color(0xff0000ff))); @@ -167,14 +169,15 @@ void main() async { test('PaletteGenerator limits max colors', () async { final ImageProvider imageProvider = testImages['landscape']; - PaletteGenerator palette = - await PaletteGenerator.fromImageProvider(imageProvider, maximumColorCount: 32); + PaletteGenerator palette = await PaletteGenerator.fromImageProvider( + imageProvider, + maximumColorCount: 32); expect(palette.paletteColors.length, equals(31)); - palette = - await PaletteGenerator.fromImageProvider(imageProvider, maximumColorCount: 1); + palette = await PaletteGenerator.fromImageProvider(imageProvider, + maximumColorCount: 1); expect(palette.paletteColors.length, equals(1)); - palette = - await PaletteGenerator.fromImageProvider(imageProvider, maximumColorCount: 15); + palette = await PaletteGenerator.fromImageProvider(imageProvider, + maximumColorCount: 15); expect(palette.paletteColors.length, equals(15)); }); @@ -184,8 +187,9 @@ void main() async { List filters = [ avoidRedBlackWhitePaletteFilter ]; - PaletteGenerator palette = - await PaletteGenerator.fromImageProvider(imageProvider, filters: filters); + PaletteGenerator palette = await PaletteGenerator.fromImageProvider( + imageProvider, + filters: filters); final List expectedSwatches = [ new PaletteColor(const Color(0xff3f630c), 10137), new PaletteColor(const Color(0xff3c4b2a), 4773), @@ -213,7 +217,8 @@ void main() async { // A non-default filter works (and the default filter isn't applied too). filters = [onlyBluePaletteFilter]; - palette = await PaletteGenerator.fromImageProvider(imageProvider, filters: filters); + palette = await PaletteGenerator.fromImageProvider(imageProvider, + filters: filters); final List blueSwatches = [ new PaletteColor(const Color(0xff4c5c75), 1515), new PaletteColor(const Color(0xff7483a1), 1505), @@ -242,7 +247,8 @@ void main() async { // More than one filter is the intersection of the two filters. filters = [onlyBluePaletteFilter, onlyCyanPaletteFilter]; - palette = await PaletteGenerator.fromImageProvider(imageProvider, filters: filters); + palette = await PaletteGenerator.fromImageProvider(imageProvider, + filters: filters); final List blueGreenSwatches = [ new PaletteColor(const Color(0xffc8e8f8), 87), new PaletteColor(const Color(0xff5c6c74), 73), @@ -271,7 +277,8 @@ void main() async { // Mutually exclusive filters return an empty palette. filters = [onlyBluePaletteFilter, onlyGreenPaletteFilter]; - palette = await PaletteGenerator.fromImageProvider(imageProvider, filters: filters); + palette = await PaletteGenerator.fromImageProvider(imageProvider, + filters: filters); expect(palette.paletteColors, isEmpty); expect(palette.dominantColor, isNull); expect(palette.colors, isEmpty); @@ -281,7 +288,8 @@ void main() async { final ImageProvider imageProvider = testImages['landscape']; // Passing an empty set of targets works the same as passing a null targets // list. - PaletteGenerator palette = await PaletteGenerator.fromImageProvider(imageProvider, + PaletteGenerator palette = await PaletteGenerator.fromImageProvider( + imageProvider, targets: []); expect(palette.selectedSwatches, isNotEmpty); expect(palette.vibrantColor, isNotNull); diff --git a/script/check_publish.sh b/script/check_publish.sh new file mode 100755 index 000000000000..c12b776301d5 --- /dev/null +++ b/script/check_publish.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -e + +# This script checks to make sure that each of the plugins *could* be published. +# It doesn't actually publish anything. + +# So that users can run this script from anywhere and it will work as expected. +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" +REPO_DIR="$(dirname "$SCRIPT_DIR")" + +source "$SCRIPT_DIR/common.sh" + +function check_publish() { + local failures=() + for package_name in "$@"; do + local dir="$REPO_DIR/packages/$package_name" + echo "Checking that $package_name can be published." + if (cd "$dir" && pub publish --dry-run > /dev/null); then + echo "Package $package_name is able to be published." + else + error "Unable to publish $package_name" + failures=("${failures[@]}" "$package_name") + fi + done + if [[ "${#failures[@]}" != 0 ]]; then + error "FAIL: The following ${#failures[@]} package(s) failed the publishing check:" + for failure in "${failures[@]}"; do + error "$failure" + done + fi + return "${#failures[@]}" +} + +# Sets CHANGED_PACKAGE_LIST +check_changed_packages + +if [[ "${#CHANGED_PACKAGE_LIST[@]}" != 0 ]]; then + check_publish "${CHANGED_PACKAGE_LIST[@]}" +fi \ No newline at end of file diff --git a/script/common.sh b/script/common.sh new file mode 100644 index 000000000000..eaf94c7d05a3 --- /dev/null +++ b/script/common.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +function error() { + echo "$@" 1>&2 +} + +function check_changed_packages() { + # Try get a merge base for the branch and calculate affected packages. + # We need this check because some CIs can do a single branch clones with a limited history of commits. + local packages + local branch_base_sha="$(git merge-base --fork-point FETCH_HEAD HEAD || git merge-base FETCH_HEAD HEAD)" + if [[ "$?" == 0 ]]; then + echo "Checking for changed packages from $branch_base_sha" + IFS=$'\n' packages=( $(git diff --name-only "$branch_base_sha" HEAD | grep -o "packages/[^/]*" | sed -e "s/packages\///g" | sort | uniq) ) + else + error "Cannot find a merge base for the current branch to run an incremental build..." + error "Please rebase your branch onto the latest master!" + return 1 + fi + + # Filter out any packages that don't have a pubspec.yaml: they have probably + # been deleted in this PR. + CHANGED_PACKAGES="" + CHANGED_PACKAGE_LIST=() + for package in "${packages[@]}"; do + if [[ -f "$REPO_DIR/packages/$package/pubspec.yaml" ]]; then + CHANGED_PACKAGES="${CHANGED_PACKAGES},$package" + CHANGED_PACKAGE_LIST=("${CHANGED_PACKAGE_LIST[@]}" "$package") + fi + done + + if [[ "${#CHANGED_PACKAGE_LIST[@]}" == 0 ]]; then + echo "No changes detected in packages." + else + echo "Detected changes in the following ${#CHANGED_PACKAGE_LIST[@]} package(s):" + for package in "${CHANGED_PACKAGE_LIST[@]}"; do + echo "$package" + done + echo "" + fi + return 0 +} diff --git a/script/incremental_build.sh b/script/incremental_build.sh index d2d22435ea8a..283c9a550ef6 100755 --- a/script/incremental_build.sh +++ b/script/incremental_build.sh @@ -1,35 +1,29 @@ #!/bin/bash +set -e -set -ev +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" +REPO_DIR="$(dirname "$SCRIPT_DIR")" -BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD) +source "$SCRIPT_DIR/common.sh" -if [ "${BRANCH_NAME}" = "master" ]; then +# Set some default actions if run without arguments. +ACTIONS=("$@") +if [[ "${#ACTIONS[@]}" == 0 ]]; then + ACTIONS=("test" "analyze" "java-test") +fi + +BRANCH_NAME="${BRANCH_NAME:-"$(git rev-parse --abbrev-ref HEAD)"}" +if [[ "${BRANCH_NAME}" == "master" ]]; then echo "Running for all packages" - pub global run flutter_plugin_tools "$@" + (cd "$REPO_DIR" && pub global run flutter_plugin_tools "${ACTIONS[@]}" $BUILD_SHARDING) else - # Make sure there is up-to-date master. - git fetch origin master - - FLUTTER_CHANGED_GLOBAL=0 - FLUTTER_CHANGED_PACKAGES="" - - # Try get a merge base for the branch and calculate affected packages. - # We need this check because some CIs can do a single branch clones with a limited history of commits. - if BRANCH_BASE_SHA=$(git merge-base --fork-point FETCH_HEAD HEAD); then - echo "Checking changes from $BRANCH_BASE_SHA..." - FLUTTER_CHANGED_GLOBAL=`git diff --name-only $BRANCH_BASE_SHA HEAD | grep -v packages | wc -l` - FLUTTER_CHANGED_PACKAGES=`git diff --name-only $BRANCH_BASE_SHA HEAD | grep -o "packages/[^/]*" | sed -e "s/packages\///g" | sort | uniq | paste -s -d, -` - else - echo "Cannot find a merge base for the current branch to run an incremental build..." - echo "Please rebase your branch onto the latest master!" - fi + # Sets CHANGED_PACKAGES + check_changed_packages - if [ "${FLUTTER_CHANGED_PACKAGES}" = "" ] || [ $FLUTTER_CHANGED_GLOBAL -gt 0 ]; then + if [[ "$CHANGED_PACKAGES" == "" ]]; then echo "Running for all packages" - pub global run flutter_plugin_tools "$@" + (cd "$REPO_DIR" && pub global run flutter_plugin_tools "${ACTIONS[@]}" $BUILD_SHARDING) else - echo "Running only for $FLUTTER_CHANGED_PACKAGES" - pub global run flutter_plugin_tools "$@" --plugins=$FLUTTER_CHANGED_PACKAGES + (cd "$REPO_DIR" && pub global run flutter_plugin_tools "${ACTIONS[@]}" --plugins="$CHANGED_PACKAGES" $BUILD_SHARDING) fi fi diff --git a/script/plugin_tools.sh b/script/plugin_tools.sh deleted file mode 100755 index 516ba01d077c..000000000000 --- a/script/plugin_tools.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -set -ev - -if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then - echo "Running for all packages" - pub global run flutter_plugin_tools "$@" -else - echo "Looking for changes in $TRAVIS_COMMIT_RANGE" - FLUTTER_CHANGED_GLOBAL=`git diff --name-only $TRAVIS_COMMIT_RANGE | grep -v packages | wc -l` - FLUTTER_CHANGED_PACKAGES=`git diff --name-only $TRAVIS_COMMIT_RANGE | grep -o "packages/[^/]*" | sed -e "s/packages\///g" | sort | uniq | paste -s -d, -` - if [ "${FLUTTER_CHANGED_PACKAGES}" = "" ] || [ $FLUTTER_CHANGED_GLOBAL -gt 0 ]; then - echo "Running for all packages" - pub global run flutter_plugin_tools "$@" - else - echo "Running only for $FLUTTER_CHANGED_PACKAGES" - pub global run flutter_plugin_tools "$@" --plugins=$FLUTTER_CHANGED_PACKAGES - fi -fi