Fix up the implementation of equiv in SearchResults.

--- src/overtone/libs/freesound/search_results.clj
+++ src/overtone/libs/freesound/search_results.clj
@@ -16,16 +16,16 @@
     (SearchResults. n-results (.cons results-seq x)))
   (empty [_]
     (.empty results-seq))
-  (equiv [this that]
-    (and (coll? that)
-         (= (.count this)
-            (.count that))
-         (.equiv results-seq (.results that))))
+  (equiv [_ o]
+    (if (instance? SearchResults o)
+      (and (= n-results (.n-results o))
+           (.equiv results-seq (.results-seq o)))
+      (.equiv results-seq o)))

   clojure.lang.ISeq
   (first [_]
     (.first results-seq))
-  (next [this]
+  (next [_]
     (when (> n-results 1)
       (SearchResults. (dec n-results) (.next results-seq))))
   (more [_]
@@ -46,7 +46,8 @@
   "Create a new instance of SearchResults."
   [n-results results-seq]
   {:pre [(integer? n-results)
-         (sequential? results-seq)]}
+         (pos? n-results)
+         (seq? results-seq)]}
   (SearchResults. n-results (lazy-seq results-seq)))

 (defn next-fn


make it possible to explicitely flush the telemetry queue, be more careful when detecting the configured Riemann host

--- core/src/gorillalabs/tesla/component/telemetry.clj
+++ core/src/gorillalabs/tesla/component/telemetry.clj
@@ -19,7 +19,8 @@
             [gorillalabs.tesla.component.configuration :as config]
             [mount.core :as mnt]
             [riemann.client :as riemann])
-  (:import (java.net InetAddress)))
+  (:import (java.net InetAddress))
+  (:refer-clojure :exclude [flush]))

 (defn- now []
   (/ (System/currentTimeMillis) 1000))
@@ -59,6 +60,10 @@
 (defn custom [telemetry message]
   (enqueue telemetry message))

