Merge branch 'release-candidate' into stable
diff --git a/.clang-format-ci b/.clang-format-ci
index 1737485..38d8eff 100755
--- a/.clang-format-ci
+++ b/.clang-format-ci
@@ -48,6 +48,7 @@
   git fetch > /dev/null
   TAG=$(git tag --sort=v:refname -l "$CLANG_FORMAT_CI_VERSION" | tail -n1)
   git checkout "$TAG" > /dev/null
+  git submodule update --init --recursive
   echo "Using clang-format-ci $TAG"
   popd
 
diff --git a/.kokoro b/.kokoro
index d93ef00..ce68e47 100755
--- a/.kokoro
+++ b/.kokoro
@@ -34,10 +34,10 @@
 
 if [ -n "$KOKORO_BUILD_NUMBER" ]; then
   bazel version
-  use_bazel.sh 0.20.0
+  use_bazel.sh 1.1.0
   bazel version
 fi
 
-./.kokoro-ios-runner/bazel.sh test //:UnitTests 8.1.0
+./.kokoro-ios-runner/bazel.sh test //:UnitTests --min-xcode-version 9.0
 
 echo "Success!"
diff --git a/BUILD b/BUILD
index 3970796..47b1cdb 100644
--- a/BUILD
+++ b/BUILD
@@ -12,7 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-load("@build_bazel_rules_apple//apple:ios.bzl", "ios_unit_test")
+load("@bazel_skylib//rules:build_test.bzl", "build_test")
+load("@build_bazel_rules_apple//apple:ios.bzl", "ios_unit_test_suite")
+load("@build_bazel_rules_apple//apple/testing/default_runner:ios_test_runner.bzl", "ios_test_runner")
 load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
 load("@bazel_ios_warnings//:strict_warnings_objc_library.bzl", "strict_warnings_objc_library")
 load(":apple_framework_relative_headers.bzl", "apple_framework_relative_headers")
@@ -50,6 +52,13 @@
     framework_name = "MDFInternationalization",
 )
 
