diff --git a/project.clj b/project.clj
index 9b1a8680fc206ee5cb2225da890cae507457d4e5..e76a22af776fb07990e21577b3d2f46e54c34e7f 100644
--- a/project.clj
+++ b/project.clj
@@ -112,7 +112,6 @@
    [org.eclipse.jetty/jetty-server "9.4.14.v20181114"]                ; We require JDK 8 which allows us to run Jetty 9.4, ring-jetty-adapter runs on 1.7 which forces an older version
    [ring/ring-json "0.4.0"]                                           ; Ring middleware for reading/writing JSON automatically
    [stencil "0.5.0"]                                                  ; Mustache templates for Clojure
-   [expectations "2.2.0-beta2"]
    [toucan "1.11.0-SNAPSHOT" :exclusions [org.clojure/java.jdbc honeysql]]]    ; Model layer, hydration, and DB utilities
 
   :main ^:skip-aot metabase.core
diff --git a/src/metabase/plugins/dependencies.clj b/src/metabase/plugins/dependencies.clj
index 75203cf9ce47d2d01d879a72584432ae902634c8..7d34cb2fbf78d93d2400607a5dc48697f8c565a9 100644
--- a/src/metabase/plugins/dependencies.clj
+++ b/src/metabase/plugins/dependencies.clj
@@ -19,23 +19,33 @@
   (fn [_ _ dep] (dependency-type dep)))
 
 (defmethod dependency-satisfied? :default [_ {{plugin-name :name} :info} dep]
-  (log/error (u/format-color 'red
-                 (trs "Plugin {0} declares a dependency that Metabase does not understand: {1}" plugin-name dep))
-             (trs "Refer to the plugin manifest reference for a complete list of valid plugin dependencies:")
-             "https://github.com/metabase/metabase/wiki/Metabase-Plugin-Manifest-Reference")
+  (log/error
+   (u/format-color 'red
+       (trs "Plugin {0} declares a dependency that Metabase does not understand: {1}" plugin-name dep))
+   (trs "Refer to the plugin manifest reference for a complete list of valid plugin dependencies:")
+   "https://github.com/metabase/metabase/wiki/Metabase-Plugin-Manifest-Reference")
   false)
 
-(defonce ^:private ^{:arglists '([plugin-name message]), :doc "Warn that a plugin cannot be initialized because of
-  required dependencies. Subsequent calls with duplicate warnings are automatically ignored."}
-  warn-about-required-dependencies
-  (let [already-warned (atom #{})]
-    (fn [plugin-name message]
-      (let [k [plugin-name message]]
-        (when-not (contains? @already-warned k)
-          (swap! already-warned conj k)
-          (log/info (u/format-color 'red
-                        (trs "Metabase cannot initialize plugin {0} due to required dependencies." plugin-name))
-                    message))))))
+(defonce ^:private already-logged (atom #{}))
+
+(defn log-once
+  "Log a message a single time, such as warning that a plugin cannot be initialized because of required dependencies.
+  Subsequent calls with duplicate messages are automatically ignored."
+  {:style/indent 1}
+  ([message]
+   (log-once nil message))
+
+  ([plugin-name-or-nil message]
+   (let [k [plugin-name-or-nil message]]
+     (when-not (contains? @already-logged k)
+       (swap! already-logged conj k)
+       (log/info message)))))
+
+(defn- warn-about-required-dependencies [plugin-name message]
+  (log-once plugin-name
+    (str (u/format-color 'red (trs "Metabase cannot initialize plugin {0} due to required dependencies." plugin-name))
+         " "
+         message)))
 
 (defmethod dependency-satisfied? :class
   [_ {{plugin-name :name} :info} {^String classname :class, message :message, :as dep}]
@@ -47,15 +57,15 @@
 
 (defmethod dependency-satisfied? :plugin
   [initialized-plugin-names {{plugin-name :name} :info, :as info} {dep-plugin-name :plugin}]
-  (log/info (trs "Plugin ''{0}'' depends on plugin ''{1}''" plugin-name dep-plugin-name))
+  (log-once plugin-name (trs "Plugin ''{0}'' depends on plugin ''{1}''" plugin-name dep-plugin-name))
   ((set initialized-plugin-names) dep-plugin-name))
 
 (defn- all-dependencies-satisfied?*
   [initialized-plugin-names {:keys [dependencies], {plugin-name :name} :info, :as info}]
   (let [dep-satisfied? (fn [dep]
                          (u/prog1 (dependency-satisfied? initialized-plugin-names info dep)
-                           (log/debug
-                            (trs "{0} dependency {1} satisfied? {2}" plugin-name (dissoc dep :message) (boolean <>)))))]
+                           (log-once plugin-name
+                             (trs "{0} dependency {1} satisfied? {2}" plugin-name (dissoc dep :message) (boolean <>)))))]
     (every? dep-satisfied? dependencies)))
 
 (defn all-dependencies-satisfied?
@@ -69,8 +79,8 @@
 
    (do
      (swap! plugins-with-unsatisfied-deps conj info)
-     (log/debug (u/format-color 'yellow
-                    (trs "Plugins with unsatisfied deps: {0}" (mapv (comp :name :info) @plugins-with-unsatisfied-deps))))
+     (log-once (u/format-color 'yellow
+                   (trs "Plugins with unsatisfied deps: {0}" (mapv (comp :name :info) @plugins-with-unsatisfied-deps))))
      false)))