+(defn flush [telemetry]
+  (when-let [client (:r-client telemetry)]
+    (flush-queue client (:queue telemetry))))
+
 (defmacro timed
   "Wraps expr in a timer and reports the elapsed time as a metric named with identifier."
   [identifier expr & [props]]
@@ -89,10 +94,11 @@

 (defn- start []
   (log/info "-> starting telemetry")
-  (let [config     (config/config config/configuration [:telemetry])
-        queue      (chan (sliding-buffer (:queue-size config 1000)))
-        killswitch (chan)
-        client     (when (:riemann config) (riemann/tcp-client (:riemann config)))]
+  (let [config      (config/config config/configuration [:telemetry])
+        riemann-cfg (:riemann config)
+        queue       (chan (sliding-buffer (:queue-size config 1000)))
+        killswitch  (chan)
+        client      (when (:host riemann-cfg) (riemann/tcp-client riemann-cfg))]
     (worker killswitch client queue (:interval config 30))
     {:host       (:host config (localhost))
      :r-client   client
@@ -103,8 +109,8 @@
 (defn- stop [telemetry]
   (log/info "<- stopping telemetry")
   (close! (:killswitch telemetry))
+  (flush telemetry)
   (when-let [client (:r-client telemetry)]
-    (flush-queue client (:queue telemetry))
     (riemann/close! client)))

 (mnt/defstate telemetry


allow value when updating an transaction item

--- src/clj/clj_money/models/storage/sql_storage.clj
+++ src/clj/clj_money/models/storage/sql_storage.clj
@@ -828,6 +828,7 @@
                          (h/sset (->update-set transaction-item
                                                :transaction-date
                                                :quantity
+                                               :value
                                                :negative
                                                :memo
                                                :action


UI & control wired in.

UI & control wired in.

--- src/clojure/com/lemondronor/shrimpdroid/main.clj
+++ src/clojure/com/lemondronor/shrimpdroid/main.clj
@@ -10,51 +10,115 @@
   (:import
    [android.app Activity]
    [android.content BroadcastReceiver Context IntentFilter]
+   [android.graphics Typeface]
    [android.os Bundle]
-   [android.view KeyEvent]))
-
-
-(def drone (agent nil))
+   [android.view MotionEvent]))

 (declare ^android.widget.LinearLayout mylayout)

-(defn touch-handler []
-  (fn [& args]
-    (log/i "Got event " args)))
+(def actions
+  {:takeoff [ar-drone/takeoff :continuous? false]
+   :land [ar-drone/land :continuous? false]
+   :forward [ar-drone/front]
+   :backward [ar-drone/back]
+   :left [ar-drone/left]
+   :right [ar-drone/right]
+   :clockwise [ar-drone/clockwise]
+   :counter-clockwise [ar-drone/counter-clockwise]
+   :up [ar-drone/up]
+   :down [ar-drone/down]})

-(def main-layout
-  [:linear-layout {:id-holder true
-                   :def `mylayout
-                   :layout-width :fill
-                   :orientation :vertical}
-   [:linear-layout {:orientation :horizontal
-                    :layout-width :fill
-                    :layout-margin-bottom 100}
-    [:button {:text "Takeoff"
-              :layout-width 0
-              :layout-weight 1.0
-              :on-touch (touch-handler)}]
-    [:button {:text "Land"
-              :layout-width 0
-              :layout-weight 1.0
-              :on-touch (touch-handler)}]]
-   [:button {:text "↑"
-             :layout-gravity :center-horizontal}]
-   [:linear-layout {:orientation :horizontal
-                    :layout-width :wrap
-                    :layout-gravity :center-horizontal}
-    [:button {:text "←"}]
-    [:button {:text "→"}]]
-   [:button {:text "↓"
-             :layout-gravity :center-horizontal}]
-   [:linear-layout {:orientation :horizontal
-                    :layout-width :wrap
-                    :layout-gravity :center-horizontal}
-    [:button {:text "↺"}]
-    [:button {:text "↻"}]]])
+(def default-speed 0.5)
+
+
+(defn run-action [controller action-tag ^MotionEvent evt]
+  (let [drone @(:drone controller)
+        action (.getAction evt)
+        [action-fn &
+         {:keys [continuous?] :or {continuous? true}}] (actions action-tag)
+        action-args (cons drone
+                          (cond
+                            (and (= action MotionEvent/ACTION_DOWN) continuous?)
+                            (list default-speed)
+                            (and (= action MotionEvent/ACTION_UP) continuous?)
+                            (list 0.0)
+                            :else
+                            '()))]
+    (when (or (= action MotionEvent/ACTION_DOWN)
+              (and (= action MotionEvent/ACTION_UP) continuous?))
+      (log/i "Running" action-fn action-args)
+      (apply action-fn action-args))))
+
+
+(defn touch-handler [controller action-tag]
+  (fn [view evt]
+    (run-action controller action-tag evt)
+    false))
+
+
+(defn data-display [label-text id]
+  [:linear-layout {:orientation :horizontal
+                   :layout-width :fill}
+   [:text-view {:text label-text
+                :text-size [40 "sp"]
+                :typeface Typeface/MONOSPACE
+                :layout-margin-left [50 "dp"]
+                :layout-margin-right [30 "dp"]}]
+   [:text-view {:id id
+                :text "0.0"
+                :text-size [40 "sp"]
+                :typeface Typeface/MONOSPACE}]])
+
+
+(defn main-layout [controller]
+  (let [action (partial touch-handler controller)]
+    [:linear-layout {:id-holder true
+                     :def `mylayout
+                     :layout-width :fill
+                     :orientation :vertical}
+     [:linear-layout {:orientation :horizontal
+                      :layout-width :fill
+                      :layout-margin-bottom 100}
+      [:button {:text "Takeoff"
+                :layout-width 0
+                :layout-weight 1.0
+                :on-touch (action :takeoff)}]
+      [:button {:text "Land"
+                :layout-width 0
+                :layout-weight 1.0
+                :on-touch (action :land)}]]
+     [:button {:text "↑"
+               :layout-gravity :center-horizontal
+               :on-touch (action :forward)}]
+     [:linear-layout {:orientation :horizontal
+                      :layout-width :wrap
+                      :layout-gravity :center-horizontal}
+      [:button {:text "←"
+                :on-touch (action :left)}]
+      [:button {:text "→"
+                :on-touch (action :right)}]]
+     [:button {:text "↓"
+               :layout-gravity :center-horizontal
+               :on-touch (action :backward)}]
+     [:linear-layout {:orientation :horizontal
+                      :layout-width :wrap
+                      :layout-gravity :center-horizontal
+                      :layout-margin-bottom [40 "dp"]}
+      [:button {:text "↺"
+                :layout-margin-right [120 "dp"]
+                :on-touch (action :counter-clockwise)}]
+      [:button {:text "↻"
+                :layout-margin-left [120 "dp"]
+                :on-touch (action :clockwise)}]]
+     (data-display "ALT" :alt)
+     (data-display "SPD" :spd)
+     (data-display "HDG" :hdg)
+     (data-display "LAT" :lat)
+     (data-display "LON" :lon)
+     (data-display "BAT" :batt)]))

 (defn set-elmt [elmt s]
@@ -62,18 +126,60 @@
   s)

+(defn magnitude
+  "Returns the magnitude of a vector."
+  [v]
+  (Math/sqrt (reduce + (map #(* % %) v))))
+
+
+(defn display-navdata [navdata]
+  (let [batt (get-in navdata [:demo :battery-percentage])
+        pitch (get-in navdata [:demo :theta])
+        roll (get-in navdata [:demo :phi])
+        hdg (get-in navdata [:magneto :heading :fusion-unwrapped])
+        alt (get-in navdata [:demo :altitude])
+        vel (get-in navdata [:demo :velocity])
+        spd (magnitude (vals vel))
+        lat (get-in navdata [:gps :lat-fuse])
+        lon (get-in navdata [:gps :lon-fuse])]
+    (if spd
+      (set-elmt :spd (format "%.1f m/s" (/ spd 1000.0)))
+      (set-elmt :spd "unk"))
+    (if alt
+      (set-elmt :alt (format "%.1f m" (/ alt 1.0)))
+      (set-elmt :alt "unk"))
+    (if hdg
+      (set-elmt :hdg (str (int hdg)))
+      (set-elmt :hdg "unk"))
+    (if (and lat lon)
+      (do
+        (set-elmt :lat (format "%.5f" lat))
+        (set-elmt :lon (format "%.5f" lon)))
+      (do
+        (set-elmt :lat "unk")
+        (set-elmt :lon "unk")))
+    (if batt
+      (set-elmt :batt (format "%s %%" batt))
+      (set-elmt :batt "unk %"))))
+
+
 (activity/defactivity com.lemondronor.shrimpdroid.MainActivity
   :key :main
   :on-create
   (fn [this bundle]
-    (log/i "MainActivity activate")
-    (threading/on-ui
-      (activity/set-content-view!
-       (activity/*a)
-       main-layout))
-    (send-off
-     drone
-     (fn [_]
-       (let [drone (ar-drone/make-drone)]
-         (ar-drone/connect! drone)
-         drone)))))
+    (let [controller {:drone (agent nil)}]
+      (log/i "MainActivity activate")
+      (threading/on-ui
+       (activity/set-content-view!
+        (activity/*a)
+        (main-layout controller)))
+      (send-off
+       (:drone controller)
+       (fn [_]
+         (display-navdata nil)
+         (let [drone (ar-drone/make-drone
+                      :event-handler (fn [evt navdata]
+                                       (when (= evt :navdata)
+                                         (display-navdata navdata))))]
+           (ar-drone/connect! drone)
+           drone))))))


bunch of fixes and finalizations

bunch of fixes and finalizations

--- src/district0x/server/effects.cljs
+++ src/district0x/server/effects.cljs
@@ -18,10 +18,10 @@
   (->> contracts
     (medley/map-vals (fn [{:keys [:name :address] :as contract}]
                        (let [abi (fetch-abi name fetch-opts)
-                             bin (fetch-bin name fetch-opts)]
+                             bin (when goog.DEBUG (fetch-bin name fetch-opts))]
                          (merge contract
-                                {:abi (fetch-abi name fetch-opts)
-                                 :bin (fetch-bin name fetch-opts)
+                                {:abi abi
+                                 :bin bin
                                  :instance (web3-eth/contract-at (:web3 @server-state-atom) abi address)}))))
     (swap! server-state-atom update :smart-contracts merge)))


Don't bother bundling namespaces we don't make available.

--- src/klangmeister/compile/eval.cljs
+++ src/klangmeister/compile/eval.cljs
@@ -53,11 +53,9 @@
 (def dependencies
   "A bundle of dependencies."
   (macro/sources
-    leipzig.canon
     leipzig.chord
     leipzig.melody
     leipzig.scale
-    leipzig.temperament
     klangmeister.sound.synthesis
     klangmeister.sound.instruments))


don't use device-best-effort on snapping

git-svn-id: 03a8048b5ee8463be5048a3801110fb50f378627@10598 d0ab736e-dc22-4aeb-8dc9-08def0aa14fd

--- acqEngine/src/org/micromanager/acq_engine.clj
+++ acqEngine/src/org/micromanager/acq_engine.clj
@@ -662,7 +662,7 @@
                (set-stage-position z-drive z)))
           (for [runnable (event :runnables)]
             #(.run runnable))
-          #(device-best-effort (core getCameraDevice)
+          #(do
             (wait-for-pending-devices)
             (expose event)
             (collect event out-queue)


once stop is pressed, don't continue!

once stop is pressed, don't continue!

git-svn-id: 03a8048b5ee8463be5048a3801110fb50f378627@10785 d0ab736e-dc22-4aeb-8dc9-08def0aa14fd

--- acqEngine/src/org/micromanager/acq_engine.clj
+++ acqEngine/src/org/micromanager/acq_engine.clj
@@ -452,7 +452,7 @@
                  (count camera-channel-names))
         camera-index-tag (str (. mmc getCameraDevice) "-CameraChannelIndex")
         image-number-offset (if (first-trigger-missing?) -1 0)]
-    (doseq [_ (range total) :when (@state :stop)]
+    (doseq [_ (range total) :while (not (@state :stop))]
       (.put out-queue
             (-> (pop-burst-image timeout-ms)
                 (tag-burst-image burst-events camera-channel-names camera-index-tag


GAWB-23: style changes, removing unused import statement

--- src/cljs/org/broadinstitute/firecloud_ui/page/workspace/summary/attribute_editor.cljs
+++ src/cljs/org/broadinstitute/firecloud_ui/page/workspace/summary/attribute_editor.cljs
@@ -4,14 +4,13 @@
     [clojure.string :refer [join trim split]]
     [dmohs.react :as react]
     [org.broadinstitute.firecloud-ui.common.components :as comps]
+    [org.broadinstitute.firecloud-ui.common.icons :as icons]
+    [org.broadinstitute.firecloud-ui.common.modal :as modal]
     [org.broadinstitute.firecloud-ui.common.style :as style]
     [org.broadinstitute.firecloud-ui.common.table :as table]
     [org.broadinstitute.firecloud-ui.common.table-utils :as table-utils]
-    [org.broadinstitute.firecloud-ui.common.icons :as icons]
-    [org.broadinstitute.firecloud-ui.common.modal :as modal]
+    [org.broadinstitute.firecloud-ui.config :as config]
     [org.broadinstitute.firecloud-ui.page.workspace.data.import-data :as import-data]
-    [org.broadinstitute.firecloud-ui.utils :as utils :refer [access-token]]
-    [org.broadinstitute.firecloud-ui.config :as config]
     [org.broadinstitute.firecloud-ui.utils :as utils]
     ))

@@ -120,7 +119,7 @@
                                           (after-update #(.focus (.getElementById js/document "focus"))))}]]
               [:div {:style {:marginBottom "0.25em"}}
                 [comps/Button {:text "Download Attributes"
-                               :onClick #(utils/set-access-token-cookie @access-token)
+                               :onClick #(utils/set-access-token-cookie @utils/access-token)
                                :href (str (config/api-url-root) "/cookie-authed/workspaces/"
                                           (:namespace (:workspace-id props)) "/"
                                           (:name (:workspace-id props)) "/exportAttributesTSV")
@@ -133,8 +132,7 @@
                                             :content [:div {:style {:width 720}}
                                                       [import-data/Page (merge (select-keys props [:workspace-id])
                                                                                {:reload (fn [] (modal/pop-modal) ((:request-refresh props)) )}
-                                                                               {:import-type "workspace-attributes"})]]}])}]
-               ])
+                                                                               {:import-type "workspace-attributes"})]]}])}]])
            [table/Table
             {:key (str editing? (count (:attributes @state)))
              :reorderable-columns? false :sortable-columns? (not editing?) :filterable? false :pagination :none


remove expectations

remove expectations

--- ssclj/jar/test/com/sixsq/slipstream/ssclj/resources/service_attribute_schema_test.clj
+++ ssclj/jar/test/com/sixsq/slipstream/ssclj/resources/service_attribute_schema_test.clj
@@ -1,9 +1,11 @@
 (ns com.sixsq.slipstream.ssclj.resources.service-attribute-schema-test
-    (:require
+  (:require
+    [clojure.test :refer [deftest are is]]
     [com.sixsq.slipstream.ssclj.resources.service-attribute :refer :all]
     [schema.core :as s]
-    [expectations :refer :all]
     [com.sixsq.slipstream.ssclj.app.params :as p]))
+
+(def non-nil? (complement nil?))

 (def valid-acl {:owner {:principal "::ADMIN"
                         :type      "ROLE"}
@@ -11,100 +13,104 @@
                          :type      "ROLE"
                          :right     "VIEW"}]})

-(let [entry {:name        "readable name"
-             :description "localized description"
-             :categories  ["a" "b"]}]
+(deftest check-localized-entry
+  (let [entry {:name        "readable name"
+               :description "localized description"
+               :categories  ["a" "b"]}]

-  (expect nil? (s/check LocalizedEntry entry))
+    (are [expect-fn arg] (expect-fn (s/check LocalizedEntry arg))
+                         nil? entry
+                         non-nil? (dissoc entry :name)
+                         non-nil? (assoc entry :name 99)
+                         non-nil? (assoc entry :name "")

-  (expect (s/check LocalizedEntry (dissoc entry :name)))
-  (expect (s/check LocalizedEntry (assoc entry :name 99)))
-  (expect (s/check LocalizedEntry (assoc entry :name "")))
+                         non-nil? (dissoc entry :description)
+                         non-nil? (assoc entry :description 99)
+                         non-nil? (assoc entry :description "")

-  (expect (s/check LocalizedEntry (dissoc entry :description)))
-  (expect (s/check LocalizedEntry (assoc entry :description 99)))
-  (expect (s/check LocalizedEntry (assoc entry :description "")))
+                         nil? (dissoc entry :categories)
+                         non-nil? (assoc entry :categories [])
+                         non-nil? (assoc entry :categories "bad-value")

-  (expect nil? (s/check LocalizedEntry (dissoc entry :categories)))
-  (expect (s/check LocalizedEntry (assoc entry :categories [])))
-  (expect (s/check LocalizedEntry (assoc entry :categories "bad-value")))
+                         non-nil? (assoc entry :bad "value"))))

-  (expect (s/check LocalizedEntry (assoc entry :bad "value"))))
+(deftest check-localized-entries
+  (let [entries {:en {:name        "keyword"
+                      :description "localized description"
+                      :categories  ["one" "two"]}
+                 :fr {:name        "mot clé"
+                      :description "phrase descriptif localisé"
+                      :categories  ["un" "deux"]}}]

-(let [entries {:en {:name        "keyword"
-                    :description "localized description"
-                    :categories  ["one" "two"]}
-               :fr {:name        "mot clé"
-                    :description "phrase descriptif localisé"
-                    :categories  ["un" "deux"]}}]
+    (are [expect-fn arg] (expect-fn (s/check LocalizedEntries arg))
+                         nil? entries
+                         nil? (dissoc entries :en)
+                         nil? (dissoc entries :fr)

-  (expect nil? (s/check LocalizedEntries entries))
-
-  (expect nil? (s/check LocalizedEntries (dissoc entries :en)))
-  (expect nil? (s/check LocalizedEntries (dissoc entries :fr)))
-
-  (expect (s/check LocalizedEntries (assoc entries :en "bad-value")))
-  (expect (s/check LocalizedEntries (assoc entries :fr "bad-value")))
-
-  (expect (s/check LocalizedEntries (dissoc entries :en :fr)))
-  (expect (s/check LocalizedEntries {})))
+                         non-nil? (assoc entries :en "bad-value")
+                         non-nil? (assoc entries :fr "bad-value")
+                         non-nil? (dissoc entries :en :fr)
+                         non-nil? {})))

 ;; CompositeType checks
-(expect (s/check CompositeType []))
-(expect nil? (s/check CompositeType ["type-one"]))
-(expect nil? (s/check CompositeType ["type-one" "type-two"]))
-(expect (s/check CompositeType [0]))
-(expect (s/check CompositeType "bad-value"))

-(let [timestamp "1964-08-25T10:00:00.0Z"
-      attr {:id            resource-name
-            :resourceURI   p/service-context
-            :created       timestamp
-            :updated       timestamp
-            :acl           valid-acl
+(deftest check-composite-type
+  (are [expect-fn arg] (expect-fn (s/check CompositeType arg))
+                       nil? ["type-one"]
+                       nil? ["type-one" "type-two"]
+                       non-nil? []
+                       non-nil? [0]
+                       non-nil? "bad-value"))

-            :prefix         "example-org"
-            :attr-name      "test-attribute"
+(deftest check-attribute
+  (let [timestamp "1964-08-25T10:00:00.0Z"
+        attr {:id            resource-name
+              :resourceURI   p/service-context
+              :created       timestamp
+              :updated       timestamp
+              :acl           valid-acl

-            :type          "string"
-            :authority     "http://helix-nebula.eu"
-            :major-version 2
-            :minor-version 1
-            :patch-version 0
-            :normative     true
-            :en            {:name        "keyword"
-                            :description "localized description"
-                            :categories  ["one" "two"]}}]
+              :prefix        "example-org"
+              :attr-name     "test-attribute"

-  (expect nil? (s/check Attribute attr))
-  (expect (s/check Attribute (dissoc attr :created)))
-  (expect (s/check Attribute (dissoc attr :updated)))
-  (expect (s/check Attribute (dissoc attr :acl)))
+              :type          "string"
+              :authority     "http://helix-nebula.eu"
+              :major-version 2
+              :minor-version 1
+              :patch-version 0
+              :normative     true
+              :en            {:name        "keyword"
+                              :description "localized description"
+                              :categories  ["one" "two"]}}]

-  (expect (s/check Attribute (dissoc attr :prefix)))
-  (expect (s/check Attribute (assoc attr  :prefix 0)))
-  (expect (s/check Attribute (assoc attr  :prefix "")))
+    (are [expect-fn arg] (expect-fn (s/check Attribute arg))
+                         nil? attr
+                         non-nil? (dissoc attr :created)
+                         non-nil? (dissoc attr :updated)
+                         non-nil? (dissoc attr :acl)

-  (expect (s/check Attribute (dissoc attr :attr-name)))
-  (expect (s/check Attribute (assoc attr  :attr-name 0)))
-  (expect (s/check Attribute (assoc attr  :attr-name "")))
+                         non-nil? (dissoc attr :prefix)
+                         non-nil? (assoc attr :prefix 0)
+                         non-nil? (assoc attr :prefix "")

-  (expect (s/check Attribute (dissoc attr :type)))
-  (expect (s/check Attribute (assoc attr :type 0)))
-  (expect nil? (s/check Attribute (assoc attr :type ["ok" "values"])))
+                         non-nil? (dissoc attr :attr-name)
+                         non-nil? (assoc attr :attr-name 0)
+                         non-nil? (assoc attr :attr-name "")

-  (expect nil? (s/check Attribute (dissoc attr :authority)))
-  (expect (s/check Attribute (assoc attr :authority 0)))
+                         non-nil? (dissoc attr :type)
+                         non-nil? (assoc attr :type 0)
+                         nil? (assoc attr :type ["ok" "values"])

-  (expect (s/check Attribute (dissoc attr :major-version)))
-  (expect (s/check Attribute (assoc attr :major-version "bad-value")))
-  (expect (s/check Attribute (dissoc attr :minor-version)))
-  (expect (s/check Attribute (assoc attr :minor-version "bad-value")))
-  (expect (s/check Attribute (dissoc attr :patch-version)))
-  (expect (s/check Attribute (assoc attr :patch-version "bad-value")))
+                         nil? (dissoc attr :authority)
+                         non-nil? (assoc attr :authority 0)

-  (expect (s/check Attribute (dissoc attr :normative)))
+                         non-nil? (dissoc attr :major-version)
+                         non-nil? (assoc attr :major-version "bad-value")
+                         non-nil? (dissoc attr :minor-version)
+                         non-nil? (assoc attr :minor-version "bad-value")
+                         non-nil? (dissoc attr :patch-version)
+                         non-nil? (assoc attr :patch-version "bad-value")

-  ;; TODO: This should not be allowed, but can't yet enforce this.
-  ;;(expect (s/check Attribute (dissoc attr :en)))
-  (expect (s/check Attribute (assoc attr :en "bad-value"))))
+                         non-nil? (dissoc attr :normative)
+
+                         non-nil? (assoc attr :en "bad-value"))))


Standardize on 800px wide canvas.

Standardize on 800px wide canvas.

--- metlog-vault/src-client/metlog.cljs
+++ metlog-vault/src-client/metlog.cljs
@@ -42,7 +42,7 @@
     om/IInitState
     (init-state [_]

-      {:width 200 :height 150})
+      {:width 800 :height 150})

     om/IDidMount
     (did-mount [_]


finish integrating changes for support of stateful transforms

--- src/main/clojure/org/dada/core.clj
+++ src/main/clojure/org/dada/core.clj
@@ -274,25 +274,18 @@

 (defn third [s] (nth s 2))

-(defn do-transform [#^String suffix #^Model src-model #^Keyword key-key #^Keyword version-key &
-		    #^ISeq attribute-descrips]
+(defn do-transform [#^String suffix #^Model src-model & #^Collection attribute-descrips]
   (let [#^Metadata model-metadata (.getMetadata src-model)
-	key-details (do-transform-attribute key-key model-metadata)
-	key-type (second key-details)
-	version-details (do-transform-attribute version-key model-metadata)
-	version-type (second version-details)
 	attribute-details (map #(do-transform-attribute % model-metadata) attribute-descrips)
 	attribute-keys (map first attribute-details)
 	attribute-types (map second attribute-details)
-	init-fns
-	(list*
-	 (third key-details)
-	 (third version-details)
-	 (map third attribute-details))
+	init-fns (map third attribute-details)
+	key-key (first attribute-keys)
+	version-key (second attribute-keys)
 	attributes (interleave attribute-keys attribute-types)
-	class-name (name (gensym "org.dada.demo.whales.Transform"))
+	class-name (name (gensym "org.dada.core.Transform"))
 	superclass Object
-	view-metadata (class-metadata class-name superclass key-key version-key (concat (list key-key key-type version-key version-type) attributes))
+	view-metadata (class-metadata class-name superclass key-key version-key attributes)
 	view-name (str (.getName src-model) "." suffix)
 	view (model view-name view-metadata)
 	transformer (make-transformer init-fns view-metadata view)]


add seq-metadata - create Metadata for any sequence

--- src/main/clojure/org/dada/core.clj
+++ src/main/clojure/org/dada/core.clj
@@ -197,6 +197,14 @@
    version-key
    attributes))

+(defn #^Metadata seq-metadata [length]
+  (new GetterMetadata
+       (proxy [Creator] [] (create [args] (apply collection args)))
+       (collection 0 1)
+       (apply collection (repeat length Object))
+       (apply collection (range length))
+       (apply collection (map (fn [i] (proxy [Getter] [] (get [s] (nth s i)))) (range length)))))
+
 (defn model
   ([#^String model-name #^Keyword key #^Keyword version #^Metadata metadata]
    (let [id-getter (.getAttributeGetter metadata (name key))


Mount examples.

Mount examples.

--- src/main/clj/clojure_club/mount_demo/weather.clj
+++ src/main/clj/clojure_club/mount_demo/weather.clj
@@ -2,11 +2,13 @@
   (:require [mount.core :refer [defstate] :as mount]
             [cheshire.core :as ch]))

+;This could be test vs. production data, simple vs. complex, whatever....
 (def wunderground-url "http://api.wunderground.com/api/46b315c0cf22f273/conditions/q/ID/Boise.json")
 (def openweathermap-url "http://api.openweathermap.org/data/2.5/weather?q=Boise,ID&appid=f5f2079dd7f4a6c3b6730d3441efb2c2")

 (defn get-weather [url] (ch/parse-string (slurp url) true))

+;Note that normally you'd want the configuration to return data of the same shape.
 (defstate weather-service-url :start wunderground-url)

 (defn weather [] (ch/parse-string (slurp weather-service-url) true))


[#2925] Adapt sql view name to ds table name spec

--- backend/src/akvo/lumen/lib/aggregation/bar.clj
+++ backend/src/akvo/lumen/lib/aggregation/bar.clj
@@ -185,7 +185,7 @@
 (defn query-with-data-groups
   [tenant-conn data-groups q]
   (let [columns (reduce #(into % (:columns %2)) [] data-groups)
-        table-name (str "view_" (str/replace (util/squuid) "-" "_"))]
+        table-name (util/gen-table-name "ds")]
     (->> data-groups
          commons/data-groups-sql-template
          commons/data-groups-sql


Version 0.3.1-SNAPSHOT

Version 0.3.1-SNAPSHOT

--- metlog-vault/project.clj
+++ metlog-vault/project.clj
@@ -1,4 +1,4 @@
-(defproject metlog-vault "0.3.0"
+(defproject metlog-vault "0.3.1-SNAPSHOT"
   :description "Repository for long term storage of series data."

   :license {:name "Eclipse Public License"


Remove unneeded import

Remove unneeded import

--- src/braid/server/util.clj
+++ src/braid/server/util.clj
@@ -6,7 +6,7 @@
     (java.net URLEncoder)
     (java.io ByteArrayOutputStream ByteArrayInputStream)
     (com.cognitect.transit Writer)
-    (com.cognitect.transit.impl MsgpackEmitter WriteCache WriterFactory WriteHandlerMap)
+    (com.cognitect.transit.impl MsgpackEmitter WriteCache  WriteHandlerMap)
     (org.msgpack MessagePack)
     (org.apache.commons.validator UrlValidator)))


Fix user update function

Fix user update function

--- src/chameleon/crawler.clj
+++ src/chameleon/crawler.clj
@@ -19,10 +19,10 @@
    :reputation (:rep user-map)})

 (defn update-user! [user-map]
-  (mc/update-by-id db/db
-                   "users"
-                   {:user-id (:user-id user-map)}
-                   {:display_name (:display-name user-map)}))
+  (mc/update db/db
+             "users"
+             {:_id (:user-id user-map)}
+             {:display_name (:display-name user-map)}))

 (defn create-sample! [user-map]
   (mc/insert db/db "samples" (create-sample-document user-map)))


move piece nil check to functions that try to move the piece

--- src/client/game/core.cljs
+++ src/client/game/core.cljs
@@ -384,33 +384,33 @@
 (defn try-move!
   "Try moving the current piece to the given offset."
   [dx dy]
-  (let [[x y] (:position @state)
-        piece (:piece @state)
-        board (:board @state)
-        nx (+ dx x)
-        ny (+ dy y)]
-    (if (piece-fits? piece nx ny board)
-      (swap! state assoc :position [nx ny]))))
+  (when-let [piece (:piece @state)]
+    (let [[x y] (:position @state)
+          board (:board @state)
+          nx (+ dx x)
+          ny (+ dy y)]
+      (if (piece-fits? piece nx ny board)
+        (swap! state assoc :position [nx ny])))))

 (defn try-rotate!
   "Try rotating the current piece."
   []
-  (let [[x y] (:position @state)
-        piece (:piece @state)
-        board (:board @state)
-        new-piece (rotate-piece piece)]
-    (if (piece-fits? new-piece x y board)
-      (swap! state assoc :piece new-piece))))
+  (when-let [piece (:piece @state)]
+    (let [[x y] (:position @state)
+          board (:board @state)
+          new-piece (rotate-piece piece)]
+      (if (piece-fits? new-piece x y board)
+        (swap! state assoc :piece new-piece)))))

 (defn hard-drop!
   "Hard drop the current piece."
   []
-  (let [[x y] (:position @state)
-        piece (:piece @state)
-        board (:board @state)
-        ny (get-drop-pos piece x y board)]
-    (swap! state assoc :position [x ny])
-    (lock-piece!)))
+  (when-let [piece (:piece @state)]
+    (let [[x y] (:position @state)
+          board (:board @state)
+          ny (get-drop-pos piece x y board)]
+      (swap! state assoc :position [x ny])
+      (lock-piece!))))

 (defn change-theme!
   "Changes the boards theme"
@@ -508,7 +508,7 @@
                      :p     (do (toggle-pause-game!) (.preventDefault e))
                      :m     (do (toggle-music!) (.preventDefault e))
                      nil)
-                   (when (and (:piece @state) (not @paused?))
+                   (when (not @paused?)
                      (case (key-name e)
                        :down  (put! down-chan true)
                        :left  (try-move! -1 0)


fix :redef warnings

fix :redef warnings

--- src/clj/cljs/analyzer.clj
+++ src/clj/cljs/analyzer.clj
@@ -656,6 +656,8 @@
      :catch catch
      :children [try catch finally]}))

+(declare get-expander)
+
 (defmethod parse 'def
   [op env form name _]
   (let [pfn (fn
@@ -686,7 +688,7 @@
                            (core-name? env sym))
                       (get-in @env/*compiler* [::namespaces ns-name :uses sym]))
                 (let [ev (resolve-existing-var (dissoc env :locals) sym)]
-                  (warning :redef env {:ev ev :sym sym :ns-name ns-name})
+                  (warning :redef env {:sym sym :ns (:ns ev) :ns-name ns-name})
                   (swap! env/*compiler* update-in [::namespaces ns-name :excludes] conj sym)
                   (update-in env [:ns :excludes] conj sym))
                 env)


Add support for evaluated and quoted vectors and maps

Also support for quoted lists, and for quoted and unquoted literal metadata.
Refs #7

--- src/clj/cljs/compiler.clj
+++ src/clj/cljs/compiler.clj
@@ -89,14 +89,35 @@
 (defmethod emit-constant Boolean [x] (print (if x "true" "false")))
 (defmethod emit-constant Character [x] (pr (str x)))

+(defn- emit-meta-constant [x string]
+  (if (meta x)
+    (do
+      (print (str "cljs.core.with_meta(" string ","))
+      (emit-constant (meta x))
+      (print ")"))
+    (print string)))
+
 (defmethod emit-constant clojure.lang.PersistentList$EmptyList [x]
-  (print 'cljs.core.List.EMPTY))
-
-(defmethod emit-constant clojure.lang.PersistentVector [x]
-  (print "cljs.core.vec([" (comma-sep x) "])"))
-
-(defmethod emit-constant clojure.lang.PersistentArrayMap [x]
-  (print "cljs.core.hash_map(" (comma-sep (apply concat x)) ")"))
+  (emit-meta-constant x "cljs.core.List.EMPTY"))
+
+(defmethod emit-constant clojure.lang.PersistentList [x]
+  (emit-meta-constant x
+    (str "cljs.core.list("
+         (comma-sep (map #(with-out-str (emit-constant %)) x))
+         ")")))
+
+(defmethod emit-constant clojure.lang.IPersistentVector [x]
+  (emit-meta-constant x
+    (str "(new cljs.core.Vector(null, ["
+         (comma-sep (map #(with-out-str (emit-constant %)) x))
+         "]))")))
+
+(defmethod emit-constant clojure.lang.IPersistentMap [x]
+  (emit-meta-constant x
+    (str "cljs.core.hash_map("
+         (comma-sep (map #(with-out-str (emit-constant %))
+                         (apply concat x)))
+         ")")))

 (defmulti emit :op)

@@ -119,6 +140,22 @@
 (defmethod emit :var
   [{:keys [info env] :as arg}]
   (emit-wrap env (print (:name info))))
+
+(defmethod emit :meta
+  [{:keys [expr meta env]}]
+  (emit-wrap env
+    (print (str "cljs.core.with_meta(" (emits expr) "," (emits meta) ")"))))
+
+(defmethod emit :map
+  [{:keys [children env]}]
+  (emit-wrap env
+    (print (str "cljs.core.hash_map(" (comma-sep (map emits children)) ")"))))
+
+(defmethod emit :vector
+  [{:keys [children env]}]
+  (emit-wrap env
+    (print (str "(new cljs.core.Vector(null, ["
+                (comma-sep (map emits children)) "]))"))))

 (defmethod emit :constant
   [{:keys [form env]}]
@@ -596,6 +633,31 @@
           (parse-invoke env form))
         (analyze env mform name)))))

+(declare analyze-wrap-map)
+
+(defn analyze-map
+  [env form name]
+  (let [expr-env (assoc env :context :expr)
+        items (disallowing-recur
+                (map #(analyze expr-env % name) (apply concat form)))]
+    (analyze-wrap-meta {:op :map :env env :form form :children items} name)))
+
+(defn analyze-vector
+  [env form name]
+  (let [expr-env (assoc env :context :expr)
+        items (disallowing-recur (map #(analyze expr-env % name) form))]
+    (analyze-wrap-meta {:op :vector :env env :form form :children items} name)))
+
+(defn analyze-wrap-meta [expr name]
+  (let [form (:form expr)]
+    (if (meta form)
+      (let [env (:env expr) ; take on expr's context ourselves
+            expr (assoc-in expr [:env :context] :expr) ; change expr to :expr
+            meta-expr (analyze-map (:env expr) (meta form) name)]
+        {:op :meta :env env :form form :children [meta-expr expr]
+         :meta meta-expr :expr expr})
+      expr)))
+
 (defn analyze
   "Given an environment, a map containing {:locals (mapping of names to bindings), :context
   (one of :statement, :expr, :return), :ns (a symbol naming the
@@ -611,6 +673,8 @@
        (cond
         (symbol? form) (analyze-symbol env form)
         (and (seq? form) (seq form)) (analyze-seq env form name)
+        (map? form) (analyze-map env form name)
+        (vector? form) (analyze-vector env form name)
         :else {:op :constant :env env :form form}))))

 (defn eval1
@@ -750,7 +814,7 @@

 (analyze envx '(ns fred (:require [your.ns :as yn]) (:require-macros [clojure.core :as core])))
 (defmacro js [form]
-  `(emit analyze ({:ns (@namespaces 'cljs.user) :context :statement :locals {}} '~form)))
+  `(emit (analyze {:ns (@namespaces 'cljs.user) :context :statement :locals {}} '~form)))

 (defn jseval [form]
   (let [js (emits (analyze {:ns (@namespaces 'cljs.user) :context :expr :locals {}}


convert transit JSON into js object

convert transit JSON into js object

--- src/cljs/common/util.cljs
+++ src/cljs/common/util.cljs
@@ -16,7 +16,7 @@
   "takes native cljs data structure and converts to json"
   [x]
   (let [w (t/writer :json-verbose)]
-    (t/write w x)))
+    (.parse js/JSON (t/write w x))))

 (defn js->cljs [x]
   (let [r   (t/reader :json)


Add hook system for mouse events

Add hook system for mouse events

--- src/org/knotation/editor/core.cljs
+++ src/org/knotation/editor/core.cljs
@@ -67,13 +67,18 @@
     (set! (.-line token) line)
     token))

-(defn on-hover [ed f]
-  (set! (.-onmouseover (.getWrapperElement ed)) #(f (-ev->token ed %))))
-(def onHover on-hover)
+(defn add-hook! [ed key f]
+  (swap! (:on-hover (.-hooks ed)) conj f))

-(defn on-leave [ed f]
-  (set!  (.-onmouseout (.getWrapperElement ed)) #(f (-ev->token ed %))))
-(def onLeave on-leave)
+(defn run-hooks! [ed key ev]
+  (doseq [h @(get (.-hooks ed) key)]
+    (h (-ev->token ed ev))))
+
+(defn on-hover! [ed f] (add-hook! ed :on-hover f))
+(def onHover on-hover!)
+
+(defn on-leave! [ed f] (add-hook! ed :on-hover f))
+(def onLeave on-leave!)

 (defn editor!
   [editor-selector & {:keys [mode theme focus?]
@@ -96,7 +101,11 @@
                       (when-let [g (.-graph (.-knotation ed))]
                         (clj->js (first (filter #(= (inc ln-num) (->> % ::st/input ::st/line-number)) g)))))}))

-    (on-hover
+    (set! (.-hooks ed) {:on-hover (atom []) :on-leave (atom [])})
+    (set! (.-onmouseover (.getWrapperElement ed)) #(run-hooks! ed :on-hover %))
+    (set! (.-onmouseout (.getWrapperElement ed)) #(run-hooks! ed :on-leave %))
+
+    (on-hover!
      ed (fn [token]
           (let [ln (.-line token)
                 all-errs (.querySelectorAll (.getWrapperElement ed) ".line-error-message")


Add HTML tag

Add HTML tag

--- doclet/src/clojure/play_clj_doclet/html.clj
+++ doclet/src/clojure/play_clj_doclet/html.clj
@@ -62,15 +62,16 @@

 (defn create-file
   [parsed-files name content]
-  (html [:head
-         [:title name]
-         [:link {:rel "stylesheet" :href "highlight.css"}]
-         [:link {:rel "stylesheet" :href "main.css"}]]
-        [:body
-         (sidebar parsed-files)
-         content
-         [:script {:src "highlight.js"}]
-         [:script {:src "main.js"}]]))
+  (html [:html
+         [:head
+          [:title name]
+          [:link {:rel "stylesheet" :href "highlight.css"}]
+          [:link {:rel "stylesheet" :href "main.css"}]]
+         [:body
+          (sidebar parsed-files)
+          content
+          [:script {:src "highlight.js"}]
+          [:script {:src "main.js"}]]]))

 (defn copy-from-res
   [dir file-name]


Add IMeta/IWithMeta interfaces but no other work on #28

--- lib/shin/cljs/cljs/core.cljs
+++ lib/shin/cljs/cljs/core.cljs
@@ -100,6 +100,12 @@

 (defprotocol IDeref
   (-deref  [o]))
+
+(defprotocol IMeta
+  (-meta [o]))
+
+(defprotocol IWithMeta
+  (-with-meta [o meta]))

 (defprotocol ISwap
   (-swap!  [o f]  [o f a]  [o f a b]  [o f a b xs]))


Problem 0101.

Problem 0101.

--- src/project_euler/problem_0101.clj
+++ src/project_euler/problem_0101.clj
@@ -64,14 +64,40 @@
        (map-indexed (fn [j y]
                       (map #(* y %) (lagrange-basis xs j))))
        (reduce #(map + %1 %2))
+       (reverse)
+       (vec)
        ))

 (defn poly-eval [ks x]
   (loop [[k & ks] ks
          xn       1
          y        0]
-    (if ks
-      (let [xn' (* xn x)]
-        (recur ks xn' (+ y (* k xn))))
-      y
-      )))
+    (let [xn' (* xn x)
+          y'  (+ y (* k xn))]
+      (if ks
+        (recur ks xn' y')
+        y'
+        ))))
+
+(def poly3 [0 0 0 1])
+
+;;           0  1 2  3 4  5 6  7 8  9 10
+(def poly10 [1 -1 1 -1 1 -1 1 -1 1 -1 1])
+
+(defn solution-for [poly]
+  (let [xs (range 1 (inc (count poly)))
+        ys (map (partial poly-eval poly) xs)]
+    (->> (range 1 (count poly))
+         (map (fn [n]
+                (let [ks (lagrange-interpolation (take n xs) (take n ys))]
+                  (map (fn [x] (poly-eval ks x)) (take (+ 1 n) xs)))))
+         (map (fn [zs] (last (map (fn [z y] [z y]) zs ys))))
+         (filter (fn [[z y]] (not= z y)))
+         (map first)
+         (reduce +)
+     )))
+
+(defn solution []
+  (solution-for poly10))
+
+;;-> 37076114526


[WM] update generated deps to latest versions

--- resources/leiningen/new/kraken_works/project.clj
+++ resources/leiningen/new/kraken_works/project.clj
@@ -6,13 +6,13 @@
   :dependencies [[org.clojure/clojure "1.7.0"]
                  [org.clojure/tools.logging "0.3.1"]
                  [turbovote.resource-config "0.2.0"]
-                 [com.novemberain/langohr "3.4.2"]
+                 [com.novemberain/langohr "3.5.0"]
                  [democracyworks/datomic-toolbox "2.0.0" :exclusions [com.datomic/datomic-pro]]
                  [prismatic/schema "1.0.4"]
                  [com.datomic/datomic-pro "0.9.5327" :exclusions [org.slf4j/slf4j-nop
                                                                   org.slf4j/slf4j-log4j12]]
                  [ch.qos.logback/logback-classic "1.1.3"]
-                 [org.immutant/core "2.1.1"]
+                 [org.immutant/core "2.1.2"]
                  [democracyworks/kehaar "0.5.0"]]
   :plugins [[lein-immutant "2.1.0"]]
   :main ^:skip-aot {{name}}.core


Clean up stale show page cache entries.

Clean up stale show page cache entries.

--- src/afterglow/web/routes/show_control.clj
+++ src/afterglow/web/routes/show_control.clj
@@ -121,12 +121,23 @@
     (swap! clients update-in [page-id] assoc :button-states next-states)
     (when (seq changes) {:button-changes changes})))

+(defn- find-page-in-cache
+  "Looks up the cached show page status for the specified ID, cleaning
+  out any other entries which have not been used for a few minutes."
+  [page-id]
+  (doseq [[k v] @clients]
+    (when (and (number? k)
+               (not= k page-id)
+               (> (- (now) (:when v)) 12000))
+      (swap! clients dissoc k)))
+  (get @clients page-id))
+
 (defn get-ui-updates [id]
   "Route which delivers any changes which need to be applied to a show
   web interface to reflect differences in the current show state
   compared to when it was last updated."
   (let [page-id(Integer/valueOf id)]
-    (if-let [last-info (get @clients page-id)]
+    (if-let [last-info (find-page-in-cache page-id)]
       ;; Found the page tracking information, send an update.
       (let [[left bottom width height] (:view last-info)]
         (response (merge {}


Add the empty build template, used for testing

--- backend/src/circle/backend/build/template.clj
+++ backend/src/circle/backend/build/template.clj
@@ -22,7 +22,9 @@
                       :staging {:prefix [start-nodes
                                          checkout
                                          rvm/trust]
-                                :suffix [tag-revision]}})
+                                :suffix [tag-revision]}
+                      :empty {:prefix []
+                              :suffix []}})

 (defn find [name]
   (-> name keyword build-templates))


--- test/er_cassandra/model/alia/unique_key_test.clj
+++ test/er_cassandra/model/alia/unique_key_test.clj
@@ -39,7 +39,7 @@
   []
   (tu/create-table
    :mixed_unique_key_test
-   "(org_id timeuuid, id timeuuid, nick text, email set<text>, phone list<text>, primary key (org_id, id))")
+   "(org_id timeuuid, id timeuuid, nick text, email set<text>, phone list<text>, stuff text,  primary key (org_id, id))")
   (tu/create-table
    :mixed_unique_key_test_by_nick
    "(nick text, org_id timeuuid, id timeuuid, primary key (org_id, nick))")
@@ -603,6 +603,7 @@
                             :id ida})
               updated-a {:org_id org-id
                          :id ida
+                         :stuff "blah"
                          :nick "foo"
                          :email #{"foo@bar.com"}
                          :phone ["123456"]}
@@ -640,11 +641,13 @@
                                    {:org_id org-id :id idb}
                                    {:org_id org-id
                                     :id idb
+                                    :stuff "boo"
                                     :nick "foo"
                                     :email #{"foo@bar.com" "bar@baz.com" "blah@bloo.com"}
                                     :phone ["123456" "09876" "777777"]})
               updated-b {:org_id org-id
                          :id idb
+                         :stuff "boo"
                          :nick nil
                          :email #{"bar@baz.com" "blah@bloo.com"}
                          :phone ["09876" "777777"]}]
@@ -701,6 +704,7 @@
       (testing "updates and removals"
         (let [updated-b {:org_id org-id
                          :id idb
+                         :stuff "fooo"
                          :nick "bar"
                          :email #{"bar@baz.com" "woo@woo.com"}
                          :phone ["777777" "111111"]}
@@ -740,4 +744,72 @@

 (deftest upsert-primary-record-and-update-unique-keys-test
-  )
+  (let [m (create-mixed-unique-key-entity)
+        [org-id ida idb] [(uuid/v1) (uuid/v1) (uuid/v1)]]
+    (testing "success"
+      (let [updated-a {:org_id org-id
+                       :id ida
+                       :stuff "stuff"
+                       :nick "foo"
+                       :email #{"foo@bar.com"}
+                       :phone ["123456"]}
+            [record
+             acquire-failures] @(uk/upsert-primary-record-and-update-unique-keys
+                                 tu/*model-session*
+                                 m
+                                 updated-a)]
+        (is (= updated-a record))
+        (is (empty? acquire-failures))
+        (is (= updated-a (fetch-record :mixed_unique_key_test
+                                       [:org_id :id] [org-id ida])))))
+    (testing "if-not-exists failure"
+      (let [old-a (fetch-record :mixed_unique_key_test
+                                [:org_id :id] [org-id ida])
+            updated-a {:org_id org-id
+                       :id ida
+                       :stuff "blah"
+                       :nick "foofoo"
+                       :email #{"foofoo@bar.com"}
+                       :phone ["12345654321"]}
+            [record
+             errors] @(uk/upsert-primary-record-and-update-unique-keys
+                                 tu/*model-session*
+                                 m
+                                 updated-a
+                                 {:if-not-exists true})]
+        (is (= nil record))
+        (is (= [[:upsert/primary-record-upsert-error
+                 {:record updated-a,
+                  :if-not-exists true,
+                  :only-if nil,
+                  :tag :upsert/primary-record-upsert-error,
+                  :message "couldn't upsert primary record"}]]
+               errors))
+        (is (= old-a (fetch-record :mixed_unique_key_test
+                                   [:org_id :id] [org-id ida])))))
+
+    (testing "only-if failure"
+      (let [old-a (fetch-record :mixed_unique_key_test
+                                [:org_id :id] [org-id ida])
+            updated-a {:org_id org-id
+                       :id ida
+                       :stuff "wha"
+                       :nick "foofoo"
+                       :email #{"foofoo@bar.com"}
+                       :phone ["12345654321"]}
+            [record
+             errors] @(uk/upsert-primary-record-and-update-unique-keys
+                                 tu/*model-session*
+                                 m
+                                 updated-a
+                                 {:only-if [[:= :nick "bar"]]})]
+        (is (= nil record))
+        (is (= [[:upsert/primary-record-upsert-error
+                 {:record updated-a,
+                  :if-not-exists nil,
+                  :only-if [[:= :nick "bar"]],
+                  :tag :upsert/primary-record-upsert-error,
+                  :message "couldn't upsert primary record"}]]
+               errors))
+        (is (= old-a (fetch-record :mixed_unique_key_test
+                                   [:org_id :id] [org-id ida])))))))


Add helper function for styling side-panel tab

--- src/cljs/gtfve/components/side_panel.cljs
+++ src/cljs/gtfve/components/side_panel.cljs
@@ -15,6 +15,12 @@
                   :onClick (fn [e]
                              (raise! owner [:side-panel-changed key])
                              (.preventDefault e))} label]]))))
+
+(defn ^:private tab-class [tab key]
+  (join " "
+        ["tab-pane" "fade" "side"
+         (when (= tab key)
+           "active in")]))

 (defn side-panel [panel owner]
   (reify
@@ -36,10 +42,7 @@
                [:div.tab-content
                 ;; stops
                 [:div.tab-wrapper
-                 [:div {:className (join " "
-                                         ["tab-pane" "fade" "side"
-                                          (when (= tab :stops)
-                                            "active in")])}
+                 [:div {:className (tab-class tab :stops)}
                   [:form.form-horizontal
                    [:fieldset
                     [:div.form-group
@@ -57,14 +60,8 @@
                      [:th "Lat/Lng"]]]
                    [:tbody]]]
                  ;; routes
-                 [:div {:className (join " "
-                                         ["tab-pane" "fade" "side"
-                                          (when (= tab :routes)
-                                            "active in")])}
+                 [:div {:className (tab-class tab :routes)}
                   [:p "Routes panel"]]
                  ;; trips
-                 [:div {:className (join " "
-                                         ["tab-pane" "fade" "side"
-                                          (when (= tab :trips)
-                                            "active in")])}
+                 [:div {:className (tab-class tab :trips)}
                   [:p "Trips panel"]]]]])))))


Added try catch to prevent thread death in migration handler.

--- src/cmr/bootstrap/data/bulk_migration.clj
+++ src/cmr/bootstrap/data/bulk_migration.clj
@@ -213,18 +213,21 @@
   (let [db (:db system)
         channels ((juxt :provider-channel :collection-channel) system)] ; add other channels as needed
     (thread (while true
-              (let [[v ch] (alts!! channels)]
-                (cond
-                  ;; add other channels as needed
-                  (= (:provider-channel system) ch)
-                  (do
-                    (info "Processing provider" v)
-                    (copy-provider db v))
-
-                  (= (:collection-channel system) ch)
-                  (let [{:keys [provider-id collection-id]} v]
-                    (info "Processing collection" collection-id "for provider" provider-id)
-                    (copy-single-collection db provider-id collection-id))))))))
+              (try ; catch any errors and log them, but don't let the thread die
+                (let [[v ch] (alts!! channels)]
+                  (cond
+                    ;; add other channels as needed
+                    (= (:provider-channel system) ch)
+                    (do
+                      (info "Processing provider" v)
+                      (copy-provider db v))
+
+                    (= (:collection-channel system) ch)
+                    (let [{:keys [provider-id collection-id]} v]
+                      (info "Processing collection" collection-id "for provider" provider-id)
+                      (copy-single-collection db provider-id collection-id))))
+                (catch Throwable e
+                  (error (.getMessage e))))))))

 (comment


don't init ws in ws/remove-trace-ns!

don't init ws in ws/remove-trace-ns!

--- src/com/billpiel/mem_tracer/workspace.clj
+++ src/com/billpiel/mem_tracer/workspace.clj
@@ -43,7 +43,6 @@
 (defn remove-trace-ns!
   "Untrace all fns in the given name space."
   [ws ns-sym]
-  (init-workspace! ws)
   (swap! ws update-in [:traced] disj [:ns ns-sym])
   (trace/untrace-ns* ns-sym))


Reset password stub

Reset password stub

--- src/cylon/impl/signup.clj
+++ src/cylon/impl/signup.clj
@@ -147,6 +147,9 @@
        {:status 200
         :body "Thanks"}
        )
+
+     ::reset-password
+     (fn [req] {:status 200 :body "Thanks"})
      })

   (routes [this]


Implement a proper linking step

Implement a proper linking step

We use #yolo to create a label and @yolo to refer to it.

YOLO.

--- src/icfp2014/compiler.clj
+++ src/icfp2014/compiler.clj
@@ -76,37 +76,35 @@
     :else
     (throw (IllegalArgumentException. (format "Don't know how to compile %s which is %s" form (type form))))))

-(defn assign-addresses
-  [fns]
-  {:pre [(vector? fns)
-         (every? map? fns)]
-   :post [(every? (comp integer? :address) %)]}
-  (loop [funcs fns
-         index 0
-         address 0]
-    (if-let [func (get funcs index)]
-      (let [new-funcs (update-in funcs [index] assoc :address address)
-                           address (+ address (:length func))]
-                       (recur new-funcs (inc index) address))
-      funcs)))
+(defn resolve-references
+  [lines]
+  {:pre [(sequential? lines)
+         (every? string? lines)]
+   :post [(sequential? %)
+          (every? string? %)]}
+  (let [label-address (fn [index line]
+                        (if-let [label (last (first (re-seq #"#(\S+)" line)))]
+                          [label (str index)]))
+        labels (->> lines
+                    (map-indexed label-address)
+                    (remove nil?)
+                    (into {}))
+        resolve-label #(get labels (last %) (last %))]
+    (for [line lines]
+      (clojure.string/replace line #"@(\S+)" resolve-label))))

 (defn code->str
   [fn-addrs line]
   {:pre [(map? fn-addrs)]
    :post [(string? %)]}
   (condp = (first line)
-    :ldf
-    (format "LDF %d ; load function %s"
-            (fn-addrs (second line))
-            (second line))
-
     (let [[op & args] line]
       (string/join " " (cons (string/upper-case (name op)) args)))))

 (defn generate-main
   [fns]
   ;; This depends on the initial state we want
-  (let [code [[:ldc 0 "; define main"]
+  (let [code [[:ldc 0 "; #main"]
               (load-fn 0 fns 'step)
               [:cons]
               [:rtn]]
@@ -118,10 +116,10 @@
 (defn generate-prelude
   [fns]
   (let [loads  (for [func fns]
-                 [:ldf (:name func)])
-        code (concat [[:dum (count fns) "; define prelude"]]
+                 [:ldf (format "@%s" (:name func))])
+        code (concat [[:dum (count fns) "; #prelude"]]
                      loads
-                     [[:ldf 'main]
+                     [[:ldf "@main"]
                       [:rap (count fns)]
                       [:rtn]])
         prelude {:name 'prelude
@@ -133,18 +131,17 @@
   [fns]
   {:pre [(sequential? fns)
          (every? map? fns)]
-   :post [(string? %)]}
+   :post [(every? string? %)]}
   (let [fn-addrs (into {} (map (juxt :name :address) fns))]
     (->> (mapcat :code fns)
-         (map #(code->str fn-addrs %))
-         (string/join "\n"))))
+         (map #(code->str fn-addrs %)))))

 (defn compile-function
   [[name args & body :as code] fns]
   {:pre [(list? code)]}
   (let [fns (conj fns {:name name})
         [stmt & stmts] (mapcat #(compile-form args fns %) body)
-        code (concat [(conj stmt (format "; define %s" name))]
+        code (concat [(conj stmt (format "; #%s" name))]
                      stmts
                      [[:rtn]])]
     {:name name
@@ -164,5 +161,6 @@
         (-> fns
             (generate-main)
             (generate-prelude)
-            (assign-addresses)
-            (emit-code))))))
+            (emit-code)
+            (resolve-references)
+            (#(string/join "\n" %)))))))


installing pom.xml artifact along with jar

--- src/leiningen/install.clj
+++ src/leiningen/install.clj
@@ -1,9 +1,10 @@
 (ns leiningen.install
   "Install the project and its dependencies in your local repository."
   (:use [leiningen.jar :only [jar]]
-        [leiningen.pom :only [make-model]]
+        [leiningen.pom :only [pom make-model]]
         [clojure.contrib.java-utils :only [file]])
   (:import [org.apache.maven.artifact.installer ArtifactInstaller]
+           [org.apache.maven.project.artifact ProjectArtifactMetadata]
            [org.apache.maven.settings MavenSettingsBuilder]
            [org.apache.maven.artifact.repository ArtifactRepositoryFactory]
            [org.apache.maven.artifact.factory ArtifactFactory]
@@ -25,6 +26,9 @@
          "local" url (.lookup container ArtifactRepositoryLayout/ROLE "default")
          true))))

+(defn add-metadata [artifact pomfile]
+  (.addMetadata artifact (ProjectArtifactMetadata. artifact pomfile)))
+
 (defn make-artifact [model]
   (.createArtifactWithClassifier
    (.lookup container ArtifactFactory/ROLE)
@@ -36,6 +40,13 @@

 (defn install [project]
   (let [jarfile (file (jar project))
-        artifact (make-artifact (make-model project))
-        installer (.lookup container ArtifactInstaller/ROLE)]
-    (.install installer jarfile artifact (make-local-repo))))
+        model (make-model project)
+        artifact (make-artifact model)
+        installer (.lookup container ArtifactInstaller/ROLE)
+        local-repo (make-local-repo)]
+    ;; for packaging other than "pom" there should be "pom.xml"
+    ;; generated and installed in local repo
+    (if (not= "pom" (.getPackaging model))
+      (add-metadata artifact (file (pom project))))
+    (.install installer jarfile artifact local-repo)))
+


Make node text editable when nodes are added or edited.

--- evermind.web/src/evermind/web/core.cljs
+++ evermind.web/src/evermind/web/core.cljs
@@ -120,7 +120,24 @@
                     m
                     (fn [n]
                       (if (-> n :attributes :selected)
-                        (d/add-children n (d/set-attributes (d/create-node) {:text "New node"}))
+                         (let [node-text (.prompt js/window "Node content" "New node")]
+                           (if node-text
+                             (d/add-children n (d/set-attributes (d/create-node) {:text node-text}))
+                             n))
+                         n))))))
+
+(defn handle-update
+  [data]
+  (om/transact! data [:mindmap]
+                (fn [m]
+                  (d/map-tree
+                    m
+                    (fn [n]
+                      (if (-> n :attributes :selected)
+                        (let [node-text (.prompt js/window "Node content" (-> n :attributes :text))]
+                          (if node-text
+                            (d/set-attributes n (merge (-> n :attributes) {:text node-text}))
+                            n))
                         n))))))

 (defn handle-key-press [k data]
@@ -133,6 +150,8 @@
     100 (handle-delete data)
     ; a
     97 (handle-insert data)
+    ; e
+    101 (handle-update data)
     ; I
     73 data
     ; i


Updated to next version.

Updated to next version.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject plugboard "1.0"
+(defproject plugboard "1.1.0"
   :description "A library to promote correct HTTP semantics for Clojure web applications built on Compojure"
   :url "http://github.com/malcolmsparks/plugboard"
   :dependencies [[org.clojure/clojure "1.2.0"]


add prismatic/schema to project

add prismatic/schema to project

--- project.clj
+++ project.clj
@@ -3,4 +3,5 @@
   :url "http://example.com/FIXME"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
-  :dependencies [[org.clojure/clojure "1.7.0"]])
+  :dependencies [[org.clojure/clojure "1.7.0"]
+                 [prismatic/schema "1.0.1"]])


preparing for release 0.1.0

preparing for release 0.1.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject lein-jruby "0.1.0-SNAPSHOT"
+(defproject lein-jruby "0.1.0"
   :description "Run JRuby commands from Leiningen."
   :dependencies [[org.jruby/jruby-complete "1.6.7"]
                  ; [org.clojure/java.classpath "0.1.0"]


Remove Onyx from deps.

Remove Onyx from deps.

--- project.clj
+++ project.clj
@@ -11,9 +11,6 @@
                              :username :env
                              :password :env
                              :sign-releases false}}
-  :dependencies [[org.clojure/clojure "1.7.0"]
-                 ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
-                 [org.onyxplatform/onyx "0.9.4"]]
   :plugins [[lein-set-version "0.4.1"]]
   :profiles {:dev {:plugins [[lein-set-version "0.4.1"]
                              [lein-update-dependency "0.1.2"]


Upgrade to latest Om (0.6.2) to fix the crash that I've been debugging for the last few hours.  Very grateful, but still 'arrgghh!'.

--- project.clj
+++ project.clj
@@ -13,7 +13,7 @@
                  [org.clojure/clojurescript "0.0-2202"]
                  [org.clojure/core.async "0.1.267.0-0d7780-alpha"]
                  #_[org.clojure/core.async "0.1.278.0-76b25b-alpha"]
-                 [om "0.5.0"]
+                 [om "0.6.2"]
                  [com.facebook/react "0.9.0.1"]
                  ;; [TODO] Put back once cleaned up to prevent reader crash starting nrepl
                  #_[degel/degel-clojure-utils "0.1.21"]]


Increment version.

Increment version.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clj-ravendb "0.3.0"
+(defproject clj-ravendb "0.4.0"
   :description "A clojure library for consuming a RavenDB rest api."
   :url "https://bitbucket.org/markwoodhall/clj-ravendb"
   :license {:name "Eclipse Public License"


chore(build): prefix fix?

chore(build): prefix fix?

--- project.clj
+++ project.clj
@@ -22,7 +22,7 @@
   :release-tasks [["vcs" "assert-committed"]
                   ["change" "version" "leiningen.release/bump-version" "release"]
                   ["vcs" "commit"]
-                  ["vcs" "tag" "" "--no-sign"]
+                  ["vcs" "tag" "v" "--no-sign"]
                   ["deploy"]
                   ["change" "version" "leiningen.release/bump-version"]
                   ["vcs" "commit"]


b64url: Incremented version number.

b64url: Incremented version number.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject gmail-clj "0.6.2"
+(defproject gmail-clj "0.6.3"
   :description "A simple Clojure library to interface with the GMail API (read: not imap)"
   :url "https://github.com/mikeflynn/gmail-clj"
   :license {:name "Eclipse Public License"


Version 1.0.21

Version 1.0.21

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject re-frame/lein-template "1.0.21-SNAPSHOT"
+(defproject re-frame/lein-template "1.0.21"
   :description "Leiningen template for a Reagent web app that implements the re-frame pattern."
   :url "https://github.com/day8/re-frame-template"
   :license {:name "MIT"}


Version 1.5.6-SNAPSHOT

Version 1.5.6-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (def http-async-client-version "1.3.0")

-(defproject puppetlabs/pcp-broker "1.5.5"
+(defproject puppetlabs/pcp-broker "1.5.6-SNAPSHOT"
   :description "PCP fabric messaging broker"
   :url "https://github.com/puppetlabs/pcp-broker"
   :license {:name "Apache License, Version 2.0"


(SERVER-2654) Include BC in ezbake profile for building

--- project.clj
+++ project.clj
@@ -152,6 +152,7 @@
                                                ;; clojure version here, because without it, lein
                                                ;; brings in its own version.
                                                [org.clojure/clojure]
+                                               [org.bouncycastle/bcpkix-jdk15on]
                                                [puppetlabs/puppetserver ~ps-version]
                                                [puppetlabs/trapperkeeper-webserver-jetty9]]
                       :plugins [[puppetlabs/lein-ezbake "2.1.4"]]


oc.lib ver bump.

oc.lib ver bump.

--- project.clj
+++ project.clj
@@ -39,7 +39,7 @@
     ;; Pretty-print clj and EDN https://github.com/kkinnear/zprint
     [zprint "0.4.10"]
     ;; Library for OC projects https://github.com/open-company/open-company-lib
-    [open-company/lib "0.16.17"]
+    [open-company/lib "0.16.18"]
     ;; In addition to common functions, brings in the following common dependencies used by this project:
     ;; httpkit - HTTP client/server http://www.http-kit.org/
     ;; defun - Erlang-esque pattern matching for Clojure functions https://github.com/killme2008/defun


Fix project jar name

Fix project jar name

--- project.clj
+++ project.clj
@@ -11,7 +11,7 @@
                  [com.novemberain/monger "2.0.0-rc1"]]
   :main ^:skip-aot karmanaut.core
   :target-path "target/%s"
-  :jar-name "karmanut.jar"
+  :jar-name "karmanaut.jar"
   :uberjar-name "karmanaut-standalone.jar"
   :manifest {"Implementation-Version" ~project-version}
   :profiles {:uberjar {:aot :all}})


Fix for lein gorilla not working with my setup

--- project.clj
+++ project.clj
@@ -8,14 +8,15 @@
   :license {:name "MIT"}
   :dependencies [[org.clojure/clojure "1.6.0"]
                  [http-kit "2.1.16"]
-                 [ring/ring-json "0.2.0"]
+                 [ring/ring-json "0.3.1"]
                  [cheshire "5.0.2"]
-                 [compojure "1.1.6"]
+                 [compojure "1.1.8"]
                  [org.slf4j/slf4j-api "1.7.5"]
                  [ch.qos.logback/logback-classic "1.0.13"]
                  [clojure-complete "0.2.3"]
                  [gorilla-renderable "1.0.0"]
                  [org.clojure/data.codec "0.1.0"]
+                 [javax.servlet/servlet-api "2.5"]
                  [grimradical/clj-semver "0.2.0" :exclusions [org.clojure/clojure]]]
   :main ^:skip-aot gorilla-repl.core
   :target-path "target/%s"


Revert back to snapshot version.

Revert back to snapshot version.

--- project.clj
+++ project.clj
@@ -1,5 +1,5 @@
-(defproject cli4clj "1.2.4"
-;(defproject cli4clj "1.2.4-SNAPSHOT"
+;(defproject cli4clj "1.2.4"
+(defproject cli4clj "1.2.5-SNAPSHOT"
   :description "Create simple interactive CLIs for Clojure applications."
   :url "https://github.com/ruedigergad/cli4clj"
   :license {:name "Eclipse Public License"


Back to snapshot

Back to snapshot

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojurewerkz/cassaforte "1.0.0-rc5"
+(defproject clojurewerkz/cassaforte "1.0.0-rc6-SNAPSHOT"
   :min-lein-version "2.0.0"
   :description "A Clojure client for Apache Cassandra"
   :url "http://clojurecassandra.info"


bump to cascading 2.0

bump to cascading 2.0

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
   :dependencies [[yieldbot/elephantdb "0.2.0-wip5"
                   :exclusions [org.apache.hadoop/hadoop-core]]
                  [org.slf4j/slf4j-api "1.6.1"]
-                 [cascading/cascading-hadoop "2.0.0-wip-281"
+                 [cascading/cascading-hadoop "2.0.0"
                   :exclusions [org.codehaus.janino/janino
                                org.apache.hadoop/hadoop-core]]]
   :dev-dependencies [[org.apache.hadoop/hadoop-core "0.20.2-dev"]


Added standard banner comment to project.clj.

--- project.clj
+++ project.clj
@@ -1,3 +1,19 @@
+;; Copyright 2010 Malcolm Sparks.
+;;
+;; This file is part of Plugboard.
+;;
+;; Plugboard is free software: you can redistribute it and/or modify it under the
+;; terms of the GNU Affero General Public License as published by the Free
+;; Software Foundation, either version 3 of the License, or (at your option) any
+;; later version.
+;;
+;; Plugboard is distributed in the hope that it will be useful but WITHOUT ANY
+;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+;; A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
+;; details.
+;;
+;; Please see the LICENSE file for a copy of the GNU Affero General Public License.
+
 (defproject plugboard "1.5.0-SNAPSHOT"
   :description "A library to promote correct HTTP semantics for Clojure web applications built on Compojure"
   :url "http://github.com/malcolmsparks/plugboard"


Prepare for next release cycle.

Prepare for next release cycle.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject org.onyxplatform/onyx-metrics "0.8.0.8"
+(defproject org.onyxplatform/onyx-metrics "0.8.0.9-SNAPSHOT"
   :description "Instrument Onyx workflows"
   :url "https://github.com/MichaelDrogalis/onyx"
   :license {:name "Eclipse Public License"


Add generating of API documentation using codox

--- project.clj
+++ project.clj
@@ -1,5 +1,5 @@
 (defproject buzz "0.1.0-SNAPSHOT"
-  :description "Asynchronous state management based on messages with pure functions."
+  :description "Asynchronous state management based on messages."
   :url "https://github.com/marcinwaldowski/buzz"
   :license {:name "MIT License"
             :url "http://opensource.org/licenses/MIT"}
@@ -14,7 +14,8 @@
   :plugins [[lein-figwheel "0.5.11"]
             [lein-cljsbuild "1.1.7" :exclusions [[org.clojure/clojure]]]
             [lein-doo "0.1.7"]
-            [lein-npm "0.6.2"]]
+            [lein-npm "0.6.2"]
+            [lein-codox "0.10.3"]]

   :npm {:devDependencies [[karma "1.7.0"]
                           [karma-cljs-test "0.1.0"]
@@ -25,6 +26,7 @@
   :resource-paths []

   :doo {:alias {:browsers [:chrome :firefox]}}
+  :codox {:namespaces [buzz.core]}

   :cljsbuild {:builds
               [{:id "dev"
@@ -55,7 +57,7 @@
                                   [com.cemerick/piggieback "0.2.2"]
                                   [lein-doo "0.1.7"]]

-                   :source-paths ["src" "dev"]
+                   :source-paths ["dev"]
                    :resource-paths ["resources"]
                    :repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}
                    :clean-targets ^{:protect false} ["resources/public/js"


Update dependencies

Update dependencies

--- project.clj
+++ project.clj
@@ -5,19 +5,19 @@
   :min-lein-version "2.0.0"
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [compojure "1.6.1"]
-                 [ring/ring-defaults "0.3.1"]
+                 [ring/ring-defaults "0.3.2"]
                  [ring/ring-devel "1.6.3"]
                  [org.immutant/web "2.1.10"]
-                 [selmer "1.11.7"]
+                 [selmer "1.11.8"]
                  [cheshire "5.8.0"]
                  [org.postgresql/postgresql "42.2.2"]
-                 [org.clojure/java.jdbc "0.7.6"]
-                 [honeysql "0.9.2"]
-                 [clj-time "0.14.3"]
+                 [org.clojure/java.jdbc "0.7.7"]
+                 [honeysql "0.9.3"]
+                 [clj-time "0.14.4"]
                  [buddy/buddy-auth "2.1.0"]
                  [com.yubico/yubico-validation-client2 "3.0.2"]
-                 [org.apache.commons/commons-text "1.3"]
-                 [org.clojure/tools.logging "0.4.0"]
+                 [org.apache.commons/commons-text "1.4"]
+                 [org.clojure/tools.logging "0.4.1"]
                  [org.slf4j/slf4j-log4j12 "1.7.25"]]
   :main ktra-indexer.handler
   :aot [ktra-indexer.handler


Upgrade to 0.12.7.

Upgrade to 0.12.7.

--- project.clj
+++ project.clj
@@ -1,9 +1,9 @@
-(defproject workshop "0.12.6"
+(defproject workshop "0.12.7"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.8.0"]
                  ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
-                 [org.onyxplatform/onyx "0.12.6"]
+                 [org.onyxplatform/onyx "0.12.7"]
                  [org.slf4j/slf4j-api "1.7.12"]
                  [org.slf4j/slf4j-nop "1.7.12"]]
   :profiles {:dev {:dependencies [[org.clojure/tools.namespace "0.2.10"]


Bumping dependencies

Bumping dependencies

--- project.clj
+++ project.clj
@@ -2,19 +2,19 @@
   :license {:name "Eclipse Public License"
             :url  "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.7.0"]
-                 [org.clojure/clojurescript "1.7.145"]
+                 [org.clojure/clojurescript "1.7.170"]
                  [org.clojure/core.async "0.2.371"]
                  [com.cognitect/transit-cljs "0.8.225"]
                  [cljsjs/react-bootstrap "0.25.2-0" :exclusions [org.webjars.bower/jquery]]
                  [khroma "0.2.0-SNAPSHOT"]
                  [prismatic/dommy "1.1.0"]
-                 [re-frame "0.4.1" :exclusions [cljsjs/react]]
+                 [re-frame "0.5.0" :exclusions [cljsjs/react]]
                  ]
   :source-paths ["src/ui" "src/common" "src/background" "src/content"]
   :test-paths ["test"]

-  :plugins [[lein-cljsbuild "1.1.0"]
-            [lein-chromebuild "0.3.0"]
+  :plugins [[lein-cljsbuild "1.1.1"]
+            [lein-chromebuild "0.3.1"]
             [lein-doo "0.1.6-SNAPSHOT"]
             ]


fix repos

fix repos

--- project.clj
+++ project.clj
@@ -4,9 +4,9 @@
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :repositories {"cloudera" "https://repository.cloudera.com/artifactory/cloudera-repos/"
-                 "yieldbot-snapshots" {:url "s3p://maven.yieldbot.com/snapshots/"
+                 "snapshots" {:url "s3p://maven.yieldbot.com/snapshots/"
                                        :username :env :passphrase :env}
-                 "yieldbot-releases" {:url "s3p://maven.yieldbot.com/releases/"
+                 "releases" {:url "s3p://maven.yieldbot.com/releases/"
                                       :username :env :passphrase :env}}
   :dependencies [[org.clojure/clojure "1.6.0"]
                  [yieldbot/flambo "0.5.0-SNAPSHOT"]


Get ci task passing again (in lein 2.5.0)

--- project.clj
+++ project.clj
@@ -36,6 +36,7 @@
   :profiles {:dev {:dependencies [[com.keminglabs/cljx "0.3.2"]
                                   [org.clojure/clojurescript "0.0-2234"]]
                    :plugins      [[com.keminglabs/cljx "0.3.2"]
+                                  [org.clojure/clojurescript "0.0-2234"]
                                   [lein-cljsbuild "1.0.3"]]}}

   :cljsbuild {:builds        {:dev {:source-paths   ["target/classes" "src/cljs" "target/test-classes" "spec/cljs"]


Add EAP profile.

Add EAP profile.

--- project.clj
+++ project.clj
@@ -18,8 +18,15 @@
   :plugins [[lein-immutant "2.0.0"]]
   :main demo.core
   :uberjar-name "demo-standalone.jar"
-  :profiles {:uberjar {:aot [demo.core]}}
   :min-lein-version "2.4.0"
   :jvm-opts ["-Dhornetq.data.dir=target/hornetq-data"
              "-Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=target/ObjectStore"]
-  :aliases {"msg-client" ["run" "-m" "demo.remote-messaging-client"]})
+  :aliases {"msg-client" ["run" "-m" "demo.remote-messaging-client"]}
+  :profiles {:uberjar {:aot [demo.core]}
+             :eap
+             {:exclusions [org.hornetq/hornetq-jms-server org.hornetq/hornetq-server
+                           org.jboss.narayana.jta/narayana-jta]
+              :dependencies [[org.hornetq/hornetq-jms-server "2.3.25.Final"]
+                             [org.hornetq/hornetq-server "2.3.25.Final"]
+                             [org.jboss.jbossts.jta/narayana-jta "4.17.29.Final"]]
+              :immutant {:war {:resource-paths ["eap-resources"]}}}})


release: 1.0.0-SNAPSHOT

release: 1.0.0-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject pkuipgw "0.1.0"
+(defproject pkuipgw "1.0.0-SNAPSHOT"
   :description "PKU IP Gateway connection handler."
   :url "https://github.com/PKUHelper/pkuipgw"
   :license {:name "Eclipse Public License"


update suchwow

update suchwow

--- project.clj
+++ project.clj
@@ -8,7 +8,7 @@

   :dependencies [[org.clojure/clojure "1.7.0"]
                  [swiss-arrows "1.0.0" :exclusions [org.clojure/clojure]]
-                 [marick/suchwow "3.1.1" :exclusions [org.clojure/clojure]]
+                 [marick/suchwow "3.4.0" :exclusions [org.clojure/clojure]]
                  [slingshot "0.12.2"]]

   :profiles {:dev {:dependencies [[midje "1.7.0" :exclusions [org.clojure/clojure]]]}


Version 0.2.40

Version 0.2.40

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject yetibot.core "0.2.40-SNAPSHOT"
+(defproject yetibot.core "0.2.40"
   :description "Core yetibot utilities, extracted for shared use among yetibot
                 and its various plugins"
   :url "https://github.com/devth/yetibot.core"


Version 0.1.7-SNAPSHOT

Version 0.1.7-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject day8.re-frame/trace "0.1.6"
+(defproject day8.re-frame/trace "0.1.7-SNAPSHOT"
   :description "Tracing and developer tools for re-frame apps"
   :url         "https://github.com/Day8/re-frame-trace"
   :license     {:name "MIT"}


Update lib-noir 0.9.4 -> 0.9.5

Update lib-noir 0.9.4 -> 0.9.5


Update dependencies.

Update dependencies.

--- project.clj
+++ project.clj
@@ -14,7 +14,7 @@
   ;; All profile dependencies
   :dependencies [
     ;; Lisp on the JVM http://clojure.org/documentation
-    [org.clojure/clojure "1.10.0-RC1"]
+    [org.clojure/clojure "1.10.0-RC2"]
     ;; Command-line parsing https://github.com/clojure/tools.cli
     [org.clojure/tools.cli "0.4.1"]
     ;; Web application library https://github.com/ring-clojure/ring
@@ -37,9 +37,9 @@
     ;; Utility functions https://github.com/weavejester/medley
     [medley "1.0.0"]
     ;; Pretty-print clj and EDN https://github.com/kkinnear/zprint
-    [zprint "0.4.12"]
+    [zprint "0.4.13"]
     ;; Library for OC projects https://github.com/open-company/open-company-lib
-    [open-company/lib "0.16.21"]
+    [open-company/lib "0.16.25-alpha1"]
     ;; In addition to common functions, brings in the following common dependencies used by this project:
     ;; httpkit - HTTP client/server http://www.http-kit.org/
     ;; defun - Erlang-esque pattern matching for Clojure functions https://github.com/killme2008/defun
@@ -127,7 +127,7 @@
         ;; Dead code finder https://github.com/venantius/yagni
         [venantius/yagni "0.1.6" :exclusions [org.clojure/clojure]]
         ;; Pretty-print clj and EDN https://github.com/kkinnear/lein-zprint
-        [lein-zprint "0.3.12" :exclusions [org.clojure/clojure]]
+        [lein-zprint "0.3.13" :exclusions [org.clojure/clojure]]
       ]
     }]
     :repl-config [:dev {
@@ -209,7 +209,7 @@
     ;; Disable some linters that are enabled by default
     ;; contant-test - just seems mostly ill-advised, logical constants are useful in something like a `->cond`
     ;; wrong-arity - unfortunate, but it's failing on 3/arity of sqs/send-message
-    ;; implicit-dependencies - uhh, just seems broken
+    ;; implicit-dependencies - uhh, just seems dumb
     :exclude-linters [:constant-test :wrong-arity :implicit-dependencies]
     ;; Enable some linters that are disabled by default
     :add-linters [:unused-namespaces :unused-private-vars] ; :unused-locals]


Update library version

Update library version

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject bitcoin "0.1.0-SNAPSHOT"
+(defproject bitcoin "0.1.1-SNAPSHOT"
   :description "offline paper wallet generator"
   :url "http://diegobasch.com"
   :license {:name "Eclipse Public License"


Upgrade postal to 2.0.1 and clojure-mail to 0.1.6

--- project.clj
+++ project.clj
@@ -45,8 +45,8 @@
                  [tentacles "0.5.1" :exclusions [[org.clojure/clojure]]]

                  ; email
-                 [com.draines/postal "1.9.0"]
-                 [clojure-mail "0.1.4"]
+                 [com.draines/postal "2.0.1"]
+                 [clojure-mail "0.1.6"]

                  ; chat protocols
                  [irclj "0.5.0-alpha4"]


Use onyx-visualization with zoom fix

Use onyx-visualization with zoom fix

--- project.clj
+++ project.clj
@@ -22,7 +22,7 @@
 		 ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
 		 [org.onyxplatform/onyx "0.9.10-beta1"]
 		 [org.onyxplatform/lib-onyx "0.9.7.1" :exclusions [ring-jetty-component org.onyxplatform/onyx]]
-                 [org.onyxplatform/onyx-visualization "0.3.0"]
+                 [org.onyxplatform/onyx-visualization "0.4.0"]
 		 [timothypratley/patchin "0.3.5"]
 		 [com.cognitect/transit-clj "0.8.285"]
 		 [com.cognitect/transit-cljs "0.8.237"]
@@ -109,5 +109,6 @@
 				   :compiler {:output-to "resources/public/js/app.js"
 					      :output-dir "resources/public/js/advanced"
 					      :source-map "resources/public/js/app.js.map"
+                                              :externs ["src/js/d3_externs.js"]
 					      :optimizations :advanced
 					      :pretty-print false}}}}}})


Release version 0.8.3.0.

Release version 0.8.3.0.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject org.onyxplatform/onyx-dashboard "0.8.2.1-SNAPSHOT"
+(defproject org.onyxplatform/onyx-dashboard "0.8.3.0"
   :description "Dashboard for the Onyx distributed computation system"
   :url "http://github.com/lbradstreet/onyx-dashboard"
   :license {:name "Eclipse Public License"
@@ -21,7 +21,7 @@
                  [cljs-uuid "0.0.4"]
                  [ring "1.3.2"]
                  ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
-                 [org.onyxplatform/onyx "0.8.2"]
+                 [org.onyxplatform/onyx "0.8.3"]
                  [com.cognitect/transit-clj "0.8.275"]
                  [com.cognitect/transit-cljs "0.8.220"]
                  [cljsjs/moment "2.9.0-0"]


Bump to v0.15.0 and release! :tada:

Bump to v0.15.0 and release! :tada:

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject chestnut/lein-template "0.15.0-SNAPSHOT"
+(defproject chestnut/lein-template "0.15.0"
   :description "A Leiningen template for a minimal but complete Clojure/ClojureScript setup."
   :url "https://github.com/plexus/chestnut"


Updated CLJS

Updated CLJS

to cljs 1.9

--- project.clj
+++ project.clj
@@ -1,7 +1,7 @@
 (defproject org.clojars.zubairq/coils "0.7.5-beta"
   :dependencies [
                   [org.clojure/clojure "1.8.0" :scope "provided"]
-                  [org.clojure/clojurescript "1.8.40" :scope "provided"]
+                  [org.clojure/clojurescript "1.9.36" :scope "provided"]
                   [org.omcljs/om "1.0.0-alpha30"]
                   [org.clojure/core.async "0.2.374" :scope "provided"]
                   [cljsjs/react "0.14.3-0"]


put back right main

put back right main

--- project.clj
+++ project.clj
@@ -12,8 +12,8 @@
   :resource-paths ["test/resources"]
   :repl-options {:init-ns onyx-java.entity-test
                  :caught clj-stacktrace.repl/pst+ }
-  :main ^:skip-aot onyx-java.test
   :prep-tasks  [["compile"] "javac" "compile"]
+  :main ^:skip-aot onyx-java.entity-test
   :profiles {:uberjar {:aot :all}
              :dev {:dependencies [[org.clojure/tools.namespace "0.2.10"]]
                    :plugins [[lein-update-dependency "0.1.2"]


Next development iteration

Next development iteration

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject lein-droid/lein-droid "0.2.0-beta2"
+(defproject lein-droid/lein-droid "0.2.0-SNAPSHOT"
   :description "Plugin for easy Clojure/Android development and deployment"
   :url "https://github.com/alexander-yakushev/lein-droid"
   :license {:name "Eclipse Public License"


removed twitter repositories from project clj

--- project.clj
+++ project.clj
@@ -2,9 +2,7 @@
   :source-path "src/clj"
   :java-source-path "src/jvm"
   :javac-options {:debug "true" :fork "true"}
-  :repositories {;;"releases" "http://artifactory.local.twitter.com/libs-releases-local"
-                 ;;"snapshots" "http://artifactory.local.twitter.com/libs-snapshots-local"
-                 "conjars" "http://conjars.org/repo/"}
+  :repositories {"conjars" "http://conjars.org/repo/"}
   :dependencies [[com.twitter/kafka_2.9.2 "0.7.0"
                   :exclusions [org.apache.zookeeper/zookeeper
                                log4j/log4j]]]


Add simple helper function to retrieve database

--- src/gorillalabs/tesla/component/mongo.clj
+++ src/gorillalabs/tesla/component/mongo.clj
@@ -18,4 +18,7 @@

 (mnt/defstate mongo
               :start (start)
-              :stop (stop mongo))+              :stop (stop mongo))
+
+(defn getDatabase [name]
+      (mg/get-db mongo name))


updates server deps

updates server deps

--- project.clj
+++ project.clj
@@ -3,8 +3,8 @@
   :url "https://github.com/build-canaries/nevergreen"
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [ring "1.6.3" :exclusions [org.eclipse.jetty/jetty-server]]
-                 [org.eclipse.jetty/jetty-server "9.4.9.v20180320"]
-                 [compojure "1.6.0"]
+                 [org.eclipse.jetty/jetty-server "9.4.10.RC0"]
+                 [compojure "1.6.1"]
                  [environ "1.1.0"]
                  [cheshire "5.8.0"]
                  [clj-cctray "1.0.0"]


rip off cams comments

rip off cams comments

--- project.clj
+++ project.clj
@@ -59,14 +59,14 @@
                                com.sun.jmx/jmxri]]
                  [medley "0.8.3"]                                     ; lightweight lib of useful functions
                  [metabase/throttle "1.0.1"]                          ; Tools for throttling access to API endpoints and other code pathways
-                 [mysql/mysql-connector-java "5.1.39"]                ; MySQL JDBC driver (don't upgrade to 6.0+ yet -- that's Java 8 only)
+                 [mysql/mysql-connector-java "5.1.39"]                ;  !!! Don't upgrade to 6.0+ yet -- that's Java 8 only !!!
                  [net.sf.cssbox/cssbox "4.12"                         ; HTML / CSS rendering
                   :exclusions [org.slf4j/slf4j-api]]
                  [net.sourceforge.jtds/jtds "1.3.1"]                  ; Open Source SQL Server driver
                  [org.liquibase/liquibase-core "3.5.2"]               ; migration management (Java lib)
                  [org.slf4j/slf4j-log4j12 "1.7.21"]                   ; abstraction for logging frameworks -- allows end user to plug in desired logging framework at deployment time
                  [org.yaml/snakeyaml "1.17"]                          ; YAML parser (required by liquibase)
-                 [org.xerial/sqlite-jdbc "3.8.11.2"]                  ; SQLite driver
+                 [org.xerial/sqlite-jdbc "3.8.11.2"]                  ; SQLite driver !!! DO NOT UPGRADE THIS UNTIL UPSTREAM BUG IS FIXED -- SEE https://github.com/metabase/metabase/issues/3753 !!!
                  [postgresql "9.3-1102.jdbc41"]                       ; Postgres driver
                  [io.crate/crate-jdbc "1.13.1"]                       ; Crate JDBC driver
                  [io.crate/crate-client "0.56.0"]                     ; Crate Java client (used by Crate JDBC)


Prepare for next release cycle.

Prepare for next release cycle.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject onyx-app/lein-template "0.13.0.0"
+(defproject onyx-app/lein-template "0.13.0.1-SNAPSHOT"
   :description "Onyx Leiningen application template"
   :url "https://github.com/onyx-platform/onyx-template"
   :license {:name "MIT License"


bumped version

bumped version

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject selmer "0.4.5"
+(defproject selmer "0.4.6"
   :description "Django templates for Clojure"
   :url "https://github.com/yogthos/Selmer"
   :license {:name "Eclipse Public License"


commented out checkouts dep

commented out checkouts dep

--- project.clj
+++ project.clj
@@ -19,7 +19,7 @@

   :cljsbuild {
               :builds [{:id "examples"
-                        :source-paths ["src/frontier" "examples/frontier_examples"]
+                        :source-paths ["src/frontier" "examples/frontier_examples" #_"checkouts/devcards/src"]
                         :compiler {:output-to "resources/public/js/compiled/examples.js"
                                    :output-dir "resources/public/js/compiled/out"
                                    :externs ["resources/public/js/externs/jquery-1.9.js"]


piggieback 0.2.2

piggieback 0.2.2

--- project.clj
+++ project.clj
@@ -10,7 +10,7 @@
             [lein-cljsbuild "1.1.5" :exclusions [[org.clojure/clojure]]]]
   :sources-paths ["src"]
   :profiles {:dev {:dependencies [[binaryage/devtools "0.9.4"]
-                                  [com.cemerick/piggieback "0.2.1"]
+                                  [com.cemerick/piggieback "0.2.2"]
                                   [org.clojure/test.check "0.9.0" :scope "test"]
                                   [figwheel-sidecar "0.5.10"]]
                    :source-paths ["src" "dev"] }}


Bump version. Skipped one due to deployment issues.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject cavm "0.1.3-SNAPSHOT"
+(defproject cavm "0.1.5-SNAPSHOT"
   :description "Cancer Analytics Virtual Machine"
   :url "http://example.com/FIXME"
   :license {:name "Eclipse Public License"


Version 0.0.42-SNAPSHOT

Version 0.0.42-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject pe-fp-core "0.0.41"
+(defproject pe-fp-core "0.0.42-SNAPSHOT"
   :description "A Clojure library encapsulating the various domain objects associated with the Gas Jot application."
   :url "https://github.com/evanspa/pe-fp-core"
   :license {:name "MIT"


Bumping version number

Bumping version number

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject memento "0.2"
+(defproject memento "0.3-SNAPSHOT"
   :description "Memento mori"
   :url "https://mementoapp.herokuapp.com/"


New dependency: clj-csv

New dependency: clj-csv

--- project.clj
+++ project.clj
@@ -18,6 +18,7 @@
     :dependencies [[org.clojure/clojure "1.6.0"]
                    [org.clojure/java.jdbc "0.3.5"]
                    [org.clojure/tools.cli "0.3.1"]
+                   [org.clojure/data.csv  "0.1.2"]
                    [org.xerial/sqlite-jdbc "3.7.2"]
                    [clojure-ini "0.0.1"]
                    [ring/ring-core "1.3.2"]


increment version number

increment version number

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject enslin/lein-template "0.1.0"
+(defproject enslin/lein-template "0.2.0"
   :description "Desktop app template, for Leiningen, using web technology."
   :url "https://github.com/david-rc-dayton/enslin-template"
   :license {:name "The MIT License (MIT)"


Upgraded to latest korma

Upgraded to latest korma

--- project.clj
+++ project.clj
@@ -25,7 +25,7 @@
    [postgresql/postgresql "8.4-702.jdbc4"]
    [org.apache.tomcat/tomcat-jdbc "7.0.25"]
    [org.clojure/java.jdbc "0.1.3"]
-   [korma "0.3.0-beta9" :exclusions [log4j/log4j] ]
+   [korma "0.3.0-beta10" :exclusions [log4j/log4j] ]
    [lobos "1.0.0-SNAPSHOT"]
    ]
   :dev-dependencies


0.1.0 Release

0.1.0 Release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject think.datatype "0.1.0-SNAPSHOT"
+(defproject think.datatype "0.1.0"
   :description "Library for efficient manipulation of contiguous mutable containers of primitive datatypes."
   :url "http://github.com/thinktopic/think.datatype"
   :license {:name "Eclipse Public License"


Version 1.1.8-SNAPSHOT

Version 1.1.8-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject puppetlabs/lein-ezbake "1.1.7"
+(defproject puppetlabs/lein-ezbake "1.1.8-SNAPSHOT"
   :description "A system for building packages for trapperkeeper-based applications"
   :url "https://github.com/puppetlabs/ezbake"
   :license {:name "Apache License 2.0"


Version 1.1.0, depending on clojure 1.3.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clj-record "1.1.0-SNAPSHOT"
+(defproject clj-record "1.1.0"
   :description "A pseudo-port of ActiveRecord to the Clojure programming language"
   :url "http://github.com/duelinmarkers/clj-record"
   :dependencies [[org.clojure/clojure "1.3.0"]


Update prismatic/schema to 1.0.0-alpha1

Update prismatic/schema to 1.0.0-alpha1

--- project.clj
+++ project.clj
@@ -15,7 +15,7 @@
                  [com.draines/postal "1.11.3"]
                  [version-clj "0.1.2"]
                  [clojurewerkz/quartzite "2.0.0"]
-                 [prismatic/schema "0.4.4"]
+                 [prismatic/schema "1.0.0-alpha1"]
                  [com.stuartsierra/component "0.2.3"]
                  [me.raynes/fs "1.4.6"]
                  [com.googlecode.streamflyer/streamflyer-core "1.1.3"]


Bump the tools.namespace dep

Bump the tools.namespace dep

--- project.clj
+++ project.clj
@@ -7,7 +7,7 @@

   :dependencies [[tamarin "0.1.2"]
                  [org.clojure/tools.reader "1.3.2"]
-                 [org.clojure/tools.namespace "0.2.11"]]
+                 [org.clojure/tools.namespace "0.3.1"]]
   :exclusions [org.clojure/clojure] ; see versions matrix below

   :aot [com.billpiel.sayid.sayid-multifn]


bump up version due to sem ver convension

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject rex "0.0.1-SNAPSHOT"
+(defproject rex "0.1.0-SNAPSHOT"
   :description "simple state management for client side development"
   :url "https://github.com/yantonov/rex"
   :license {:name "Eclipse Public License"


lein-release plugin: preparing 0.1.16 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject eureka "0.1.16-SNAPSHOT"
+(defproject eureka "0.1.16"

   :description "A Clojure library that wraps the Curator service discovery/registration API."


Version 2.3.2-SNAPSHOT

Version 2.3.2-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject wb-es "2.3.1"
+(defproject wb-es "2.3.2-SNAPSHOT"
   :description "FIXME: write description"
   :url "http://example.com/FIXME"
   :min-lein-version "2.7.0"


don't aot compile, though, b/c it breaks everything

--- project.clj
+++ project.clj
@@ -87,7 +87,7 @@

   :pedantic? :abort

-  :main pc.init
+  :main ^:skip-aot pc.init

   :jvm-opts ["-Djava.net.preferIPv4Stack=true"
              "-server"


bumped up version

bumped up version

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject reagent/lein-template "0.7.8"
+(defproject reagent/lein-template "0.7.9"
   :description "A Leiningen template for a ClojureScript setup with Figwheel, Austin, and Reagent."
   :url "https://github.com/reagent-project/reagent-template"
   :license {:name "MIT License"


lein-release plugin: preparing 0.40 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject exploud "0.40-SNAPSHOT"
+(defproject exploud "0.40"
   :description "Exploud service"
   :url "http://wikis.in.nokia.com/NokiaMusicArchitecture/Exploud"


Version 0.2.47

Version 0.2.47

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject yetibot.core "0.2.47-SNAPSHOT"
+(defproject yetibot.core "0.2.47"
   :description "Core yetibot utilities, extracted for shared use among yetibot
                 and its various plugins"
   :url "https://github.com/devth/yetibot.core"


Version 1.1.4-SNAPSHOT

Version 1.1.4-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject puppetlabs/lein-ezbake "1.1.3"
+(defproject puppetlabs/lein-ezbake "1.1.4-SNAPSHOT"
   :description "A system for building packages for trapperkeeper-based applications"
   :url "https://github.com/puppetlabs/ezbake"
   :license {:name "Apache License 2.0"


tidying

tidying

--- project.clj
+++ project.clj
@@ -96,8 +96,9 @@
         :test-paths ["test" "data"]
         :source-paths  ["dev"]
         :resource-paths  ["src/main/resources/" "pkg/etc/celestial/"]
-        :dependencies [[ring-mock "0.1.5"] [midje "1.6.3"][org.clojure/tools.trace "0.7.5"]
-                       [junit/junit "4.11"] [org.clojure/test.check "0.7.0"]]
+        :dependencies [[ring-mock "0.1.5"] [midje "1.6.3"]
+                       [org.clojure/tools.trace "0.7.5"]
+                       [org.clojure/test.check "0.7.0"]]
         :plugins [[lein-midje "3.1.3"]]
         :jvm-opts ~(into (vec (map (fn [[p v]] (str "-D" (name p) "=" v)) {:disable-conf "true" })) ["-XX:MaxPermSize=256m"])
         :set-version {
@@ -126,7 +127,6 @@
   :repositories  {"bintray"  "http://dl.bintray.com/content/garkisr/narkisr-jars"
                   "sonatype" "http://oss.sonatype.org/content/repositories/releases"}

-  :test-paths []
   :topping {
       :service "celestial"
       :app {:app-name "celestial" :src "target/celestial-0.8.6.jar"}
@@ -140,4 +140,4 @@
   :repl-options { }

   :main celestial.launch
-  )
+)


lein-ancient 0.6.7 released

lein-ancient 0.6.7 released

--- project.clj
+++ project.clj
@@ -54,7 +54,7 @@
                                         ["bikeshed"]
                                         ["eastwood"]]}
                    :plugins [[jonase/eastwood "0.1.4"]
-                             [lein-ancient "0.6.6"
+                             [lein-ancient "0.6.7"
                               :exclusions [rewrite-clj]]
                              [lein-bikeshed "0.1.8"]
                              [lein-cljfmt "0.1.10"]


Increment version number

Increment version number

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject nightcode "1.2.2-SNAPSHOT"
+(defproject nightcode "1.3.0"
   :description "An IDE for Clojure and Java"
   :url "https://github.com/oakes/Nightcode"
   :license {:name "Public Domain"