+build_test(
+    name = "BuildTest",
+    targets = [
+        ":MDFInternationalization"
+    ],
+)
+
 objc_library(
     name = "UnitTestsLib",
     srcs = glob([
@@ -59,15 +68,43 @@
         ":MDFInternationalization",
         ":MDFInternationalizationFrameworkHeaders",
     ],
-    visibility = ["//visibility:private"],
 )
 
-ios_unit_test(
+ios_test_runner(
+    name = "IPAD_PRO_12_9_IN_9_3",
+    device_type = "iPad Pro (12.9-inch)",
+    os_version = "9.3",
+)
+
+ios_test_runner(
+    name = "IPHONE_7_PLUS_IN_10_3",
+    device_type = "iPhone 7 Plus",
+    os_version = "10.3",
+)
+
+ios_test_runner(
+    name = "IPHONE_X_IN_11_4",
+    device_type = "iPhone X",
+    os_version = "11.4",
+)
+
+ios_test_runner(
+    name = "IPHONE_XS_MAX_IN_12_2",
+    device_type = "iPhone Xs Max",
+    os_version = "12.2",
+)
+
+ios_unit_test_suite(
     name = "UnitTests",
     deps = [
       ":UnitTestsLib",
     ],
-    minimum_os_version = "8.0",
+    minimum_os_version = "9.0",
     timeout = "short",
-    visibility = ["//visibility:private"],
+    runners = [
+        ":IPAD_PRO_12_9_IN_9_3",
+        ":IPHONE_7_PLUS_IN_10_3",
+        ":IPHONE_X_IN_11_4",
+        ":IPHONE_XS_MAX_IN_12_2",
+    ],
 )
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 97c6cfb..f627988 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 3.0.0
+
+This major release drops support for iOS 9 and 10.
+
 # 2.0.1
 
 This patch release fixes framework-style imports when using bazel to build this library as an
diff --git a/Examples/Flags/MDFInternationalizationExample/BidirectionalViewController.m b/Examples/Flags/MDFInternationalizationExample/BidirectionalViewController.m
index 3cf8639..5e1aac3 100644
--- a/Examples/Flags/MDFInternationalizationExample/BidirectionalViewController.m
+++ b/Examples/Flags/MDFInternationalizationExample/BidirectionalViewController.m
@@ -16,7 +16,7 @@
 
 #import "BidirectionalViewController.h"
 
-#import <MDFInternationalization/MDFInternationalization.h>
+#import "MDFInternationalization.h"
 
 
 static NSString *LTREmbedding = @"\u202a";  // left-to-right embedding
diff --git a/Examples/Flags/MDFInternationalizationExample/CountryCell.m b/Examples/Flags/MDFInternationalizationExample/CountryCell.m
index 6e17137..444f299 100644
--- a/Examples/Flags/MDFInternationalizationExample/CountryCell.m
+++ b/Examples/Flags/MDFInternationalizationExample/CountryCell.m
@@ -16,7 +16,7 @@
 
 #import "CountryCell.h"
 
-#import <MDFInternationalization/MDFInternationalization.h>
+#import "MDFInternationalization.h"
 
 @implementation CountryCell
 
diff --git a/Examples/Flags/MDFInternationalizationExample/InformationViewController.m b/Examples/Flags/MDFInternationalizationExample/InformationViewController.m
index b4a075b..fcaea2d 100644
--- a/Examples/Flags/MDFInternationalizationExample/InformationViewController.m
+++ b/Examples/Flags/MDFInternationalizationExample/InformationViewController.m
@@ -16,7 +16,7 @@
 
 #import "InformationViewController.h"
 
-#import <MDFInternationalization/MDFInternationalization.h>
+#import "MDFInternationalization.h"
 
 @interface InformationViewController ()
 @property (weak, nonatomic) IBOutlet UILabel *deviceLabel;
diff --git a/MDFInternationalization.podspec b/MDFInternationalization.podspec
index 88e18c5..f161ce7 100644
--- a/MDFInternationalization.podspec
+++ b/MDFInternationalization.podspec
@@ -1,12 +1,12 @@
 Pod::Spec.new do |s|
   s.name         = "MDFInternationalization"
-  s.version      = "2.0.1"
+  s.version      = "3.0.0"
   s.authors      = "The Material Foundation Authors"
   s.summary      = "Internationalization tools."
   s.homepage     = "https://github.com/material-foundation/material-internationalization-ios"
   s.license      = "Apache License, Version 2.0"
   s.source       = { :git => "https://github.com/material-foundation/material-internationalization-ios.git", :tag => "v#{s.version}" }
-  s.platform     = :ios, "8.0"
+  s.platform     = :ios, "11.0"
 
   s.requires_arc = true
   s.public_header_files = "Sources/*.h"
diff --git a/Sources/Info.plist b/Sources/Info.plist
index 783e22e..e0f4bf7 100644
--- a/Sources/Info.plist
+++ b/Sources/Info.plist
@@ -15,7 +15,7 @@
 	<key>CFBundlePackageType</key>
 	<string>FMWK</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.0.1</string>
+	<string>3.0.0</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>
diff --git a/Sources/MDFInternationalization.h b/Sources/MDFInternationalization.h
index 2368edc..f9ab12e 100644
--- a/Sources/MDFInternationalization.h
+++ b/Sources/MDFInternationalization.h
@@ -16,11 +16,11 @@
 
 #import <UIKit/UIKit.h>
 
-#import <MDFInternationalization/MDFRTL.h>
-#import <MDFInternationalization/NSLocale+MaterialRTL.h>
-#import <MDFInternationalization/NSString+MaterialBidi.h>
-#import <MDFInternationalization/UIImage+MaterialRTL.h>
-#import <MDFInternationalization/UIView+MaterialRTL.h>
+#import "MDFRTL.h"  // IWYU pragma: export
+#import "NSLocale+MaterialRTL.h"  // IWYU pragma: export
+#import "NSString+MaterialBidi.h"  // IWYU pragma: export
+#import "UIImage+MaterialRTL.h"  // IWYU pragma: export
+#import "UIView+MaterialRTL.h"  // IWYU pragma: export
 
 //! Project version number for MDFInternationalization.
 FOUNDATION_EXPORT double MDFInternationalizationVersionNumber;
diff --git a/Tests/MDFBidiTests.m b/Tests/MDFBidiTests.m
index aad61a8..6ab4b51 100644
--- a/Tests/MDFBidiTests.m
+++ b/Tests/MDFBidiTests.m
@@ -16,7 +16,7 @@
 
 #import <XCTest/XCTest.h>
 
-#import <MDFInternationalization/MDFInternationalization.h>
+#import "MDFInternationalization.h"
 
 @interface MDFBidiTests : XCTestCase
 
diff --git a/Tests/MDFRTLTests.m b/Tests/MDFRTLTests.m
index b330592..c080281 100644
--- a/Tests/MDFRTLTests.m
+++ b/Tests/MDFRTLTests.m
@@ -16,7 +16,7 @@
 
 #import <XCTest/XCTest.h>
 
-#import <MDFInternationalization/MDFInternationalization.h>
+#import "MDFInternationalization.h"
 
 @interface RTLTests : XCTestCase
 
diff --git a/WORKSPACE b/WORKSPACE
index 21daed1..7db46c7 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -18,7 +18,8 @@
 git_repository(
     name = "build_bazel_rules_apple",
     remote = "https://github.com/bazelbuild/rules_apple.git",
-    tag = "0.9.0",
+    commit = "19f031f09185e0fcd722c22e596d09bd6fff7944",  # 0.19.0
+    shallow_since = "1570721035 -0700",  # 10-10-2019
 )
 
 load(
@@ -28,12 +29,6 @@
 
 apple_rules_dependencies()
 
-git_repository(
-    name = "build_bazel_rules_swift",
-    remote = "https://github.com/bazelbuild/rules_swift.git",
-    tag = "0.4.0",
-)
-
 load(
     "@build_bazel_rules_swift//swift:repositories.bzl",
     "swift_rules_dependencies",
@@ -41,20 +36,16 @@
 
 swift_rules_dependencies()
 
-git_repository(
-    name = "bazel_skylib",
-    remote = "https://github.com/bazelbuild/bazel-skylib.git",
-    tag = "0.6.0",
+load(
+    "@build_bazel_apple_support//lib:repositories.bzl",
+    "apple_support_dependencies",
 )
 
+apple_support_dependencies()
+
 git_repository(
     name = "bazel_ios_warnings",
     remote = "https://github.com/material-foundation/bazel_ios_warnings.git",
-    tag = "v2.0.0",
-)
-
-http_file(
-    name = "xctestrunner",
-    executable = 1,
-    urls = ["https://github.com/google/xctestrunner/releases/download/0.2.5/ios_test_runner.par"],
+    commit = "c3f720c0838af1ee53299aa6efda87cf729146b4",  # v3.0.0
+    shallow_since = "1545400728 -0500"  # 12-21-2018
 )
diff --git a/apple_framework_relative_headers.bzl b/apple_framework_relative_headers.bzl
index 6c5d195..a0ad0c7 100644
--- a/apple_framework_relative_headers.bzl
+++ b/apple_framework_relative_headers.bzl
@@ -1,7 +1,9 @@
 """Bazel rules for supporting framework-relative header imports."""
 
-load("@build_bazel_rules_apple//apple/bundling:file_actions.bzl", "file_actions")
-
+load(
+    "@build_bazel_rules_apple//apple/internal:file_support.bzl",
+    "file_support",
+)
 
 def _apple_framework_relative_headers_impl(ctx):
   """Implementation for apple_framework_relative_headers rule."""
@@ -11,7 +13,7 @@
   for f in ctx.files.hdrs:
     framework_path =  "/".join([output_dir, ctx.attr.framework_name, f.basename])
     framework_header_file = ctx.actions.declare_file(framework_path)
-    file_actions.symlink(ctx, f, framework_header_file)
+    file_support.symlink(ctx, f, framework_header_file)
     outputs.append(framework_header_file)
 
   # Documentation of these implicit types can be found here:
@@ -36,8 +38,7 @@
         "framework_name": attr.string(mandatory=True),
         "_realpath": attr.label(
             cfg="host",
-            allow_files=True,
-            single_file=True,
+            allow_single_file=True,
             default=Label("@bazel_tools//tools/objc:realpath"),
         ),
     },