append  date atrribute to post map

append  date atrribute to post map

--- src/tamaki/template/page.clj
+++ src/tamaki/template/page.clj
@@ -45,16 +45,15 @@

 (defn- load-postmd [path]
-  (letfn [(extract-date-from-filename [filename]
-            (-> (re-matcher  #"^\d{4}-\d{1,2}-\d{1,2}" filename) re-find format-date))
-          (format-date [date-str] (.parse date-formatter date-str))
+  (letfn [(extract-date-from-filename [filename] (-> (re-seq #"^\d{4}-\d{1,2}-\d{1,2}" filename) first))
           (build-link [filename] (string/replace filename
                                                  #"(\d{4})-(\d{1,2})-(\d{1,2})-(.+)\.(md|markdown)$"
                                                  "/$1/$2/$3/$4.html"))]
    (let [md (load-md path)
-         link (build-link (-> path io/file .getName))
+         filename (-> path io/file .getName)
+         link (build-link filename)
          output (str (:dest (config/read-config)) link)]
-    (assoc md :link link :output output))))
+    (assoc md :link link :output output :date (extract-date-from-filename filename)))))

 (defn- create-neighbor-link [links]
   (map (fn [p n] {:previous-page p :next-page n})
@@ -88,7 +87,7 @@
           output-files (create-paginate-files (count parted-excerpts) (:pagination-pattern (config/read-config)))
           neighbor-links (create-neighbor-link output-files)
           pages (map (fn [excerpt current-page neighbors] (merge {:posts excerpt} {:current-page current-page}  neighbors))
-                      excerpts
+                      parted-excerpts
                       output-files
                       neighbor-links)
           template (:pagination-template (config/read-config))]


whitespace

whitespace

--- src/testdouble/cljs/csv.cljs
+++ src/testdouble/cljs/csv.cljs
@@ -11,7 +11,7 @@
   "Writes data to String in CSV-format.

   Valid options are
-    :separator (default ,) "
+    :separator (default ,)"
   [data & options]
   (let [{:keys [separator] :or {separator ","}} options]
     (write-data data separator)))


Make flatform->sg-columns public

Make flatform->sg-columns public

--- src/hatti/views/table.cljs
+++ src/hatti/views/table.cljs
@@ -79,7 +79,7 @@
   (let [clj-value (js->clj value :keywordize-keys true)]
     (forms/format-answer field clj-value language true)))

-(defn- flat-form->sg-columns
+(defn flat-form->sg-columns
    "Get a set of slick grid column objects when given a flat form."
   ([form] (flat-form->sg-columns form true))
   ([form get-label?] (flat-form->sg-columns form get-label? nil))


Fix to support the explicit setting of graph when serializing to quad formats.

--- src/rdf-common/grafter/rdf/io.clj
+++ src/rdf-common/grafter/rdf/io.clj
@@ -371,6 +371,10 @@
                                   :append append
                                   :encoding encoding)))))

+(def ^:no-doc format-supports-graphs #{RDFFormat/NQUADS
+                                       RDFFormat/TRIX
+                                       RDFFormat/TRIG})
+
 (extend-protocol pr/ITripleWriteable
   RDFWriter
   (pr/add-statement [this statement]
@@ -386,10 +390,10 @@
            (.endRDF this))
          (throw (IllegalArgumentException. "This serializer does not support writing a single statement.  It should be passed a sequence of statements."))))

-    ([this _graph triples]
-       ;; TODO if format allows graphs we should support
-       ;; them... otherwise.. ignore the graph param
-       (pr/add this triples))))
+    ([this graph triples]
+     (if (format-supports-graphs (.getRDFFormat this))
+       (pr/add this (map (fn [s] (assoc s :c graph)) triples))
+       (pr/add this triples)))))

 (defn ^:no-doc format->parser
   "Convert a format into a sesame parser for that format."
@@ -458,9 +462,8 @@
   ;; as we hack around Sesame to generate a lazy sequence of results.
   ;; Sesame's parse methods always assume you want to consume the
   ;; whole file of triples, so we spawn a thread to consume through
-  ;; the file and use a blocking queue of 1 element to pass elements
-  ;; back into a lazy sequence on the calling thread.  The queue has a
-  ;; bounded size of 1 forcing it be in lockstep with the consumer.
+  ;; the file and use a blocking queue of buffer-size elements to pass elements
+  ;; back into a lazy sequence on the calling thread.
   ;;
   ;; NOTE also none of these functions really allow for proper
   ;; resource clean-up unless the whole sequence is consumed.


Adds some basic styling to the player view

--- src/hphelper/live/view.clj
+++ src/hphelper/live/view.clj
@@ -55,7 +55,7 @@
 (defn- print-service-group
   "Prints a single service group in a html format"
   [g]
-  (html [:div
+  (html [:div {:class "data"}
          [:h3 (str (:sg_name g) ": " (:owner g))]
          (map (fn [r] [:div (str (:minion_name r)
                                  " -- " (:minion_clearance r)
@@ -84,28 +84,32 @@
              [:head
               [:title "Sector View"]
               [:meta {:http-equiv "refresh" :content 5}]
+              [:link {:rel "stylesheet" :href (str "/css/style.css")}]
+              [:style ".data {background-color: #270140; padding: 10px; border-right: 10px solid black; border-bottom: 5px solid black;}"]
               ]
              [:body
+              [:header
+               [:h1 "Sector " (:zone g) ": " (indicies/html-print-indicies (first (:indicies g)))
+                ]
+               ]
               [:table
-               [:tr
+               [:tr {:style "vertical-align: top;"}
                 [:td ;; Left column Begin
-                 [:div
-                  [:h3 "Current Sector Indicies"]
-                  (html-print-indicies-table (first (:indicies g)) 13)
-                  ]
-                 [:div
+                 ;; Moved these to the header
+                 ;;[:div [:h3 "Current Sector Indicies"] (html-print-indicies-table (first (:indicies g)) 13) ]
+                 [:div {:class "data"}
                   [:h3 "Sector News"]
                   (map (fn [n] [:div n])
                        (:news g))
                   ]
-                 [:div
+                 [:div {:class "data"}
                   [:h3 "Upcoming cbay auctions"]
                   (map (fn [^String i] [:div i]) (:cbay g))
                   ]
                  ;; Society messages
                  (if-let [missions (:missions (lapi/get-player-society-missions guid uuid))]
                    (do
-                     [:div
+                     [:div {:class "data"}
                       [:h3 "Private message summary"]
                       (map (fn [{ss_id :ss_id text :ssm_text}]
                              [:div (str (sql/get-ss-by-id ss_id) ": " text)])
@@ -119,9 +123,9 @@
                     (map (fn [^String msg] [:div msg]) messages)
                     ]
                    )
-                 [:hr] ;; Player Sheet
+                 ;; Player Sheet
                  (if u
-                   [:div
+                   [:div {:class "data"}
                     [:h3 "Character Sheet"]
                     (cprint/html-print-sheet u)]
                    nil


changed session num

changed session num

--- src/cljs/work_sessions/components/headers.cljs
+++ src/cljs/work_sessions/components/headers.cljs
@@ -123,7 +123,7 @@
    [:h4.time-and-place
     [:a {:href "http://sws.eeefff.org/session-four-room"
          :target "_blank"}
-     (unescapeEntities "Session #3")]
+     (unescapeEntities "Session #4")]
     (gstring/unescapeEntities ": 16 June, 13:30 — 14:30 Helsinki and Moscow time")]
    #_[:hr]
    #_[:h4


Add cache for prepared statements

Add cache for prepared statements

--- src/clojure/clojurewerkz/cassaforte/client.clj
+++ src/clojure/clojurewerkz/cassaforte/client.clj
@@ -19,6 +19,12 @@
             LoggingRetryPolicy DefaultRetryPolicy DowngradingConsistencyRetryPolicy FallthroughRetryPolicy
             RetryPolicy ConstantReconnectionPolicy ExponentialReconnectionPolicy]))

+(def prepared-statement-cache (atom {}))
+
+(defn flush-prepared-statement-cache!
+  []
+  (reset! prepared-statement-cache {}))
+
 ;;
 ;; Load Balancing policies
 ;;
@@ -179,7 +185,11 @@
   ([^String query]
      (prepare *default-session* query))
   ([^Session session ^String query]
-     (.prepare ^Session session query)))
+     (if-let [cached (get @prepared-statement-cache [session query])]
+       cached
+       (let [prepared (.prepare ^Session session query)]
+         (swap! prepared-statement-cache #(assoc % [session query] prepared))
+         prepared))))

 (defn build-cluster
   "Builds an instance of Cluster you can connect to.
@@ -246,14 +256,17 @@
 (defn ^Session connect
   "Connects to the Cassandra cluster. Use `build` function to build cluster with all required options."
   ([^Cluster cluster]
+     (flush-prepared-statement-cache!)
      (.connect cluster))
   ([^Cluster cluster keyspace]
+     (flush-prepared-statement-cache!)
      (.connect cluster (name keyspace))))

 (defn connect!
   "Connects and sets *default-cluster* and *default-session* for default cluster and session, that
    cql/execute is going to use."
   [hosts & {:keys [keyspace] :as options}]
+  (flush-prepared-statement-cache!)
   (let [cluster (build-cluster (assoc options :contact-points hosts))
         session (if keyspace
                   (connect cluster keyspace)


fix the database listing api unit test, which has become a real abomination :disappointed:

--- test/metabase/api/database_test.clj
+++ test/metabase/api/database_test.clj
@@ -171,19 +171,19 @@
 ;; GET /api/databases (include tables)
 (let [db-name (str "A" (random-name))] ; make sure this name comes before "test-data"
   (expect-eval-actual-first
-    (conj [(match-$ (sel :one Database :name db-name)
-            {:created_at      $
-             :engine          "postgres"
-             :id              $
-             :updated_at      $
-             :name            $
-             :is_sample       false
-             :is_full_sync    true
-             :organization_id nil
-             :description     nil
-             :tables          []
-             :features        (mapv name (driver/features (driver/engine->driver :postgres)))})]
-          (first (filter identity (for [engine datasets/all-valid-engines]
+    (set (concat [(match-$ (sel :one Database :name db-name)
+                    {:created_at      $
+                     :engine          "postgres"
+                     :id              $
+                     :updated_at      $
+                     :name            $
+                     :is_sample       false
+                     :is_full_sync    true
+                     :organization_id nil
+                     :description     nil
+                     :tables          []
+                     :features        (mapv name (driver/features (driver/engine->driver :postgres)))})]
+                 (filter identity (for [engine datasets/all-valid-engines]
                                     (datasets/when-testing-engine engine
                                                                   (let [database (get-or-create-test-data-db! (driver/engine->driver engine))]
                                                                     (match-$ database
@@ -209,7 +209,7 @@
       ;; Add an extra DB so we have something to fetch besides the Test DB
       (create-db db-name)
       ;; Now hit the endpoint
-      ((user->client :rasta) :get 200 "database" :include_tables true))))
+      (set ((user->client :rasta) :get 200 "database" :include_tables true)))))

 ;; ## GET /api/meta/table/:id/query_metadata
 ;; TODO - add in example with Field :values


couple fixes for revisions api test.

couple fixes for revisions api test.

--- test/metabase/api/revision_test.clj
+++ test/metabase/api/revision_test.clj
@@ -115,60 +115,12 @@
       :is_reversion true)
     (get-revisions :card id)))

-;; dashboard with single revision
-(expect-let [{:keys [id] :as dash} (create-test-dashboard)]
-  [{:is_reversion false
-    :is_creation  true
-    :message      nil
-    :user         @rasta-revision-info
-    :diff         nil
-    :description  nil}]
-  (do
-    (create-dashboard-revision dash true)
-    (get-revisions :dashboard id)))
+
+;;; # POST /revision/revert

 (defn- strip-ids
   [objects]
   (mapv #(dissoc % :id) objects))
-
-;; dashboard with card add then delete
-(expect-let [{:keys [id] :as dash}   (create-test-dashboard)
-             {card-id :id, :as card} (create-test-card)]
-  [{:is_reversion false
-    :is_creation  false
-    :message      nil
-    :user         @rasta-revision-info
-    :diff         {:before {:cards [{:sizeX 2, :sizeY 2, :row nil, :col nil, :card_id card-id}]},
-                   :after  {:cards nil}}
-    :description  "removed a card."}
-   {:is_reversion false
-    :is_creation  false
-    :message      nil
-    :user         @rasta-revision-info
-    :diff         {:before {:cards nil},
-                   :after  {:cards [{:sizeX 2, :sizeY 2, :row nil, :col nil, :card_id card-id}]}}
-    :description  "added a card."}
-   {:is_reversion false
-    :is_creation  true
-    :message      nil
-    :user         @rasta-revision-info
-    :diff         nil
-    :description  nil}]
-  (do
-    (create-dashboard-revision dash true)
-    (let [dashcard (db/ins DashboardCard :dashboard_id id :card_id (:id card))]
-      (create-dashboard-revision dash false)
-      (db/del DashboardCard :id (:id dashcard)))
-    (create-dashboard-revision dash false)
-    (->> (get-revisions :dashboard id)
-         (mapv (fn [rev]
-                 (if-not (:diff rev) rev
-                                     (if (get-in rev [:diff :before :cards])
-                                       (update-in rev [:diff :before :cards] strip-ids)
-                                       (update-in rev [:diff :after :cards] strip-ids))))))))
-
-
-;;; # POST /revision/revert

 (expect-let [{:keys [id] :as dash}   (create-test-dashboard)
              {card-id :id, :as card} (create-test-card)]
@@ -177,13 +129,13 @@
     :message      nil
     :user         @rasta-revision-info
     :diff         {:before {:cards nil}
-                   :after  {:cards [{:sizeX 2, :sizeY 2, :row nil, :col nil, :card_id card-id}]}}
+                   :after  {:cards [{:sizeX 2, :sizeY 2, :row nil, :col nil, :card_id card-id, :series []}]}}
     :description  "added a card."}
    {:is_reversion false
     :is_creation  false
     :message      nil
     :user         @rasta-revision-info
-    :diff         {:before {:cards [{:sizeX 2, :sizeY 2, :row nil, :col nil, :card_id card-id}]}
+    :diff         {:before {:cards [{:sizeX 2, :sizeY 2, :row nil, :col nil, :card_id card-id, :series []}]}
                    :after  {:cards nil}}
     :description "removed a card."}
    {:is_reversion false
@@ -191,7 +143,7 @@
     :message      nil
     :user         @rasta-revision-info
     :diff         {:before {:cards nil}
-                   :after  {:cards [{:sizeX 2, :sizeY 2, :row nil, :col nil, :card_id card-id}]}}
+                   :after  {:cards [{:sizeX 2, :sizeY 2, :row nil, :col nil, :card_id card-id, :series []}]}}
     :description "added a card."}
    {:is_reversion false
     :is_creation  true


CMR-2397: Fix field mappings to work when not configured to use doc values

--- search-app/src/cmr/search/data/query_to_elastic.clj
+++ search-app/src/cmr/search/data/query_to_elastic.clj
@@ -135,7 +135,12 @@
         {:granule-ur "granule-ur.lowercase2"
          :producer-gran-id "producer-gran-id.lowercase2"
          :producer-granule-id "producer-gran-id.lowercase2"
-         :version "version-id.lowercase"}]
+         :project "project-refs.lowercase"
+         :version "version-id.lowercase"
+         :provider "provider-id.lowercase"
+         :platform "platform-sn.lowercase"
+         :instrument "instrument-sn.lowercase"
+         :sensor "sensor-sn.lowercase"}]
     (if (use-doc-values-fields)
       (merge default-mappings {:provider "provider-id.lowercase-doc-values"
                                :provider-id "provider-id.lowercase-doc-values"


Hacking on exec-repl.

Hacking on exec-repl.

--- src/datomish/exec_repl.cljc
+++ src/datomish/exec_repl.cljc
@@ -10,10 +10,10 @@
       [cljs.core.async.macros :refer [go]]))
   (:require
      [datomish.db :as db]
-     [datomish.exec :as exec]
      [datomish.sqlite :as s]
      [datomish.sqlite-schema :as ss]
      [datomish.query :as dq]
+     [datomish.transact :as transact]
      #?@(:clj
            [[datomish.jdbc-sqlite]
             [datomish.pair-chan :refer [go-pair <?]]
@@ -40,7 +40,7 @@
   "Given an open database, returns a lazy sequence of results.
    When fully consumed, underlying resources will be released."
   [db find]
-  (pair-channel->lazy-seq (exec/<?run db find))))
+  (pair-channel->lazy-seq (db/<?run db find))))

 (defn xxopen []
     (datomish.pair-chan/go-pair
@@ -49,7 +49,7 @@
         (def db d))))

 ;; With an open DB…
-#_(datomish.exec/run-to-pair-seq
+#_(run-to-pair-seq
     db
     '[:find ?page :in $ :where [?page :page/starred true ?t]])

@@ -66,3 +66,32 @@
     (println
       "Result: "
       (<! (db/<?q d '[:find ?page :in $ :where [?page :page/starred true ?t]] {})))))
+
+
+#_
+(go-pair
+  (let [connection (<? (s/<sqlite-connection "/tmp/foo.sqlite"))
+        dd (<? (db/<with-sqlite-connection connection))]
+    (def *db* dd)))
+#_
+(clojure.core.async/<!!
+(go-pair
+(let [now -1
+      forms (mapcat (fn [i]
+                      (map (fn [j]
+                             [:db/add i :x j true])
+                           (range 1000 (* i 2000) i)))
+                    (range 1 10))]
+  (println "Adding" (count forms) "forms")
+  (<? (transact/<transact! *db* forms nil now)))))
+
+#_
+(go-pair
+  (let [connection (<? (s/<sqlite-connection "/tmp/foo.sqlite"))
+        dd (<? (db/<with-sqlite-connection connection))]
+    (println
+       (count
+         (<? (db/<?q dd
+                     '[:find ?e ?v :in $ :where
+                       [?e :x ?v]
+                       #_[(> ?v 1000)]] {}))))))


now if you expect :times 10 but there are no calls to that fake, then it will say "[expected :times 10, actually never called]"  previously said "[expected at least once, actually never called]"

--- src/midje/internal_ideas/report.clj
+++ src/midje/internal_ideas/report.clj
@@ -5,6 +5,7 @@
         [clojure.pprint :only [cl-format]]
         [midje.util.object-utils :only [function-name function-name-or-spewage named-function?]]
         midje.error-handling.exceptions
+        [clojure.core.match :only [match]]
         [midje.util.form-utils :only [pred-cond]])
   (:require [midje.util.colorize :as color]))

@@ -108,12 +109,12 @@

   (defmethod report-strings :mock-incorrect-call-count [m]
     (letfn [(report-fail [fail]
-              (list
-                (str "    " (:expected fail) " "
-                  (if (zero? (:actual-count fail))
-                    "[expected at least once, actually never called]"
-                    (cl-format nil "[expected :times ~A, actually called ~R time~:P]"
-                               (:expected-count fail) (:actual-count fail))))))]
+              (let [msg (match [(:expected-count fail) (:actual-count fail)]
+                           [nil 0]                  "[expected at least once, actually never called]"
+                           [nil act] (cl-format nil "[expected at least once, actually called ~R time~:P]" act)
+                           [exp act] (cl-format nil "[expected :times ~A, actually called ~R time~:P]" exp act))]
+                (list
+                  (str "    " (:expected fail) " " msg))))]

     (concat
           (list (fail-at (first (:failures m))))


Log exceptions during configuring.

Log exceptions during configuring.

--- src/org/spootnik/cyanite/config.clj
+++ src/org/spootnik/cyanite/config.clj
@@ -185,4 +185,6 @@
         (update-in [:http] (partial merge default-http))
         (update-in [:aggregator] (partial merge default-aggregator))
         (update-in [:blacklist] (partial merge default-blacklist))
-        (config-instance :rollup-finder default-rollup-finder [:rollups]))))
+        (config-instance :rollup-finder default-rollup-finder [:rollups]))
+    (catch Exception e
+      (info e "Config processing exception"))))


Add a test case for the default file format version of BCF

--- test/cljam/io/bcf/writer_test.clj
+++ test/cljam/io/bcf/writer_test.clj
@@ -267,3 +267,16 @@
          0x17 0x43
          0x00]
         []]])))
+
+(deftest default-meta-info
+  (let [tmp (File/createTempFile "default-meta-info" ".bcf")
+        header ["CHROM" "POS" "ID" "REF" "ALT" "QUAL" "FILTER" "INFO"]
+        s (->> ["##fileformat=VCFv4.3"
+                "##FILTER=<ID=PASS,Description=\"All filters passed\",IDX=0>"
+                (str "#" (cstr/join \tab header) \newline (char 0))]
+               (cstr/join \newline))
+        _ (with-open [w (bcf-writer/writer tmp {} header)])
+        bytes (bb->seq (bgzf->bb tmp))]
+    (is (= (concat (.getBytes "BCF\2\2") [(.length s) 0 0 0] (.getBytes s))
+           bytes))
+    (.delete tmp)))


Fix errors in perf-tuple ns failing coverage generation

--- test/cljc/precept/perf_tuple.cljc
+++ test/cljc/precept/perf_tuple.cljc
@@ -6,10 +6,7 @@
               [clara.rules :as cr]
               [clara.rules.accumulators :as acc]
               [precept.spec.sub :as sub]
-              [precept.rules :refer [session
-                                          define
-                                          rule
-                                          defquery]]
+              [precept.rules :refer [session define rule defquery]]
               [precept.listeners :as l]
               [precept.schema :as schema]
       #?(:clj [clara.tools.inspect :as inspect])
@@ -22,8 +19,7 @@
 ;; have for non-generated rule names, because when we delete a rule or rename it, it's still in
 ;; the REPL and requires a restart or manual ns-unmap to clear. We could expose a function
 ;; that takes all nses in which they are rules and unmaps everything in them.
-(define [?e :todo/visible :tag] :- [[_ :visibility-filter :all
-                                       [[?e :todo/title]]]])
+(define [?e :todo/visible :tag] :- [[_ :visibility-filter :all]] [[?e :todo/title]])

 (cr/defrule add-item-handler
   ;; Works with maps
@@ -95,7 +91,7 @@
 ;; depending on when/where listeners are added and removed. Might
 ;; be nice to file a bug with Clara so they're aware.

-(def session (atom (n-facts-session 100000)))
+(def test-session-atom (atom (n-facts-session 100000)))

 ;(t/get-trace @session)
 ;(get-in (inspect/inspect @session) [:rule-matches remove-older-one-to-one-facts])
@@ -109,8 +105,8 @@
   ;(time
     (dotimes [n iters]
       ;(time
-        (reset! session
-          (-> @session
+        (reset! test-session-atom
+          (-> @test-session-atom
             (l/replace-listener)
             ;(util/insert-action [(guid) :add-todo-action-2 {:todo/title "ho"}])
             ;(util/insert-action [(guid) :add-todo-action {:title "hey"}])
@@ -119,7 +115,7 @@
             (cr/fire-rules)))))

 (time (perf-loop 100))
-(l/vec-ops @session)
+(l/vec-ops @test-session-atom)
 (count (:one-to-one @state/fact-index))
 (:unique @state/fact-index)
 ;(inspect/inspect @session)


Remove whitespaces on test file.

Remove whitespaces on test file.

--- test/continuo/postgresql_spec.clj
+++ test/continuo/postgresql_spec.clj
@@ -111,7 +111,6 @@
       (t/is (set? res))
       (t/is (= (count res) 1)))))

-
 (t/deftest simple-transact-with-doble-add
   (p/await (co/create uri))
   (let [conn (p/await (co/open uri))]
@@ -128,7 +127,6 @@
           entity (p/await (co/entity conn eid))]
       (t/is (= (:eid entity) eid))
       (t/is (= (:foo/bar entity) "hola mundo")))))
-

 (t/deftest simple-transact-and-get-the-entity
   (p/await (co/create uri))


Rename 'should' to 'is'

Rename 'should' to 'is'

--- src/main/clojure/com/stuartsierra/lazytest.clj
+++ src/main/clojure/com/stuartsierra/lazytest.clj
@@ -155,7 +155,7 @@

 ;;; Public API

-(defmacro is
+(defmacro should
   "A series of assertions.  Each assertion is a simple expression,
   which will be compiled into a function.  A string will be attached
   as :doc metadata on the following assertion."
@@ -174,7 +174,7 @@
                           :line ~(:line (meta form))}
                          nil))
                nxt))
-      `(SimpleContainer ~r {:generator is
+      `(SimpleContainer ~r {:generator should
                             :line ~(:line (meta &form))
                             :form '~&form}
                         nil))))
@@ -237,7 +237,7 @@
   decl   => name? docstring? option* child*

   name  => a symbol, will def a Var if provided.
-  child => 'is' or 'given' or nested 'testing'.
+  child => 'should' or 'given' or nested 'testing'.

   options => keyword/value pairs, recognized keys are:
     :contexts => vector of contexts to run only once for this container.


(PDB-3311) Send commands to dlo for all "class 54" postgres errors

Discussion on #postgresql indicates that all 54-class states can be
considered "terminal", and for now, we're also assuming that all
commands don't vary their behavior across retries sufficiently for
that to matter either.  This was originally introduced to handle
program_limit_exceeded errors caused by attemptps to insert resource
titles that were too big to fit in a postgres index.

cf. https://www.postgresql.org/docs/11/errcodes-appendix.html

Thanks to Wyatt Alt for an earlier proposal in a similar direction.

--- src/puppetlabs/puppetdb/command.clj
+++ src/puppetlabs/puppetdb/command.clj
@@ -50,7 +50,8 @@

    In either case, the command itself, once string-ified, must be a
    JSON-formatted string with the aforementioned structure."
-  (:require [clojure.tools.logging :as log]
+  (:require [clojure.string :as str]
+            [clojure.tools.logging :as log]
             [murphy :refer [try! with-final]]
             [puppetlabs.i18n.core :refer [trs]]
             [puppetlabs.puppetdb.scf.storage :as scf-storage
@@ -100,6 +101,7 @@
   (:import
    (clojure.lang ExceptionInfo)
    (java.io Closeable)
+   (java.sql SQLException)
    (java.util.concurrent RejectedExecutionException Semaphore)
    (org.joda.time DateTime)))

@@ -454,6 +456,8 @@
 ;; ## Command processors

 (defn prep-command [{:keys [command] :as cmd} options-config]
+  ;; Note: prep commands should not be accessing the database,
+  ;; i.e. all db access is expected to be in the exec commands.
   (case command
     "replace catalog" (prep-replace-catalog cmd)
     "replace facts" (prep-replace-facts cmd options-config)
@@ -479,7 +483,21 @@
                "deactivate node" exec-deactivate-node
                "configure expiration" exec-configure-expiration
                "replace catalog inputs" exec-replace-catalog-inputs)]
-    (exec cmd start db conn-status)))
+    (try
+      (exec cmd start db conn-status)
+      (catch SQLException ex
+        ;; Discussion on #postgresql indicates that all 54-class
+        ;; states can be considered "terminal", and for now, we're
+        ;; also assuming that all commands don't vary their behavior
+        ;; across retries sufficiently for that to matter either.
+        ;; This was originally introduced to handle
+        ;; program_limit_exceeded errors caused by attemptps to insert
+        ;; resource titles that were too big to fit in a postgres
+        ;; index.
+        ;; cf. https://www.postgresql.org/docs/11/errcodes-appendix.html
+        (when (str/starts-with? (.getSQLState ex) "54")
+          (throw (fatality ex)))
+        (throw ex)))))

 ;; Used in testing and by initial sync
 (defn process-command!


accept CQLFns as :columns

accept CQLFns as :columns

--- src/er_cassandra/record.clj
+++ src/er_cassandra/record.clj
@@ -12,7 +12,7 @@
    [er-cassandra.session :as session])
   (:import
    [er_cassandra.session Session]
-   [qbits.hayt.cql CQLRaw]))
+   [qbits.hayt.cql CQLRaw CQLFn]))

 ;; low-level record-based cassandra statement generation and execution
 ;;
@@ -44,7 +44,8 @@
 (s/defschema SelectColumnSchema
   (s/conditional
    keyword? s/Keyword
-   :else CQLRaw))
+   #(instance? CQLRaw %) CQLRaw
+   #(instance? CQLFn %) CQLFn))

 (s/defschema SelectColumnsSchema
   [(s/one SelectColumnSchema :first-col) SelectColumnSchema])


These need to be AOT'd

These need to be AOT'd

--- support/build-support/project.clj
+++ support/build-support/project.clj
@@ -1,6 +1,7 @@
 (defproject org.immutant/immutant-build-support "1.0.3-SNAPSHOT"
   :parent [org.immutant/immutant-support-parent _ :relative-path "../pom.xml"]
-  :plugins [[lein-modules "0.1.0-SNAPSHOT"]]
+  :plugins [[lein-modules "0.1.0-SNAPSHOT"]
+            [org.immutant/build-plugin "0.1.0-SNAPSHOT"]]
   :dependencies [[org.clojure/data.zip "0.1.1"]
                  [org.clojure/clojure-contrib "1.2.0"]
                  [commons-io "2.0.1"]
@@ -8,4 +9,5 @@
                  [org.clojars.tcrawley/codox.core "0.6.3"]
                  [digest "1.4.0"]
                  [cheshire _]
-                 [leiningen-core _]])
+                 [leiningen-core _]]
+  :aot [#"immutant.build"])


More documentation

More documentation

--- src/flo_invest/database.clj
+++ src/flo_invest/database.clj
@@ -11,83 +11,90 @@

 (defn dbg [a] (do (print a) a))

-(defn init-db [db-spec]
-  "Create all tables in the database specified by db-spec.
+;; ## Table definitions

-  Assumes that none of the tables exists before."
-  (sql/db-do-commands
-   db-spec
-   ;; The isins table lists all valid isins.
-   ;; It is responsible to enforce foreign key constraints.
-   ;; I'm not sure yet whether this is a great design decision or not.
-   (sql/create-table-ddl
-    :isins
-    [:isin "text not null primary key"]
-    ["unique (isin) on conflict ignore"]
-    )
-   ;; The securities table is used to map an ISIN to the name of a
-   ;; security. It is append-only. An ISIN can never change, but the
-   ;; name of the corresponding security might. Therefore, the table
-   ;; has an additional column date_added which stores the date a
-   ;; column has been added. For equal ISINs, the most recently added
-   ;; row is the one that should be returned on a query.
-   ;;
-   ;; Sqlite implementation note:
-   ;; As sqlite has no native datetime column type, we store
-   ;; date_added with text affinity. The value is expected to be an
-   ;; utf-8 encoded string representation in iso datetime format and
-   ;; utc timezone.
-   (sql/create-table-ddl
-    :securities
-    [:id "integer not null primary key autoincrement"]
-    [:isin "text not null"]
-    [:name "text not null"]
-    [:date_added "datetime not null"]
-    ["unique (isin, name) on conflict ignore"]
-    ["foreign key(isin) references isins(isin)"])
-   (sql/create-table-ddl
-    :shares
-    [:id "integer not null primary key autoincrement"]
-    [:isin "text not null"]
-    [:amount "integer not null"]
-    [:date "datetime not null"]
-    [:date_added "datetime not null"]
-    ["unique (isin, amount, date) on conflict ignore"]
-    ["foreign key(isin) references isins(isin)"])
-   (sql/create-table-ddl
-    :per_share_amounts
-    [:id "integer not null primary key autoincrement"]
-    [:isin "text not null"]
-    [:name "text not null"]
-    [:currency "text not null"]
-    [:amount "integer not null"]
-    [:date "datetime not null"]
-    [:date_added "datetime not null"]
-    ["unique (isin, name, currency, amount, date) on conflict ignore"]
-    ["foreign key(isin) references isins(isin)"])
-   (sql/create-table-ddl
-    :amounts
-    [:id "integer not null primary key autoincrement"]
-    [:isin "text not null"]
-    [:name "text not null"]
-    [:currency "text not null"]
-    [:amount "integer not null"]
-    [:date "datetime not null"]
-    [:date_added "datetime not null"]
-    ["unique (isin, name, currency, amount, date) on conflict ignore"]
-    ["foreign key(isin) references isins(isin)"])
-   ))
+(def table-definitions
+  "## isins

-(defn kill-db [db-spec]
-  (sql/db-do-commands
-   db-spec
-   (sql/drop-table-ddl :securities)
-   (sql/drop-table-ddl :shares)
-   (sql/drop-table-ddl :amounts)
-   (sql/drop-table-ddl :per_share_amounts)
-   (sql/drop-table-ddl :isins)
-   )
-  )
+   The isins table lists all valid isins. It is responsible to enforce
+   foreign key constraints. I'm not sure yet whether this is a great
+   design decision or not.
+
+   ## securities
+
+   The securities table is used to map an ISIN to the name of a
+   security. It is append-only. An ISIN can never change, but the name
+   of the corresponding security might. Therefore, the table has an
+   additional column date_added which stores the date a column has
+   been added. For equal ISINs, the most recently added row is the one
+   that should be returned on a query.
+
+   ## shares
+
+   The shares table stores the amount of shares that were available at
+   a given date.
+
+   ## Sqlite implementation notes
+
+   As sqlite has no native datetime column type, we store date_added
+   with text affinity. The value is expected to be an utf-8 encoded
+   string representation in iso datetime format and utc timezone."
+
+  {:isins [[:isin "text not null primary key"]
+           ["unique (isin) on conflict ignore"]]
+
+   :securities [[:id "integer not null primary key autoincrement"]
+                [:isin "text not null"]
+                [:name "text not null"]
+                [:date_added "datetime not null"]
+                ["unique (isin, name) on conflict ignore"]
+                ["foreign key(isin) references isins(isin)"]]
+
+   :shares [[:id "integer not null primary key autoincrement"]
+            [:isin "text not null"]
+            [:amount "integer not null"]
+            [:date "datetime not null"]
+            [:date_added "datetime not null"]
+            ["unique (isin, amount, date) on conflict ignore"]
+            ["foreign key(isin) references isins(isin)"]]
+
+   :per_share_amounts [[:id "integer not null primary key autoincrement"]
+                       [:isin "text not null"]
+                       [:name "text not null"]
+                       [:currency "text not null"]
+                       [:amount "integer not null"]
+                       [:date "datetime not null"]
+                       [:date_added "datetime not null"]
+                       ["unique (isin, name, currency, amount, date) on conflict ignore"]
+                       ["foreign key(isin) references isins(isin)"]]
+
+   :amounts [[:id "integer not null primary key autoincrement"]
+             [:isin "text not null"]
+             [:name "text not null"]
+             [:currency "text not null"]
+             [:amount "integer not null"]
+             [:date "datetime not null"]
+             [:date_added "datetime not null"]
+             ["unique (isin, name, currency, amount, date) on conflict ignore"]
+             ["foreign key(isin) references isins(isin)"]]})
+
+(defn init-db
+  "Create all tables. Assumes that none of the tables exists before.
+   Table definitions are taken from the table-definitions var."
+  [db-spec]
+  (apply sql/db-do-commands
+         db-spec
+         (for [table-name (keys table-definitions)]
+           (apply sql/create-table-ddl table-name
+                  (table-definitions table-name)))))
+
+(defn kill-db
+  "Drop all tables defined in table-definitions."
+  [db-spec]
+  (apply sql/db-do-commands
+         db-spec
+         (for [table-name (keys table-definitions)]
+           (sql/drop-table-ddl table-name))))

 (defn add-security [db-spec sec]
   (do (sql/insert! db-spec :isins {:isin (sec :isin)})


some cleaning in tests

some cleaning in tests

--- test/lein_fore_prob/test/core.clj
+++ test/lein_fore_prob/test/core.clj
@@ -12,7 +12,7 @@
   {:title "Foo Bar"
    :description "write a foo bar"
    :difficulty "Medium"
-   :restricted []
+   :restricted ["f1" "f2"]
    :times-solved 42
    :scores {}
    :user "foo"
@@ -42,17 +42,7 @@
   {(mk-url 1) (fn [r] {:status 404 :headers {} :body ""})
    (mk-url 2) (fn [r] {:status 500 :headers {} :body ""})
    (mk-url 3) (fn [r] {:status 200 :headers {}
-                       :body (json/generate-string
-                               {:prob-num 42
-                                :restricted []
-                                :title "Foo Bar"
-                                :times-solved 42
-                                :difficulty "Elementary"
-                                :scores {"45" 42}
-                                :tests ["(= __ true)"]
-                                :user "someone"
-                                :description "This is a problem"
-                                :tags []})})})
+                       :body (json/generate-string prob1)})})

 (defn assert-println
   "test helper: return a test to replace 'println' and check that a specific


Encode fully qualified URL

Encode fully qualified URL

--- src/hatti/views/photos.cljs
+++ src/hatti/views/photos.cljs
@@ -35,7 +35,7 @@
    string and convert to a fully qualified URL."
   [s]
   (if (= (subs s 0 4) "http")
-    s
+    (js/encodeURIComponent s)
     (remote/make-url (replace s #"/api/v1" ""))))

 (defn- build-caption


finished fixing routing

finished fixing routing

--- src/main/untangled_template/api/mutations.cljc
+++ src/main/untangled_template/api/mutations.cljc
@@ -14,7 +14,7 @@
      [{:keys [uid]}]
      (action [{:keys [state]}]
        (swap! state assoc
-         :current-user {:id uid :name "???"}
+         :current-user {:id uid :name ""}
          :server-down false))
      (remote [env] true)))


Bad format code in info statement

Bad format code in info statement

--- src/onyx/messaging/aeron/publication_group.clj
+++ src/onyx/messaging/aeron/publication_group.clj
@@ -31,7 +31,7 @@
                                            (filter (fn [[k v]] (>= (- t ^long @(:last-used v)) idle-timeout))
                                                    snapshot))]
                         (doseq [k to-remove]
-                          (info (format "Publication %k GC'd after non use within %s" k idle-timeout))
+                          (info (format "Publication %s GC'd after non use within %s" k idle-timeout))
                           (pubm/stop (:publication (snapshot k)))))
                       (catch InterruptedException e
                         (throw e))


Simplified extracting master settings from config

--- src/clj/puppetlabs/master/certificate_authority.clj
+++ src/clj/puppetlabs/master/certificate_authority.clj
@@ -334,9 +334,8 @@
   config->master-settings :- MasterSettings
   "Given the configuration map from the JVM Puppet config
   service return a map with of all the master settings."
-  [{:keys [jvm-puppet jruby-puppet]}]
-  (-> (select-keys jvm-puppet (keys MasterSettings))
-      (assoc :dns-alt-names (:dns-alt-names jvm-puppet))))
+  [{:keys [jvm-puppet]}]
+  (select-keys jvm-puppet (keys MasterSettings)))

 (schema/defn ^:always-validate
   get-certificate :- (schema/maybe String)


Update for 2018 data

Update for 2018 data

--- src/clj_simple_chart/eurostat/data/avia_par_all.clj
+++ src/clj_simple_chart/eurostat/data/avia_par_all.clj
@@ -105,7 +105,7 @@

 (def max-year-kw (keyword (str max-year)))

-(test/is (= 2017 max-year))
+(test/is (= 2018 max-year))

 (def regular-columns [:unit :tra_meas :airp_pr :from :to :codes])


"ventotto" is {:agr {:number :plur}}

"ventotto" is {:agr {:number :plur}}

--- src/babel/italiano/lexicon.cljc
+++ src/babel/italiano/lexicon.cljc
@@ -2123,7 +2123,8 @@
                                   :3plur "vengono"}
                         :future-stem "verr"}}

-   "ventotto" {:synsem {:cat :det}}
+   "ventotto" {:synsem {:cat :det
+                        :agr {:number :plur}}}

    "vestirsi" (let [subject-semantics (atom {:human true})
                     subject-agr (atom :top)]


Add the allow-king-capture? parameter to clj-chess.core/make-board.

--- src/clojure/clj_chess/core.cljc
+++ src/clojure/clj_chess/core.cljc
@@ -105,8 +105,8 @@
 (defn make-board
   "Creates a new chess board from a FEN string. If no FEN is supplied, the
   standard initial position is used."
-  [& [fen]]
-  (b/make-board fen))
+  [& [fen allow-king-capture?]]
+  (b/make-board fen allow-king-capture?))

 #?(:clj
    (defn flip-board


remove long-unused code fromm clj-unit

remove long-unused code fromm clj-unit

--- clj-unit/src/clj_unit/console_reporter.clj
+++ clj-unit/src/clj_unit/console_reporter.clj
@@ -1,14 +1,6 @@
 (ns clj-unit.console-reporter
   (:use clj-unit.utils clojure.contrib.str-utils
         (clj-backtrace core repl)))
-
-(def *test-count*    (atom 0))
-(def *success-count* (atom 0))
-(def *pass-count*    (atom 0))
-(def *failure-count* (atom 0))
-(def *error-count*   (atom 0))
-(def *pending-count* (atom 0))
-(def *start-time*    (atom nil))

 (defn print-exception
   "A sort of modified .printStackTrace. Prints to *out* as apposed to *err* and


Fixed linked to Coils on Github

Fixed linked to Coils on Github

--- src/webapp/client/views/case_studies_view.cljs
+++ src/webapp/client/views/case_studies_view.cljs
@@ -91,7 +91,7 @@
                   :onmouseout #(clear :#case-study-example )})
              ])

-      (el :a {:href "http://github.com/zubairq"}
+      (el :a {:href "http://github.com/zubairq/coils"}
             [
         (el :div {:style "margin:20px; display:inline;padding: 20px; border: 1px solid gray; width:100px; height: 100px;"
                   :text "coils.cc"


TCHECK-75: rename gen-seq->seq-gen for clarity

I used `gen-tuple` since it's analagous to what tuple does.

--- src/main/clojure/clojure/test/check/generators.cljc
+++ src/main/clojure/clojure/test/check/generators.cljc
@@ -73,8 +73,8 @@
      (cons r1
            (lazy-random-states r2)))))

-(defn- gen-seq->seq-gen
-  "Takes a sequence of generators and returns a generator of sequences (er, vectors)."
+(defn- gen-tuple
+  "Takes a collection of generators and returns a generator of vectors."
   [gens]
   (make-gen
    (fn [rnd size]
@@ -396,7 +396,7 @@
   [& generators]
   (assert (every? generator? generators)
           "Args to tuple must be generators")
-  (gen-bind (gen-seq->seq-gen generators)
+  (gen-bind (gen-tuple generators)
             (fn [roses]
               (gen-pure (rose/zip core/vector roses)))))

@@ -436,9 +436,8 @@
    (gen-bind
      (sized #(choose 0 %))
      (fn [num-elements-rose]
-       (gen-bind (gen-seq->seq-gen
-                  (repeat (rose/root num-elements-rose)
-                          generator))
+       (gen-bind (gen-tuple (repeat (rose/root num-elements-rose)
+                                    generator))
                  (fn [roses]
                    (gen-pure (rose/shrink core/vector
                                           roses)))))))
@@ -450,9 +449,8 @@
    (gen-bind
      (choose min-elements max-elements)
      (fn [num-elements-rose]
-       (gen-bind (gen-seq->seq-gen
-                  (repeat (rose/root num-elements-rose)
-                          generator))
+       (gen-bind (gen-tuple (repeat (rose/root num-elements-rose)
+                                    generator))
                  (fn [roses]
                    (gen-bind
                      (gen-pure (rose/shrink core/vector
@@ -468,9 +466,8 @@
   (assert (generator? generator) "First arg to list must be a generator")
   (gen-bind (sized #(choose 0 %))
             (fn [num-elements-rose]
-              (gen-bind (gen-seq->seq-gen
-                         (repeat (rose/root num-elements-rose)
-                                 generator))
+              (gen-bind (gen-tuple (repeat (rose/root num-elements-rose)
+                                           generator))
                         (fn [roses]
                           (gen-pure (rose/shrink core/list
                                                  roses)))))))


Test dom to transaction code

Test dom to transaction code

--- test/datascript_dom/core_test.clj
+++ test/datascript_dom/core_test.clj
@@ -1,7 +1,21 @@
 (ns datascript-dom.core-test
   (:require [clojure.test :refer :all]
-            [datascript-dom.core :refer :all]))
+            [datascript-dom.core :refer :all]
+            [pl.danieljanus.tagsoup :as html]))

-(deftest a-test
-  (testing "FIXME, I fail."
-    (is (= 0 1))))
+(deftest test-dom->transaction
+  (is (=
+       [{:tag :html, :db/id -1}
+        {:tag :body, :parent -1, :db/id -2}
+        {:tag :p, :parent -2, :db/id -3}
+        {:tag :text-node, :text "A", :parent -3, :db/id -4}
+        {:tag :b, :parent -3, :prev-sibling -4, :db/id -5}
+        {:tag :text-node, :text "B", :parent -5, :db/id -6}
+        {:tag :text-node, :text "C", :parent -3, :prev-sibling -5, :db/id -7}
+        {:tag :i, :parent -3, :prev-sibling -7, :db/id -8}
+        {:tag :text-node, :text "D", :parent -8, :db/id -9}
+        {:tag :text-node, :text "E", :parent -3, :prev-sibling -8, :db/id -10}
+        {:tag :p, :parent -2, :prev-sibling -3, :db/id -11}
+        {:tag :text-node, :text "hohoho", :parent -11, :db/id -12}]
+       (dom->transaction
+        (html/parse-string "
ABCDE

hohoho
")))))


reverse a couple of tests

reverse a couple of tests

--- test/digitalocean_expect/test.clj
+++ test/digitalocean_expect/test.clj
@@ -43,12 +43,12 @@
 ; check node with specific name
 (expect (droplet-by-name creds "test-digitalocean"))

-; check backups are disabled for all nodes
-(expect false? (from-each
+; check backups are enabled for all nodes
+(expect true? (from-each
   [node nodes] (:backups_active node)))

-; check private networks are disabled for all nodes
-(expect nil? (from-each
+; check private networks are enabled for all nodes
+(expect (complement nil?) (from-each
   [node nodes] (:private_ip_address node)))

 ; only use prescribed sizes


changed exception message

changed exception message

--- src/org/httpkit/server.clj
+++ src/org/httpkit/server.clj
@@ -133,7 +133,7 @@
   See org.httpkit.timer ns for optional timeout facilities."
   [request ch-name handshake & body]
   `(let [~ch-name (:async-channel ~request)
-         ~handshake #(throw (Exception. "No handler defined"))]
+         ~handshake #(throw (Exception. "No handshake for non-websocket"))]
      (if (:websocket? ~request)
        (if-let [key# (get-in ~request [:headers "sec-websocket-key"])]
          (let [~handshake #(.sendHandshake


whitespace fix

whitespace fix

--- src/overtone/sc/buffer.clj
+++ src/overtone/sc/buffer.clj
@@ -240,8 +240,8 @@
   writing the data (defaults to 0)."
   ([buf data] (buffer-write! buf 0 data))
   ([buf start-idx data]
+     (assert (buffer? buf))
      (ensure-buffer-active! buf)
-     (assert (buffer? buf))
      (assert (<= (count data) MAX-OSC-SAMPLES)
              (fs "Error - the data you attempted to write to the buffer was
                   too large to be sent via UDP."))


rm_lm_countries.country_j varchar(50) -> varchar(999)

--- src/pg_demo/table_defs.clj
+++ src/pg_demo/table_defs.clj
@@ -3812,7 +3812,7 @@
               DELETED timestamp,
               COUNTRY_GROUP_ID numeric,
               COUNTRY_GROUP varchar(50),
-              COUNTRY_J varchar(50),
+              COUNTRY_J varchar(999),
               GROUP_2_COUNTRY numeric,
               PRIMARY KEY (ENTERPRISE_ID,COUNTRY_ID)
           )" }


Fix producer list for TV titles.

Fix producer list for TV titles.

--- src/uk/co/anthonycampbell/imdb/cast_parser.clj
+++ src/uk/co/anthonycampbell/imdb/cast_parser.clj
@@ -173,7 +173,7 @@
                                             (str ", " producer)
                                             "")))

-                                (first (:content (first producers)))))))
+                                (str ", " (first (:content (first producers))))))))
                     (rest producer-list))

                 ; Final clean up


Added tests for queries and functions used by DynamicTimeseries

--- test/clj/forma/hadoop/jobs/timeseries_test.clj
+++ test/clj/forma/hadoop/jobs/timeseries_test.clj
@@ -59,5 +59,52 @@
         result [(thrift/TimeSeries* 0 [(thrift/FireValue* 0 0 0 10)
                                        (thrift/FireValue* 1 0 0 43)])]]
     (??<- [?vals]
-          (fires-src ?fire-vals)
-          (running-fire-sum 0 ?fire-vals :> ?vals)) => [result]))
+        (fires-src ?fire-vals)
+        (running-fire-sum 0 ?fire-vals :> ?vals)) => [result]))
+
+(fact
+  "Test `timeseries` query"
+  (let [src [[1 (thrift/pack (range 10))] [3 (thrift/pack (range 10))]]
+        src (<- [?pix-idx ?t-start ?t-end ?series]
+                (src ?date ?ts)
+                (timeseries [-9999.0] ?date ?ts :> ?pix-idx ?t-start ?t-end ?series))]
+    (<- [?pix-idx ?t-start ?t-end ?ts-vec]
+        (src ?pix-idx ?t-start ?t-end ?series)
+        (thrift/unpack* ?series :> ?ts-vec)))
+  => (produces [[0 1 3 [0 -9999 0]]
+                [1 1 3 [1 -9999 1]]
+                [2 1 3 [2 -9999 2]]
+                [3 1 3 [3 -9999 3]]
+                [4 1 3 [4 -9999 4]]
+                [5 1 3 [5 -9999 5]]
+                [6 1 3 [6 -9999 6]]
+                [7 1 3 [7 -9999 7]]
+                [8 1 3 [8 -9999 8]]
+                [9 1 3 [9 -9999 9]]]))
+
+(fact
+  "Test form-tseries"
+  (let [mk-ts (form-tseries -9999.0)
+        src [["16" "2000-01-01" (thrift/pack [1 2 3])]
+             ["16" "2000-02-02" (thrift/pack [2 3 4])]]]
+    (<- [?idx ?start ?end ?series]
+          (src ?t-res ?date ?ts)
+          (mk-ts ?t-res ?date ?ts :> ?idx ?start ?end ?series)))
+  => (produces [0 690 692 (thrift/pack [1 -9999 2])]
+               [1 690 692 (thrift/pack [2 -9999 3])]
+               [2 690 692 (thrift/pack [3 -9999 4])]))
+
+(fact
+  "Test extract-tseries"
+  (let [loc (thrift/ModisChunkLocation* "500" 28 8 0 24000)
+        data (range 24000)
+        mk-data #(thrift/DataChunk* "ndvi" loc data "16" :date %)
+        src [["" (mk-data "2000-01-01")]
+             ["" (mk-data "2000-02-02")]]]
+    (<- [?name ?s-res ?mod-h ?mod-v ?sample ?line ?start ?end ?t-res ?series]
+        ((extract-tseries src *missing-val*) ?dc)
+        (thrift/unpack ?dc :> ?name ?loc ?data-val ?t-res _)
+        (thrift/unpack ?loc :> ?s-res ?mod-h ?mod-v ?sample ?line)
+        (thrift/unpack ?data-val :> ?start ?end ?series-arr)
+        (thrift/unpack* ?series-arr :> ?series)))
+  => (produces-some [["ndvi" "500" 28 8 2399 9 690 692 "16" [23999 -9999 23999]]]))


CMR-1409: Addressed review comments.

CMR-1409: Addressed review comments.

--- acl-lib/src/cmr/acl/core.clj
+++ acl-lib/src/cmr/acl/core.clj
@@ -31,7 +31,7 @@
           CURL_CLIENT_ID))
       UNKNOWN_CLIENT_ID))

-(defn add-authentication-to-context
+(defn- add-authentication-to-context
   "Adds information to the context including the current token and the client id"
   [context params headers]
   (-> context
@@ -39,12 +39,12 @@
       (assoc :client-id (get-client-id headers))))

 (defn add-authentication-handler
-  "This is a ring handler that adds the authentication token and client id to the request context."
+  "This is a ring handler that adds the authentication token and client id to the request context.
+  It expects the request context is already associated with the request."
   [f]
   (fn [request]
-    (let [{:keys [request-context params headers]} request
-          context (add-authentication-to-context request-context params headers)]
-      (f (assoc request :request-context context)))))
+    (let [{:keys [request-context params headers]} request]
+      (f (update-in request [:request-context] add-authentication-to-context params headers)))))

 (defn context->sids
   "Returns the security identifiers (group guids and :guest or :registered) of the user identified


Make vector tensor

Make vector tensor

--- test/tensorflow_clj/core_test.clj
+++ test/tensorflow_clj/core_test.clj
@@ -7,3 +7,9 @@
     (let [t (org.tensorflow.Tensor/create 123.0)]
       (is (= org.tensorflow.DataType/DOUBLE (.dataType t)))
       (is (= [] (vec (.shape t)))))))
+
+(deftest vector-tensor
+  (testing "Vector tensor"
+    (let [t (org.tensorflow.Tensor/create (into-array [1.0 2.0 3.0]))]
+      (is (= org.tensorflow.DataType/DOUBLE (.dataType t)))
+      (is (= [3] (vec (.shape t)))))))


fixed report generation task handling (ensure math tick matches)

--- src/polismath/conv_man.clj
+++ src/polismath/conv_man.clj
@@ -269,13 +269,15 @@

 (defmethod react-to-messages :generate_report_data
   [conv-man conv _ messages]
-  (let [updated-conv (conv-update conv-man conv [])]
+  (let [math-tick (postgres/inc-math-tick (:postgres conv-man) (:zid conv))
+        ;; ideally a new upload wouldn't be necessary if convergence had been reached; can optimize this later
+        updated-conv (conv-update conv-man conv [])]
     (doseq [report-task messages]
+      (log/info "report-task:" report-task)
       (try
-        (let [math-tick (postgres/inc-math-tick (:postgres conv-man) (:zid conv))]
-          (generate-report-data! conv-man updated-conv math-tick report-task))
+        (generate-report-data! conv-man updated-conv math-tick report-task)
         (catch Exception e (log/error e (str "Unable to export " (pr-str report-task))))))
-    updated-conv))
+    (assoc updated-conv :math-tick math-tick)))

 ;; Error handling
@@ -319,7 +321,8 @@
             (try
               (if-let [updated-conv (react-to-messages conv-man conv' message-type messages)]
                 (do
-                  (let [math-tick (postgres/inc-math-tick (:postgres conv-man) zid)]
+                  (let [math-tick (or (:math-tick updated-conv) ;; pass through for report generation
+                                      (postgres/inc-math-tick (:postgres conv-man) zid))]
                     (write-conv-updates! conv-man updated-conv math-tick))
                   updated-conv)
                 ;; if nil, don't update, for just side effects


making it more obvious that the pivot query depends on the results of the category query

--- backend/src/akvo/lumen/lib/aggregation/pivot.clj
+++ backend/src/akvo/lumen/lib/aggregation/pivot.clj
@@ -20,6 +20,7 @@
                                                     "text" "''"
                                                     "date" "'1001-01-01 01:00:00'::timestamptz"
                                                     "'NaN'::double precision")))
+
 (defn unique-values-sql [table-name filter-str category-column]
   (let [select (format "SELECT DISTINCT %s%s"
                        (coalesce category-column) (if (= "timestamptz"
@@ -35,27 +36,30 @@
        (run-query conn)
        (map first)))

-(defn- apply-pivot [conn table-name {:keys [category-column row-column aggregation value-column]} filter-str]
+(defn- run-pivot-query [conn table-name {:keys [category-column row-column aggregation value-column]} filter-str categories]
   (let [source-sql        (let [select (format "SELECT %s, %s, %s(%s)"
-                                               (:columnName row-column)
-                                               (coalesce category-column)
-                                               aggregation
-                                               (:columnName value-column))
+                                         (:columnName row-column)
+                                         (coalesce category-column)
+                                         aggregation
+                                         (:columnName value-column))
                                 from   (format "FROM %s" table-name)
                                 where  (format "WHERE %s GROUP BY 1,2 ORDER BY 1,2" filter-str)]
                             (format "%s %s %s" select from where))

-        categories        (run-query-categories conn table-name filter-str category-column)
-
         pivot-sql         (let [select "SELECT *"
                                 from   (format "FROM crosstab ($$ %s $$, $$ %s $$) AS ct (c1 text, %s)"
-                                               source-sql
-                                               (unique-values-sql table-name filter-str category-column)
-                                               (str/join "," (map #(format "c%s double precision" (+ % 2))
-                                                                  (range (count categories)))))
+                                         source-sql
+                                         (unique-values-sql table-name filter-str category-column)
+                                         (str/join "," (map #(format "c%s double precision" (+ % 2))
+                                                         (range (count categories)))))
                                 where  ""]
                             (format "%s %s %s" select from where))]
-    {:rows    (run-query conn pivot-sql)
+    (run-query conn pivot-sql)))
+
+(defn- apply-pivot [conn table-name {:keys [category-column row-column] :as query} filter-str]
+  (let [categories (run-query-categories conn table-name filter-str category-column)
+        rows (run-pivot-query conn table-name query filter-str categories)]
+    {:rows    rows
      :columns (->> categories
                    (map (fn [title] {:title title :type "number"}))
                    (cons (select-keys row-column [:title :type])))}))


empty commit

empty commit

--- src/cljs/cljs_react_material_ui_example/core.cljs
+++ src/cljs/cljs_react_material_ui_example/core.cljs
@@ -289,3 +289,4 @@

 (om/add-root! reconciler AppRoot (gdom/getElement "app"))

+


GM: Added tests for form view with data

GM: Added tests for form view with data

--- tests/cljs/ona/dataset_tests.cljs
+++ tests/cljs/ona/dataset_tests.cljs
@@ -1,15 +1,32 @@
 (ns ona.dataset-tests
-  (:require-macros [cljs.test :refer (is deftest testing)])
+  (:require-macros [cljs.test :refer (is deftest testing)]
+                   [dommy.macros :refer [node sel sel1]])
   (:require [cljs.core.async :refer [<! chan put!]]
             [dommy.core :as dommy]
             [om.core :as om :include-macros true]
             [ona.dataset :as dataset]
             [ona.state :as state]
-            [ona.utils.dom :as dom-utils]))
+            [ona.utils.dom :as dom-utils]
+            [ona.utils.interop :refer [format]]))

 (def username "username")
 (def auth-token "auth-token")
 (def event-chan (chan))
+
+;; SAMPLE DATA
+
+(defn forms-list-gen [n]
+  (let [rf (fn [max] (format "%02d" (inc (rand-int max))))]
+    (for [i (range n)]
+      {:formid i
+       :title (str "Form " i)
+       :description (str "Form description " i)
+       :num_of_submissions i
+       :downloadable (even? i)
+       :date_created (str "2012-" (rf 12) "-" (rf 30))
+       :metadata [{:data_type "enketo_url" :data_value "ENKETO_URL"}
+                  {:data_type "enketo_preview_url" :data_value "ENKETO_PREVIEW_URL"}]
+       :last_submission_time (str "2012-" (rf 12) "-" (rf 30))})))

 (defn- form-list-container
   [forms]
@@ -28,3 +45,29 @@
    (testing "no forms message displays"
       (is (re-find #"You don't have any forms"
                    (dommy/text (form-list-container []))))))
+
+(deftest forms-list-renders-properly
+   (let [myforms (remove #(= (:downloadable %) false) (forms-list-gen 5))
+         cont (form-list-container myforms)
+         forms-table (sel1 cont :.forms-table)]
+     (testing "forms list renders all forms"
+        (is (= (count myforms) (count (sel cont :tr))))
+        (is (= (map :title myforms)
+               (map dommy/text (sel forms-table :a.dataset-name))))
+        (is (= (map :downloadable myforms)
+               (map #(dommy/has-class? % "pager-icon-red")
+                    (sel forms-table :span.num-datasets-pager))))
+        (is (= (map #(not (:downloadable %)) myforms)
+               (map #(dommy/has-class? % "pager-icon-grey")
+                    (sel forms-table :span.num-datasets-pager))))
+        (is (= (count (sel :tr forms-table))
+               (count (sel :li.replace-active forms-table))))
+        (is (every? #{true}
+                    (map (fn [form el]
+                           (if (re-find #"no records" (dommy/text el))
+                             (zero? (:num_of_submissions form))
+                             (pos? (:num_of_submissions form))))
+                         myforms (sel forms-table :span.when)))))
+
+     (testing "Last submission is default sorter"
+        (is (= (dommy/text (sel1 cont :.filter-criteria))) "Last Submission "))))


Fix test fn call.

Fix test fn call.

--- test/onyx/peer/killed_job_test.clj
+++ test/onyx/peer/killed_job_test.clj
@@ -83,7 +83,7 @@
     :onyx/batch-size batch-size}

    {:onyx/name :inc
-    :onyx/fn :onyx.peer.kill-job-test/my-inc
+    :onyx/fn :onyx.peer.killed-job-test/my-inc
     :onyx/type :function
     :onyx/consumption :concurrent
     :onyx/batch-size batch-size}
@@ -110,7 +110,7 @@
     :onyx/batch-size batch-size}

    {:onyx/name :inc
-    :onyx/fn :onyx.peer.kill-job-test/my-inc
+    :onyx/fn :onyx.peer.killed-job-test/my-inc
     :onyx/type :function
     :onyx/consumption :concurrent
     :onyx/batch-size batch-size}


Update nimbus.clj

Update nimbus.clj

Passing Nimbus Conf to TopologyValidator.

--- storm-core/src/clj/backtype/storm/daemon/nimbus.clj
+++ storm-core/src/clj/backtype/storm/daemon/nimbus.clj
@@ -907,7 +907,8 @@
           (.validate ^backtype.storm.nimbus.ITopologyValidator (:validator nimbus)
                      storm-name
                      (from-json serializedConf)
-                     topology)
+                     topology
+                     conf)
           (swap! (:submitted-count nimbus) inc)
           (let [storm-id (str storm-name "-" @(:submitted-count nimbus) "-" (current-time-secs))
                 storm-conf (normalize-conf


Wrap the two-db shutdown call in a with-connection to ensure the correct connection is used when shutting down an hsql instance

--- test/com/puppetlabs/puppetdb/test/http/v2/facts.clj
+++ test/com/puppetlabs/puppetdb/test/http/v2/facts.clj
@@ -388,7 +388,8 @@
 (defn with-shutdown-after [dbs f]
   (f)
   (doseq [db dbs]
-    (sql/do-commands "SHUTDOWN")))
+    (sql/with-connection db
+      (sql/do-commands "SHUTDOWN"))))

 (deftest ^{:postgres false} two-database-fact-query-config
   (let [read-db (init-db (create-db-map) true)


Removed unnecessary comments.

Removed unnecessary comments.

--- test/freactive/dom_perf.cljs
+++ test/freactive/dom_perf.cljs
@@ -47,18 +47,6 @@

 (defonce n (atom 4))

-;(defn left-offset-x [i]
-;  (rx (* (inc i) (/ @mouse-x (inc @n)))))
-;
-;(defn right-offset-x [i]
-;  (rx (let [mx @mouse-x] (+ mx (* (inc i) (/ (- @width mx) (inc @n)))))))
-;
-;(defn top-offset-y [j]
-;  (rx (* (inc j) (/ @mouse-y (inc @n)))))
-;
-;(defn bottom-offset-y [j]
-;  (rx (let [my @mouse-y] (+ my (* (inc j) (/ (- @height my) (inc @n)))))))
-
 (defn- spacing-factor [n i]
   (let [i (inc i)
         n (inc n)
@@ -89,71 +77,27 @@
    {:width "100%" :height "100%"
      :style {:position "absolute" :left 0 :top "1em"}}
    (circle mouse-x mouse-y)
-    (debug-rx
-      (rx (let [n* @n
-                spacer (partial spacing-factor n*)
-                offsets (map spacer (range n*))
-                lefts (vec (for [x offsets] (rx (* x @mouse-x))))
-                rights (vec (for [x (reverse offsets)] (rx (let [w @width] (- w (* x (- w @mouse-x)))))))
-                tops (vec (for [y offsets] (rx (* y @mouse-y))))
-                bottoms (vec (for [y (reverse offsets)] (rx (let [h @height] (- h (* y (- h @mouse-y)))))))]
-            [:svg/g
-             (for [i (range n*)] (circle (nth lefts i) mouse-y))
-             (for [i (range n*)] (circle (nth rights i) mouse-y))
-             (for [j (range n*)] (circle mouse-x (nth tops j)))
-             (for [j (range n*)] (circle mouse-x (nth bottoms j)))
-             (for [i (range n*) j (range n*)] (circle (nth lefts i) (nth tops j)))
-             (for [i (range n*) j (range n*)] (circle (nth lefts i) (nth bottoms j)))
-             (for [i (range n*) j (range n*)] (circle (nth rights i) (nth tops j)))
-             (for [i (range n*) j (range n*)] (circle (nth rights i) (nth bottoms j)))]))
-      (fn [capture]
-        (println "captured" capture))
-      (fn [_ _]
-        (println "invalidated")))
-    ;(rx [:svg/g (for [i (range @n)] (circle (left-offset-x i) mouse-y))])
-   ;(rx [:svg/g (for [i (range @n)] (circle (right-offset-x i) mouse-y))])
-   ;(rx [:svg/g (for [j (range @n)] (circle mouse-x (top-offset-y j)))])
-   ;(rx [:svg/g (for [j (range @n)] (circle mouse-x (bottom-offset-y j)))])
-   ;(rx [:svg/g (for [i (range @n) j (range @n)]
-   ;               (circle (left-offset-x i) (top-offset-y j)))])
-   ;(rx [:svg/g (for [i (range @n) j (range @n)]
-   ;               (circle (right-offset-x i) (top-offset-y j)))])
-   ;(rx [:svg/g (for [i (range @n) j (range @n)]
-   ;               (circle (left-offset-x i) (bottom-offset-y j)))])
-   ;(rx [:svg/g (for [i (range @n) j (range @n)]
-   ;               (circle (right-offset-x i) (bottom-offset-y j)))])
-
-    ;(btn (rx (- @width 40)) 16 "red" "-" (fn [e] (swap! n dec)))
-    ;(btn (rx (- @width 16)) 16 "green" "+" (fn [e] (swap! n inc)))
-
-    ;[:svg/g {:on-mousedown (fn [e] (swap! n dec))}
-    ; [:svg/circle {:fill "red"
-    ;               :r    8 :cx (rx ) :cy 16}]
-    ; :svg/text {:x (rx (- @width 50))}]
-    ;[:svg/circle {:fill "green" :on-mousedown (fn [e] (swap! n inc))
-    ;              :r 8 :cx (rx (- @width 16)) :cy 16}]
-    ;
-    ]
-
-   ])
+    (rx (let [n* @n
+              spacer (partial spacing-factor n*)
+              offsets (map spacer (range n*))
+              lefts (vec (for [x offsets] (rx (* x @mouse-x))))
+              rights (vec (for [x (reverse offsets)] (rx (let [w @width] (- w (* x (- w @mouse-x)))))))
+              tops (vec (for [y offsets] (rx (* y @mouse-y))))
+              bottoms (vec (for [y (reverse offsets)] (rx (let [h @height] (- h (* y (- h @mouse-y)))))))]
+          [:svg/g
+           (for [i (range n*)] (circle (nth lefts i) mouse-y))
+           (for [i (range n*)] (circle (nth rights i) mouse-y))
+           (for [j (range n*)] (circle mouse-x (nth tops j)))
+           (for [j (range n*)] (circle mouse-x (nth bottoms j)))
+           (for [i (range n*) j (range n*)] (circle (nth lefts i) (nth tops j)))
+           (for [i (range n*) j (range n*)] (circle (nth lefts i) (nth bottoms j)))
+           (for [i (range n*) j (range n*)] (circle (nth rights i) (nth tops j)))
+           (for [i (range n*) j (range n*)] (circle (nth rights i) (nth bottoms j)))]))
+    ]])

 (dom/mount! (.getElementById js/document "root") (view))

-(fw/watch-and-reload
-  ;; :websocket-url "ws://localhost:3449/figwheel-ws" default
-  ;;:jsload-callback (fn [] (print "reloaded")
-  )
-
-
-;; MBA Chrome
-;; n=4, 37-43fps
-;; n=8, 20-30fps
-;; n-12, 4.7fps
-;;
-;; After refactor request-animation-frame
-;; n=4, 47-57fps
-;; n=8, 28fps
-;; n=12, 18fps
+(fw/watch-and-reload)


parse-time is parse-date

parse-time is parse-date

--- test/ontrail/test/mutate.clj
+++ test/ontrail/test/mutate.clj
@@ -19,6 +19,10 @@
 (deftest basic-exercise-is-valid
   (is (valid? basic-exercise)))

+;(deftest test-parse-distance
+;  (let [hour (* 60 60 100)]
+;    (is (= hour (parse-distance "1h")))))
+
 (deftest test-db-insertable-from-basic-user-ex
   (is (= {:title "A title"
           :body "Pom"
@@ -29,7 +33,7 @@
           :avghr 0
           :distance 10000
           :duration (* 30 60 100)
-          :creationDate (parse-time "20.4.2012")
-          :lastModifiedDate (parse-time "20.4.2012")}
+          :creationDate (parse-date "20.4.2012")
+          :lastModifiedDate (parse-date "20.4.2012")}
          (from-user-ex "Esko" basic-exercise))
          "Basic user data import test."))


Externs

Externs

--- examples/shopping-cart/project.clj
+++ examples/shopping-cart/project.clj
@@ -48,7 +48,8 @@
                ;; lein cljsbuild once min
                {:id           "min"
                 :source-paths ["assets/cljs"]
-                :compiler     {:output-to     "assets/public/js/compiled/frontend.js"
+                :compiler     {:externs       ["assets/externs/initialProps.js"]
+                               :output-to     "assets/public/js/compiled/frontend.js"
                                :main          frontend.core
                                :optimizations :advanced
                                :pretty-print  false}}]}


Remove dependency

Remove dependency

--- project.clj
+++ project.clj
@@ -11,7 +11,6 @@
                  [org.clojure/core.async "0.2.374"
                   :exclusions [org.clojure/tools.reader]]
                  [org.omcljs/om "1.0.0-alpha30"]
-                 [racehub/om-bootstrap "0.5.0"]             ; Bootstrap support for om
                  [cljs-ajax "0.5.3"]                        ; AJAX for om
                  [com.cognitect/transit-cljs "0.8.237"]     ; Better JSON support
                  ]


Release version 0.7.3.

Release version 0.7.3.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject org.onyxplatform/onyx-sql "0.7.3-SNAPSHOT"
+(defproject org.onyxplatform/onyx-sql "0.7.3"
   :description "Onyx plugin for JDBC-backed SQL databases"
   :url "https://github.com/MichaelDrogalis/onyx-sql"
   :license {:name "Eclipse Public License"


version increments

version increments

--- project.clj
+++ project.clj
@@ -2,18 +2,18 @@
   :description "A training blog."
   :dependencies [
                  [org.clojure/clojure "1.6.0"]
-                 [digest "1.4.3"]
-                 [com.draines/postal "1.10.2"]
-                 [aleph "0.3.2"]
-                 [compojure "1.1.8"]
-                 [stencil "0.3.3"]
-                 [ring "1.3.0"]
-                 [clj-time "0.5.1"]
+                 [digest "1.4.4"]
+                 [com.draines/postal "1.11.1"]
+                 [aleph "0.3.3"]
+                 [compojure "1.2.0"]
+                 [stencil "0.3.4"]
+                 [ring "1.3.1"]
+                 [clj-time "0.8.0"]
                  [enlive "1.1.5"]
                  [org.clojure/core.memoize "0.5.6"]
                  [org.clojure/data.json "0.2.5"]
                  [com.lambdaworks/scrypt "1.3.3"]
-                 [lamina "0.5.2"]
+                 [lamina "0.5.4"]
                  [org.slf4j/slf4j-api "1.6.4"]
                  [ch.qos.logback/logback-classic "1.0.3"]
                  [commons-codec/commons-codec "1.6"]


dont use tmp

dont use tmp

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

   :npm {:dependencies [[express "4.13.3"]]
         ; writeable package.json on heroku - should be :target-path
-        :root "tmp"}
+        :root "target"}

   :plugins [[org.bodil/lein-noderepl "0.1.11"]
             [lein-cljsbuild "1.0.6"]
@@ -28,7 +28,7 @@
   :cljsbuild {:builds
               [{:source-paths ["src/cljs"]
                 :compiler {:target :nodejs
-                           :output-to "tmp/out/server.js"
+                           :output-to "target/out/server.js"
                            :jar true
                            :optimizations :simple
                            :pretty-print true}}]})


Bump some dependencies.

Bump some dependencies.

--- project.clj
+++ project.clj
@@ -3,20 +3,21 @@
   :url "https://github.com/mpietrzak/sqls"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
-  :dependencies [[io.aviso/pretty "0.1.26"]
-                 [fipp "0.6.5"]
+  :dependencies [[com.fifesoft/rsyntaxtextarea "2.6.0"]
+                 [fipp "0.6.7"]
+                 [io.aviso/pretty "0.1.32"]
                  [org.clojure/clojure "1.8.0"]
                  [org.clojure/data.json "0.2.6"]
                  [org.clojure/java.jdbc "0.6.1"]
                  [org.clojure/tools.cli "0.3.5"]
                  [org.clojure/tools.logging "0.3.1"]
-                 [org.xerial/sqlite-jdbc "3.8.11.2"]
+                 [org.xerial/sqlite-jdbc "3.15.1"]
                  [seesaw "1.4.5"]]
   :main sqls.core
   :java-source-paths ["src"]
   :javac-options ["-target" "1.7" "-source" "1.7"]
   :target-path "target/%s"
-  :plugins [[lein-codox "0.9.5"]]
+  :plugins [[lein-codox "0.10.2"]]
   :codox {:output-dir "doc/codox"}
   :profiles {:uberjar {:aot :all}
              :repl {:dependencies [[org.clojure/tools.namespace "0.2.11"]]}


Version 1.0.17-SNAPSHOT

Version 1.0.17-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject mixradio/radix "1.0.16"
+(defproject mixradio/radix "1.0.17-SNAPSHOT"
   :description "A Clojure library providing the root functionality for web services"
   :license "https://github.com/mixradio/radix/blob/master/LICENSE"
   :url "https://github.com/mixradio/radix"


Remove dev stuff from relase target

Remove dev stuff from relase target

--- project.clj
+++ project.clj
@@ -35,7 +35,7 @@
                 :optimizations :simple
                 :pretty-print true
                 :cache-analysis true}}
-    {:source-paths ["ui_src" "dev_src"]
+    {:source-paths ["ui_src"]
      :id "frontend-release"
      :compiler {:output-to "resources/public/js/ui-core.js"
                 :output-dir "resources/public/js/ui-release-out"


lein-release plugin: bumped version from 0.55 to 0.56-SNAPSHOT for next development cycle

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


Use 4 point versioning so that template version can match Onyx

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject onyx-plugin/lein-template "0.7.0"
+(defproject onyx-plugin/lein-template "0.7.0.0"
   :description "A Leiningen 2.0 template for new Onyx plugins"
   :url "http://github.com/MichaelDrogalis/onyx-plugin"
   :license {:name "Eclipse Public License"


Release version 0.10.0.0-beta14.

Release version 0.10.0.0-beta14.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject org.onyxplatform/onyx-metrics "0.10.0.0-SNAPSHOT"
+(defproject org.onyxplatform/onyx-metrics "0.10.0.0-beta14"
   :description "Instrument Onyx workflows"
   :url "https://github.com/onyx-platform/onyx-metrics"
   :license {:name "Eclipse Public License"
@@ -11,7 +11,7 @@
                              :username :env
                              :password :env
                              :sign-releases false}}
-  :dependencies [[org.onyxplatform/onyx "0.10.0-beta13"]
+  :dependencies [[org.onyxplatform/onyx "0.10.0-beta14"]
                  ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
                  [org.clojure/clojure "1.8.0"]
                  [metrics-clojure "2.8.0"]]


Bump clojure-complete dependency

Bump clojure-complete dependency

--- project.clj
+++ project.clj
@@ -10,7 +10,7 @@
                    [org.clojure/tools.cli "0.2.1"]
                    [com.cemerick/drawbridge "0.0.6"]
                    [trptcolin/versioneer "0.1.0"]
-                   [clojure-complete "0.2.1"]
+                   [clojure-complete "0.2.2"]
                    [org.clojars.trptcolin/sjacket "0.1.1" :exclusions [org.cojure/clojure]]]
     :profiles {:dev {:dependencies ~dev-deps}}
     :dev-dependencies ~dev-deps


lein-release plugin: preparing 0.99 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject exploud "0.99-SNAPSHOT"
+(defproject exploud "0.99"
   :description "Exploud service"
   :url "http://github.brislabs.com/cloud-tooling/exploud/wiki"


update cljs

update cljs

--- project.clj
+++ project.clj
@@ -3,15 +3,19 @@
   :url "http://showkr.solovyov.net/"

   :plugins [[lein-cljsbuild "1.0.3"]
-            [lein-figwheel "0.1.3-SNAPSHOT"]]
+            [lein-figwheel "0.1.3-SNAPSHOT"]
+            [lein-npm "0.4.0"]]

   :dependencies [[org.clojure/clojure "1.6.0"]
-                 [org.clojure/clojurescript "0.0-2280"]
+                 [org.clojure/clojurescript "0.0-2311"]
                  [com.facebook/react "0.11.1"]
+                 [quiescent "0.1.4"]
+                 [datascript "0.1.6"]
+                 [keybind "0.1.0"]
                  [medley "0.5.0"]
-                 [quiescent "0.1.4"]
-                 [keybind "0.1.0"]
                  [figwheel "0.1.3-SNAPSHOT"]]
+
+  :node-dependencies [[less "1.4.2"]]

   :source-paths ["src"]

@@ -32,6 +36,6 @@
                          :externs ["react/externs/react.js"]}}]}

   :figwheel {
-    :port 8888
+    :server-port 8888
     :css-dirs ["resources/public"]
   })


start working on 1.4.3

start working on 1.4.3

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject babel "1.4.2"
+(defproject babel "1.4.3-SNAPSHOT"
   :description "A Clojure library for generation of expressions from grammars and lexicons."
   :url "http://github.com/ekoontz/babel"
   :license {:name "Proprietary: all rights reserved. No distribution allowed without consent of owners."}


Depend on most recent LambdaCD version to be compatible with most recent leiningen

--- project.clj
+++ project.clj
@@ -7,7 +7,7 @@
                         ["releases" :clojars]]
   :dependencies [[org.clojure/clojure "1.7.0"]
                  [compojure "1.1.8"]
-                 [lambdacd "0.9.0"]]
+                 [lambdacd "0.13.5"]]
   :test2junit-run-ant true
   :profiles {:dev {:dependencies [[ring-server "0.3.1"]
                                   [ring/ring-mock "0.2.0"]]


set version to 0.1.0

set version to 0.1.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject shelter "0.1.0-SNAPSHOT"
+(defproject shelter "0.1.0"
   :description "Manage user account data"
   :url "https://gitub.com/eikek/shelter"
   :license {:name "Eclipse Public License"


Added test profile.

Added test profile.

--- project.clj
+++ project.clj
@@ -9,6 +9,7 @@
   :url "https://github.com/oubiwann/cmr-sample-data"
   :license {:name "Apache License 2.0"
             :url "https://www.apache.org/licenses/LICENSE-2.0"}
+  :exclusions [org.clojure/clojure]
   :dependencies [
     [cheshire "5.8.0"]
     [org.clojure/clojure "1.8.0"]]
@@ -21,4 +22,11 @@
       :source-paths ["dev-resources/src"]
       :repl-options {
         :init-ns cmr.sample-data.dev
-        :prompt ~get-prompt}}})
+        :prompt ~get-prompt}}
+    :test {
+      :plugins [
+        [lein-ancient "0.6.12"]
+        [jonase/eastwood "0.2.5"]
+        [lein-bikeshed "0.5.0"]
+        [lein-kibit "0.1.5"]
+        [venantius/yagni "0.1.4"]]}})


release 1.8.10

release 1.8.10

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
 ;; babel.http: workbook, compojure http routes, querying from GETs, updating from POSTs, PUTs and PATCHes. all the ring/* and servlet-api :dependencies go here.
 ;; babel.<2 letter language code> babel.es, babel.en, etc.
 ;;
-(defproject babel "1.8.10-SNAPSHOT"
+(defproject babel "1.8.10"
   :description "A library for generation and parsing of expressions from grammars and lexicons."
   :url "http://github.com/ekoontz/babel"
   :license {:name "Proprietary: all rights reserved. No distribution allowed without consent of owners."}


bump version for 0.2.0 release

bump version for 0.2.0 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject puppetlabs/kitchensink "0.2.0-SNAPSHOT"
+(defproject puppetlabs/kitchensink "0.2.0"
   :description "Clojure utility functions"
   :license {:name "Apache License, Version 2.0"
             :url "http://www.apache.org/licenses/LICENSE-2.0.html"}


Updated Clojure dependency to 1.8.0

Updated Clojure dependency to 1.8.0

--- project.clj
+++ project.clj
@@ -5,7 +5,7 @@
         :url "https://github.com/uncomplicate/clojurecl"}
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
-  :dependencies [[org.clojure/clojure "1.8.0-RC5"]
+  :dependencies [[org.clojure/clojure "1.8.0"]
                  [org.jocl/jocl "0.2.0-RC00"]
                  [org.clojure/core.async "0.2.374"]
                  [vertigo "0.1.4"]]


Added logging

Added logging

--- project.clj
+++ project.clj
@@ -5,6 +5,7 @@
   :dependencies [[org.clojure/clojure "1.8.0"]
                  [clojurewerkz/quartzite "2.0.0"]
                  [environ "1.0.3"]
+                 [ch.qos.logback/logback-classic "1.1.3"]
                  [com.draines/postal "2.0.0"]
                  [amazonica "0.3.58"]]
   :resource-paths ["src/resources"]


bumped up cljscript version

bumped up cljscript version

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
   :dependencies [[org.clojure/clojure "1.7.0"]
                  [clj-http "2.0.0"]
                  [enlive "1.1.6"]
-                 [org.clojure/clojurescript "1.7.107"]]
+                 [org.clojure/clojurescript "1.7.122"]]
   :main cljs-workcalendar.app
   :plugins [[lein-cljsbuild "1.0.5"]]
   :cljsbuild {


adding "v" prefix to tagging, restructured project.clj

--- project.clj
+++ project.clj
@@ -3,9 +3,6 @@
   :url "https://github.com/otto-de/tesla-microservice"
   :license {:name "Apache License 2.0"
             :url  "http://www.apache.org/license/LICENSE-2.0.html"}
-  :scm {:name "git"
-        :url  "https://github.com/gorillalabs/tesla"}
-  :deploy-repositories [["releases" :clojars]]
   :dependencies [[org.clojure/clojure "1.8.0"]
                  [mount "0.1.10"]
                  [gorillalabs/config "1.0.3"]
@@ -58,18 +55,34 @@

-  ;;  :filespecs [{:type :paths :paths ["test-utils"]}]
-
   :exclusions [org.clojure/clojure
                org.slf4j/slf4j-nop
                org.slf4j/slf4j-log4j12
                log4j
                commons-logging/commons-logging]

+  :test-paths ["test" "test-resources" "test-utils"]
   :test-selectors {:default     (constantly true)
                    :integration :integration
                    :unit        :unit
                    :all         (constantly true)}
+
+  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  ;; Releasing stuff
+  ;;
+  :scm {:name "git"
+        :url  "https://github.com/gorillalabs/tesla"}
+  :deploy-repositories [["releases" :clojars]]
+  :release-tasks [["vcs" "assert-committed"]
+                  ["change" "version" "leiningen.release/bump-version" "release"]
+                  ["vcs" "commit"]
+                  ["vcs" "tag" "v"]
+                  ["deploy"]
+                  ["change" "version" "leiningen.release/bump-version"]
+                  ["vcs" "commit"]
+                  ["vcs" "push"]]
+
+
   :profiles {:uberjar {:aot :all}
              :dev     {:dependencies [[javax.servlet/servlet-api "2.5"]
                                       [org.clojure/tools.namespace "0.2.11"]
@@ -83,4 +96,4 @@

                        :env          {:system "SYSTEM"
                                       :env    "ENV"}}}
-  :test-paths ["test" "test-resources" "test-utils"])
+  )


Bump dependency (Timbre 1.5.2)

Bump dependency (Timbre 1.5.2)

--- project.clj
+++ project.clj
@@ -7,7 +7,7 @@
                  [commons-pool/commons-pool   "1.6"]
                  [commons-codec/commons-codec "1.6"]
                  [org.clojure/data.json       "0.2.1"]
-                 [com.taoensso/timbre         "1.4.0"]
+                 [com.taoensso/timbre         "1.5.2"]
                  [com.taoensso/nippy          "1.1.0"]]
   :profiles {:1.3   {:dependencies [[org.clojure/clojure "1.3.0"]]}
              :1.4   {:dependencies [[org.clojure/clojure "1.4.0"]]}


RR: bump to 0.1.22-SNAPSHOT

RR: bump to 0.1.22-SNAPSHOT

--- project.clj
+++ project.clj
@@ -3,7 +3,7 @@
       [path]
       (str "resources/public/js/lib/" path))

-(defproject onaio/hatti "0.1.21-SNAPSHOT"
+(defproject onaio/hatti "0.1.22-SNAPSHOT"
   :description "A cljs dataview from your friends at Ona.io"
   :license "Apache 2, see LICENSE"
   :url "https://github.com/onaio/hatti"


Update dependencies.

Update dependencies.

--- project.clj
+++ project.clj
@@ -18,7 +18,7 @@
     [hiccup "2.0.0-alpha1"] ; HTML rendering https://github.com/weavejester/hiccup
     [jfree/jfreechart "1.0.13"] ; Java chart library http://www.jfree.org/jfreechart/
     [manifold "0.1.7-alpha5"] ; Async programming tools https://github.com/ztellman/manifold
-    [open-company/lib "0.11.14"] ; Library for OC projects https://github.com/open-company/open-company-lib
+    [open-company/lib "0.11.15"] ; Library for OC projects https://github.com/open-company/open-company-lib
     ; In addition to common functions, brings in the following common dependencies used by this project:
     ; Component - Component Lifecycle https://github.com/stuartsierra/component
     ; Schema - Data validation https://github.com/Prismatic/schema
@@ -43,11 +43,11 @@
       :env {
       }
       :dependencies [
-        [philoskim/debux "0.3.6"] ; `dbg` macro around -> or let https://github.com/philoskim/debux
+        [philoskim/debux "0.3.9"] ; `dbg` macro around -> or let https://github.com/philoskim/debux
       ]
       :plugins [
         [jonase/eastwood "0.2.4"] ; Linter https://github.com/jonase/eastwood
-        [lein-kibit "0.1.5"] ; Static code search for non-idiomatic code https://github.com/jonase/kibit
+        [lein-kibit "0.1.6-beta1"] ; Static code search for non-idiomatic code https://github.com/jonase/kibit
       ]
     }


Added official url into project.clj

Added official url into project.clj

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (defproject org.cluxis.hbase-clj "0.1.0-SNAPSHOT"
   :description "Talk to hbase in clojure"
-  :url ""
+  :url "https://github.com/cluXiss/hbase-clj"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :profiles {:dev {:dependencies [[midje "1.7.0"]]}


Upgrade to 0.11.0-alpha4.

Upgrade to 0.11.0-alpha4.

--- project.clj
+++ project.clj
@@ -1,9 +1,9 @@
-(defproject workshop "0.11.0-alpha3"
+(defproject workshop "0.11.0-alpha4"
   :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.11.0-alpha3"]
+                 [org.onyxplatform/onyx "0.11.0-alpha4"]
                  [org.slf4j/slf4j-api "1.7.12"]
                  [org.slf4j/slf4j-nop "1.7.12"]]
   :profiles {:dev {:dependencies [[org.clojure/tools.namespace "0.2.10"]


prep 0.1.5

prep 0.1.5

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject closp/lein-template "0.1.4"
+(defproject closp/lein-template "0.1.5-Snapshot"
   :description "A webframework combining several technologies based on luminus and chestnut."
   :url "https://github.com/sveri/closp"
   :license {:name "Eclipse Public License"


Remove old comment.

Remove old comment.

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

   ;; All profile dependencies
   :dependencies [
-    ;; Don't upgrade to aplha16 until zprint fixes this issue: https://github.com/kkinnear/zprint/issues/26
     [org.clojure/clojure "1.9.0-alpha16"] ; Lisp on the JVM http://clojure.org/documentation
     [org.clojure/tools.cli "0.3.5"] ; Command-line parsing https://github.com/clojure/tools.cli
     [ring/ring-devel "1.6.1"] ; Web application library https://github.com/ring-clojure/ring


com.taoensso/timbre 4.1.4 released

com.taoensso/timbre 4.1.4 released

--- project.clj
+++ project.clj
@@ -26,7 +26,7 @@
                  [caesium "0.3.0"]

                  ;; Logging
-                 [com.taoensso/timbre "4.1.2"
+                 [com.taoensso/timbre "4.1.4"
                   :exclusions [org.clojure/clojure]]

                  ;; REST API


Removed a few design spike artifacts.

Removed a few design spike artifacts.

--- test/simple_symbolic_regression_clojure/gp_test.clj
+++ test/simple_symbolic_regression_clojure/gp_test.clj
@@ -1,7 +1,6 @@
 (ns simple-symbolic-regression-clojure.gp-test
   (:use midje.sweet)
   (:use [simple-symbolic-regression-clojure.gp])
-  (:use (bigml.sampling [simple :as simple]))
   )

 ;; helpers for testing
@@ -20,21 +19,6 @@
   )))

 ;; a bit of exploration on how to test stochastic functions
-
-(fact "we can select a subsample of a collection using bigml.sampling"
-  (count (take 5 (simple/sample (range 1000)))) => 5
-  ; (take 5 (simple/sample (range 1000))) => [some collection of 5 numbers]
-  )
-
-(fact "but we can stub that by name"
-  (with-redefs [simple/sample (fn [s] (cycle [1 2]))]
-    (take 5 (simple/sample (range 1000))) => (just [1 2 1 2 1]))
-  )
-
-(fact "we can stub core random number generation if we want to"
-  (with-redefs [rand-int (fn [arg] 88)]
-    [(rand-int 11) (rand-int 22) (rand-int 33)] => (just [88 88 88]))
-  )

 (fact "we can call step-cycler to produce a number from the cycler"
   (let [cc (cycler [-1 2 -3 4])]
@@ -112,5 +96,5 @@
       (one-point-crossover [1 1 1 1 1 1 1 1] [2 2 2 2 2 2 2 2]) => (just [1 2 2 2])
       (one-point-crossover [1 1 1 1 1 1 1 1] [2 2 2 2 2 2 2 2]) => (just [1 1 1 1 1 1 1 2 2 2 2 2 2 2 2])
       (one-point-crossover [1 1 1 1 1 1 1 1] [2 2 2 2 2 2 2 2]) => (just [2])
-      ))
+      ))
   )


figwheel false on prod build

figwheel false on prod build

--- project.clj
+++ project.clj
@@ -53,6 +53,7 @@
                        :cljsbuild {:jar true
                                    :builds [{:id "prod"
                                              :source-paths ["src-cljs"]
+                                             :figwheel false
                                              :compiler {:main doctopus.main
                                                         :source-map "resources/public/assets/scripts/main.js.map"
                                                         :output-to "resources/public/assets/scripts/main.js"


Version 4.0.0-alpha2

Version 4.0.0-alpha2

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject neko "4.0.0-SNAPSHOT"
+(defproject neko "4.0.0-alpha2"
   :description "Neko is a toolkit designed to make Android development using Clojure easier and more fun."
   :url "https://github.com/clojure-android/neko"
   :license {:name "Eclipse Public License"


Add enfocus as dependency

Add enfocus as dependency

--- project.clj
+++ project.clj
@@ -4,7 +4,8 @@
   :url "https://github.com/bkolobara/clojurescript-console"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
-  :dependencies [[org.clojure/clojure "1.5.1"]]
+  :dependencies [[org.clojure/clojure "1.5.1"]
+                 [enfocus "2.0.0"]]
   :plugins [[lein-cljsbuild "0.3.3"]]
   :cljsbuild {
     :builds [{


fixed release

fixed release

--- project.clj
+++ project.clj
@@ -27,7 +27,7 @@
   :ring {:handler ontrail.core/app}
   :aliases {"import" ["run" "-m" "ontrail.heiaimport/import-json"]}
   :aot  [ontrail.core]
-  :javac-options     ["-target" "1.8" "-source" "1.8"]
+  :javac-options     ["-target" "1.7" "-source" "1.7"]
   :java-source-paths ["src/main/java" "src/test/java"]
   :main ontrail.core)


Removing garbage that I accidentally introduced

--- project.clj
+++ project.clj
@@ -53,7 +53,7 @@
                  [slugger "1.0.1"]
                  [riemann-clojure-client "0.4.2"]
                  [com.google.protobuf/protobuf-java "2.6.1"]
-g
+
                  ;; Docs
                  [markdown-clj "0.9.86"]
                  [hiccup "1.0.5"]]


Prepare for next development version.

Prepare for next development version.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject org.toomuchcode/clara-rules "0.8.6"
+(defproject org.toomuchcode/clara-rules "0.8.7-SNAPSHOT"
   :description "Clara Rules Engine"
   :url "http://rbrush.github.io/clara-rules/"
   :license {:name "Eclipse Public License"


Version 0.11.1

Version 0.11.1

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject grafter/grafter "0.11.1-SNAPSHOT"
+(defproject grafter/grafter "0.11.1"
   :description "Tools for the hard graft of linked data processing"
   :url "http://grafter.org/"
   :license {:name "Eclipse Public License - v1.0"


Better version in the project.clj

Better version in the project.clj

This matches the pom.xml at least.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject org.clojure/test.check "0.9.1-SNAPSHOT"
+(defproject org.clojure/test.check "0.10.0-SNAPSHOT"
   :description "A QuickCheck inspired property-based testing library."
   :url "https://github.com/clojure/test.check"
   :license {:name "Eclipse Public License"


Update version to 0.1.3-SNAPSHOT for development

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject puppetlabs/kitchensink "0.1.2"
+(defproject puppetlabs/kitchensink "0.1.3-SNAPSHOT"
   :description "Clojure utility functions"
   :license {:name "Apache License, Version 2.0"
             :url "http://www.apache.org/licenses/LICENSE-2.0.html"}


Upgrade proton to 0.1.6

Upgrade proton to 0.1.6

--- project.clj
+++ project.clj
@@ -11,7 +11,7 @@
                  [bgzf4j "0.1.0"]
                  [com.climate/claypoole "1.1.4"]
                  [camel-snake-kebab "0.4.0"]
-                 [proton "0.1.3"]]
+                 [proton "0.1.6"]]
   :profiles {:dev {:dependencies [[org.clojure/clojure "1.8.0"]
                                   [cavia "0.4.2"]
                                   [criterium "0.4.4"]


updated project.clj

updated project.clj

--- project.clj
+++ project.clj
@@ -12,7 +12,7 @@
                  [org.slf4j/slf4j-api "1.7.5"]
                  [pe-core-utils "0.0.7"]
                  [clj-time "0.8.0"]
-                 [com.datomic/datomic-pro "0.9.5130" ; need 'pro' to test log-related functions
+                 [com.datomic/datomic-free "0.9.5130" ; need 'pro' to test log-related functions
                   :exclusions [org.slf4j/slf4j-nop
                                joda-time
                                org.slf4j/slf4j-log4j12]]]


Version 0.5.1-SNAPSHOT

Version 0.5.1-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject duratom "0.5.0"
+(defproject duratom "0.5.1-SNAPSHOT"
   :description "A durable atom/agent type for Clojure."
   :url "https://github.com/jimpil/duratom"
   :license {:name "Eclipse Public License"


remove cljs-transit dependency

remove cljs-transit dependency

--- project.clj
+++ project.clj
@@ -4,7 +4,6 @@
   :license      {:name "MIT"}
   :dependencies [[org.clojure/clojure        "1.9.0-alpha5"]
                  [org.clojure/clojurescript  "1.9.36"]
-                 [clj-transit "0.8.285"]
                  [reagent "0.6.0-rc"]]

   :profiles {:debug {:debug true}


Cursive REPL support.

Cursive REPL support.

--- project.clj
+++ project.clj
@@ -1,14 +1,19 @@
+;https://github.com/bhauman/lein-figwheel/wiki/Running-figwheel-in-a-Cursive-Clojure-REPL
 (defproject decl-ui "0.1.0-SNAPSHOT"
             :description "FIXME: write description"
             :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-RC1"]
-                           [org.clojure/clojurescript "0.0-3308"]]
+                           [org.clojure/clojurescript "0.0-3308"]
+                           [figwheel-sidecar "0.3.3"]
+                           [figwheel "0.3.3"]]

             :plugins [[lein-cljsbuild "1.0.6"]
                       [lein-doo "0.1.1-SNAPSHOT"]
                       [lein-figwheel "0.3.3"]]
+
+            :figwheel     {:nrepl-port 7888}

             :cljsbuild {:builds [{:id           "app"
                                   :source-paths ["src/"]


Update Codox to 0.10.7

Update Codox to 0.10.7

--- project.clj
+++ project.clj
@@ -8,7 +8,7 @@
                  [ring/ring-jetty-adapter "1.9.0"]
                  [ring/ring-servlet "1.9.0"]]
   :plugins [[lein-sub "0.3.0"]
-            [lein-codox "0.10.3"]]
+            [lein-codox "0.10.7"]]
   :sub ["ring-core"
         "ring-devel"
         "ring-jetty-adapter"


add test selector

add test selector

--- project.clj
+++ project.clj
@@ -63,6 +63,9 @@
                                 :test-paths ["src/test/clojure"]
                                 :source-paths ["test/clojure" "test/java" "test/nginx-working-dir/coroutine-udfs"]
                                 :compile-path "target/testclasses"
+                                :test-selectors {:default (fn [m] (and (:remote m) (not (:async m))))
+                                                 :async :async
+                                                 :all :remote}
                                 :dependencies [
                                               [ring/ring-core "1.2.1"]
                                               [compojure "1.1.6"]


(SERVER-2660) Update to clj-parent 4.4.1

This update brings in the new jruby-utils version, so this commit also
removes the jruby-utils pin.

--- project.clj
+++ project.clj
@@ -1,5 +1,4 @@
 (def ps-version "6.10.0-SNAPSHOT")
-(def jruby-utils-version "3.1.1")

 (defn deploy-info
   [url]
@@ -28,7 +27,7 @@

   :min-lein-version "2.9.1"

-  :parent-project {:coords [puppetlabs/clj-parent "4.3.3"]
+  :parent-project {:coords [puppetlabs/clj-parent "4.4.1"]
                    :inherit [:managed-dependencies]}

   :dependencies [[org.clojure/clojure]
@@ -53,7 +52,7 @@
                  ;; send their logs to logstash, so we include it in the jar.
                  [net.logstash.logback/logstash-logback-encoder]

-                 [puppetlabs/jruby-utils ~jruby-utils-version]
+                 [puppetlabs/jruby-utils]
                  [puppetlabs/clj-shell-utils]
                  [puppetlabs/trapperkeeper]
                  [puppetlabs/trapperkeeper-webserver-jetty9]
@@ -158,7 +157,7 @@
                                                ;; specified in both places. TODO: fix this.
                                                [org.clojure/clojure]
                                                [org.bouncycastle/bcpkix-jdk15on]
-                                               [puppetlabs/jruby-utils ~jruby-utils-version]
+                                               [puppetlabs/jruby-utils]
                                                [puppetlabs/puppetserver ~ps-version]
                                                [puppetlabs/trapperkeeper-webserver-jetty9]]
                       :plugins [[puppetlabs/lein-ezbake "2.1.4"]]


lein-release plugin: preparing 0.28 release

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


release 3.0.2

release 3.0.2

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject babel "3.0.2-SNAPSHOT"
+(defproject babel "3.0.2"
   :description "A library for natural language generation and parsing"
   :url "http://github.com/ekoontz/babel"
   :license {:name "Eclipse Public License"


Bumps to 0.2.1

Bumps to 0.2.1

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject typewriter "0.2.0"
+(defproject typewriter "0.2.1"
   :description "Old-school documentation, meet Simple."
   :url "http://kurisuwhyte.github.io/type.writer"
   :license {:name "MIT"