Update core.match and Midje.

Update core.match and Midje.

--- project.clj
+++ project.clj
@@ -4,23 +4,22 @@
   :license {:name "BSD" :url "http://www.opensource.org/licenses/BSD-3-Clause"}

   :dependencies [[org.clojure/clojure "1.4.0"]
-                 [org.clojure/core.match "0.2.0-alpha11" :exclusions [org.clojure/clojure
-                                                                      org.clojure/core.logic]]
+                 [org.clojure/core.match "0.2.0-alpha12"
+                  :exclusions [org.clojure/core.logic]]
                  [clj-iterate "0.96"]

                  ;;CLJS
                  [com.keminglabs/singult "0.1.6"]
                  [com.keminglabs/reflex "0.1.1"]]

-  :profiles {:dev {:dependencies [[midje "1.4.0"]
-                                  [bultitude "0.1.7"]
+  :profiles {:dev {:dependencies [[midje "1.5.0"]
                                   [com.keminglabs/vomnibus "0.3.0"]]}}

   :min-lein-version "2.0.0"

   :plugins [[com.keminglabs/cljx "0.2.1"]
             [lein-cljsbuild "0.3.0"]
-            [lein-midje "2.0.4"]
+            [lein-midje "3.0.0"]
             [lein-marginalia "0.7.0"]]

   :source-paths ["src/clj" "src/cljs"


Decrement version number

Decrement version number

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject nightcode "1.4.0-SNAPSHOT"
+(defproject nightcode "1.3.1-SNAPSHOT"
   :description "An IDE for Clojure and Java"
   :url "https://github.com/oakes/Nightcode"
   :license {:name "Public Domain"
@@ -18,7 +18,7 @@
                  [lein-droid "0.4.3"]
                  [lein-typed "0.3.5"]
                  [lein-ring "0.9.7"]
-                 [mistakes-were-made "1.6.2"]
+                 [mistakes-were-made "1.6.3"]
                  [net.java.balloontip/balloontip "1.2.4.1"]
                  [org.clojure/clojure "1.8.0"]
                  [org.clojure/core.incubator "0.1.3"]


Adjust project.clj for 4.2.3.1 release

Adjust project.clj for 4.2.3.1 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(def pdb-version "4.2.3.1-SNAPSHOT")
+(def pdb-version "4.2.3.1")

 (defn deploy-info
   "Generate deployment information from the URL supplied and the username and


Version 1.3.1-SNAPSHOT

Version 1.3.1-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (def ks-version "1.3.0")

-(defproject puppetlabs/trapperkeeper "1.3.0"
+(defproject puppetlabs/trapperkeeper "1.3.1-SNAPSHOT"
   :description "A framework for configuring, composing, and running Clojure services."
   ;; Abort when version ranges or version conflicts are detected in
   ;; dependencies. Also supports :warn to simply emit warnings.


no more clj-scsynth

no more clj-scsynth

--- project.clj
+++ project.clj
@@ -6,22 +6,21 @@
                  [org.clojars.nakkaya/miglayout "3.7"]
                  [scenegraph "0.0.1-SNAPSHOT"]

-                 [overtone/clj-scsynth "0.0.2-SNAPSHOT"]
                  [overtone/jsyntaxpane "0.9.5-b27"]
                  [overtone/osc-clj "0.1.4-SNAPSHOT"]
                  [overtone/byte-spec "0.1"]
                  [overtone/midi-clj "0.1"]
-                 [overtone/clj-scsynth "0.0.2-SNAPSHOT"]
                  [overtone/substance "6.0"]
                  [overtone/javadocking "1.4.0"]
+
+		 [overtone/scsynth-jna "3-SNAPSHOT"]

                  ;[scenegraph/decora-hw "0.0.1-SNAPSHOT"] ;; decora-hw and decora-jogl are not yet fully tested
                  ;[scenegraph/decora-jogl "0.0.1-SNAPSHOT"] ;;
                  ;[vijual "0.1.0-SNAPSHOT"]
                  ;[penumbra "0.5.0"]
                  ]
-  :native-dependencies [[overtone/scsynth "3.3.1-SNAPSHOT"]
-                        [overtone/scsynth-jna "3.3.1-SNAPSHOT"]
+  :native-dependencies [
                         ;[lwjgl "2.2.2"]
                         ]
   :dev-dependencies [[native-deps "1.0.0"]


Release version 0.12.0.0-alpha2.

Release version 0.12.0.0-alpha2.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject org.onyxplatform/onyx-metrics "0.12.0.0-SNAPSHOT"
+(defproject org.onyxplatform/onyx-metrics "0.12.0.0-alpha2"
   :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.12.0-alpha1"]
+  :dependencies [[org.onyxplatform/onyx "0.12.0-alpha2"]
                  ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
                  [org.clojure/clojure "1.8.0"]
                  [metrics-clojure "2.8.0"]]


Back to snapshot.

Back to snapshot.

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


lein-release plugin: bumped version from 0.1.5 to 0.1.6-SNAPSHOT for next development cycle

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

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


Update dependencies

Update dependencies

--- project.clj
+++ project.clj
@@ -10,12 +10,12 @@
                  [org.immutant/web "2.1.9"]
                  [selmer "1.11.5"]
                  [cheshire "5.8.0"]
-                 [org.postgresql/postgresql "42.1.4"]
+                 [org.postgresql/postgresql "42.2.0"]
                  [org.clojure/java.jdbc "0.7.5"]
                  [honeysql "0.9.1"]
                  [clj-time "0.14.2"]
                  [buddy/buddy-auth "2.1.0"]
-                 [com.yubico/yubico-validation-client2 "3.0.1"]
+                 [com.yubico/yubico-validation-client2 "3.0.2"]
                  [org.apache.commons/commons-lang3 "3.7"]
                  [org.clojure/tools.logging "0.4.0"]
                  [org.slf4j/slf4j-log4j12 "1.7.25"]]


Revert version.

Revert version.

--- project.clj
+++ project.clj
@@ -13,7 +13,7 @@
                              :sign-releases false}}
   :dependencies [[org.clojure/clojure "1.7.0"]
                  ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
-                 [org.onyxplatform/onyx "0.8.9-SNAPSHOT"]]
+                 [org.onyxplatform/onyx "0.8.8"]]
   :profiles {:dev {:plugins [[lein-set-version "0.4.1"]
                              [lein-update-dependency "0.1.2"]
                              [lein-pprint "1.1.1"]]}


Update clojurescript.test

Update clojurescript.test

--- project.clj
+++ project.clj
@@ -15,7 +15,7 @@
                                   [prismatic/dommy "0.1.2"]]
                    :plugins [[com.keminglabs/cljx "0.3.2"] ;; Must be before Austin: https://github.com/cemerick/austin/issues/37
                              [com.cemerick/austin "0.1.4"]
-                             [com.cemerick/clojurescript.test "0.3.0"]
+                             [com.cemerick/clojurescript.test "0.3.1"]
                              [lein-cljsbuild "1.0.3"]]
                    :hooks [cljx.hooks leiningen.cljsbuild]
                    :cljx {:builds [{:source-paths ["src"]


Update version to 0.1.1-SNAPSHOT

Update version to 0.1.1-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject grafter "0.1.0"
+(defproject grafter "0.1.1-SNAPSHOT"
   :description "RDFization tools"
   :url "http://grafter.org/"
   :license {:name "TODO"


Fix snapshot dependency for release.

Fix snapshot dependency for release.

--- project.clj
+++ project.clj
@@ -26,7 +26,7 @@
                                                            com.google.protobuf/protobuf-java]]
                  [com.climate/claypoole "1.1.4"]
                  [org.clojars.brunchboy/protobuf "0.8.3"]
-                 [ola-clojure "0.1.8-SNAPSHOT" :exclusions [org.clojure/tools.reader]]
+                 [ola-clojure "0.1.8" :exclusions [org.clojure/tools.reader]]
                  [selmer "1.10.7" :exclusions [cheshire]]
                  [com.evocomputing/colors "1.0.3"]
                  [environ "1.1.0"]


Test against 1.6.0-beta1

Test against 1.6.0-beta1

--- project.clj
+++ project.clj
@@ -11,7 +11,7 @@
   :source-paths      ["src/clojure"]
   :java-source-paths ["src/java"]
   :profiles       {:1.4 {:dependencies [[org.clojure/clojure "1.4.0"]]}
-                   :1.6 {:dependencies [[org.clojure/clojure "1.6.0-master-SNAPSHOT"]]}
+                   :1.6 {:dependencies [[org.clojure/clojure "1.6.0-beta1"]]}
                    :master {:dependencies [[org.clojure/clojure "1.6.0-master-SNAPSHOT"]]}
                    :dev {:jvm-opts     ["-Dlog4j.configuration=log4j.properties.unit"
                                         "-Xmx2048m"


Target Java8 (with Java11), fixes #241

Target Java8 (with Java11), fixes #241

--- project.clj
+++ project.clj
@@ -10,7 +10,6 @@
           :metadata {:doc/format :markdown}}
   :scm {:name "git"
         :url "https://github.com/metosin/reitit"}
-  :javac-options ["-Xlint:unchecked" "-target" "1.8" "-source" "1.8"]
   :managed-dependencies [[metosin/reitit "0.3.0"]
                          [metosin/reitit-core "0.3.0"]
                          [metosin/reitit-dev "0.3.0"]
@@ -25,6 +24,7 @@
                          [metosin/reitit-frontend "0.3.0"]
                          [metosin/reitit-sieppari "0.3.0"]
                          [metosin/reitit-pedestal "0.3.0"]
+  :javac-options ["-Xlint:unchecked" "-target" "1.8" "-source" "1.8" "--release" "8"]
                          [metosin/ring-swagger-ui "2.2.10"]
                          [metosin/spec-tools "0.9.0"]
                          [metosin/schema-tools "0.11.0"]


Version bump

Version bump

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
 ;; the terms of this license.
 ;; You must not remove this notice, or any other, from this software.

-(defproject conexp-clj "2.2.5-SNAPSHOT"
+(defproject conexp-clj "2.3.0-SNAPSHOT"

   :min-lein-version "2.0.0"
   :description "A ConExp rewrite in clojure -- and so much more ..."


Version 1.5.6

Version 1.5.6

--- project.clj
+++ project.clj
@@ -2,7 +2,7 @@
 (def ks-version "1.3.0")
 (def jetty-version "9.2.10.v20150310")

-(defproject puppetlabs/trapperkeeper-webserver-jetty9 "1.5.6-SNAPSHOT"
+(defproject puppetlabs/trapperkeeper-webserver-jetty9 "1.5.6"
   :description "A jetty9-based webserver implementation for use with the puppetlabs/trapperkeeper service framework."
   :url "https://github.com/puppetlabs/trapperkeeper-webserver-jetty9"
   :license {:name "Apache License, Version 2.0"


Version 0.7.6-SNAPSHOT

Version 0.7.6-SNAPSHOT

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


use lein-environ plugin

use lein-environ plugin

--- project.clj
+++ project.clj
@@ -19,8 +19,8 @@
                  [clj-factory "0.2.1"]
                  [faker "0.2.2"]]
   :min-lein-version "2.0.0"
-  :plugins [[environ/environ.lein "0.3.1"]]
-  :hooks [environ.leiningen.hooks]
+  :plugins [[lein-environ "1.1.0"]]
+  :hooks []
   :uberjar-name "clj-money-standalone.jar"
   :aliases {"migrate" ["run" "-m" "clj-money.db/migrate"]
             "rollback" ["run" "-m" "clj-money.db/rollback"]}


98f to 980f

98f to 980f

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject ezjava-98f "1.0.0-theriodontia" ;; theme: dinosaurs
+(defproject ezjava-980f "1.0.0-theriodontia" ;; theme: dinosaurs
   :description "EZJava: conveniences for writing crash-proof java programs"
   :url "https://github.com/980f/ezjava"
   :license {:name "MIT"


lein-release plugin: preparing 0.103 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject maestro "0.103-SNAPSHOT"
+(defproject maestro "0.103"
   :description "Maestro service"
   :license  "https://github.com/mixradio/mr-maestro/blob/master/LICENSE"


Prevent dependency hell before it happens.

--- project.clj
+++ project.clj
@@ -1,5 +1,6 @@
 (defproject clj-libssh2 "0.1.0-SNAPSHOT"
   :description "A Clojure wrapper around libssh2"
   :url "https://github.com/conormcd/clj-libssh2"
+  :pedantic? :abort
   :dependencies [[org.clojure/clojure "1.7.0"]
                  [net.n01se/clojure-jna "1.0.0"]])


Version bump in project.clj

Version bump in project.clj

--- project.clj
+++ project.clj
@@ -12,7 +12,7 @@
 ;; and limitations under the License.

 (defproject com.climate/claypoole
-  "0.2.1"
+  "0.2.2"
   :description "Claypoole: Threadpool tools for Clojure."
   :url "http://github.com/TheClimateCorporation/claypoole/"
   :license {:name "Apache License Version 2.0"


(maint) Merge up 86a8c74 to main

(maint) Merge up 86a8c74 to main

Generated by CI

* commit '86a8c741caab01c8fb6a69e67b646149f3aa16d8':
  (SERVER-3137) Update ezbake to 2.3.0

--- project.clj
+++ project.clj
@@ -165,7 +165,7 @@
                                                [puppetlabs/jruby-utils]
                                                [puppetlabs/puppetserver ~ps-version]
                                                [puppetlabs/trapperkeeper-webserver-jetty9]]
-                      :plugins [[puppetlabs/lein-ezbake "2.2.4"]]
+                      :plugins [[puppetlabs/lein-ezbake "2.3.0"]]
                       :name "puppetserver"}
              :uberjar {:dependencies [[org.bouncycastle/bcpkix-jdk15on]
                                       [puppetlabs/trapperkeeper-webserver-jetty9]]


Updates ring stuff

Updates ring stuff

--- project.clj
+++ project.clj
@@ -94,14 +94,14 @@
                                           [orchestra "2017.11.12-1"]
                                           [org.clojure/core.specs.alpha "0.1.24"]
                                           [com.stuartsierra/dependency "0.2.0"]
-                                          [ring/ring-core "1.6.2"] ; required to make ring-spec work, may cause issues with figwheel?
-                                          [ring/ring-spec "0.0.3"] ; to test specs
+                                          [ring/ring-core "1.6.3"] ; required to make ring-spec work, may cause issues with figwheel?
+                                          [ring/ring-spec "0.0.4"] ; to test specs
                                           [org.onyxplatform/onyx-spec "0.12.7.0"] ; to test specs
                                           [vvvvalvalval/scope-capture "0.1.4"]
                                           [metosin/spec-tools "0.5.1"]]}
              :test-web [:test-common
                         {:source-paths ["test"]
-                         :dependencies [[figwheel-sidecar "0.5.14"]
+                         :dependencies [[figwheel-sidecar "0.5.15"]
                                         [karma-reporter "2.1.2"]]}]
              :cljs-repl {:dependencies [[com.cemerick/piggieback "0.2.2"]]}
              :clj-1.9.0-alpha19 {:dependencies [[org.clojure/clojure "1.9.0-alpha19"]]}


Version 3.0.2-SNAPSHOT

Version 3.0.2-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (def jetty-version "9.4.18.v20190429")

-(defproject puppetlabs/trapperkeeper-webserver-jetty9 "3.0.1"
+(defproject puppetlabs/trapperkeeper-webserver-jetty9 "3.0.2-SNAPSHOT"
   :description "A jetty9-based webserver implementation for use with the puppetlabs/trapperkeeper service framework."
   :url "https://github.com/puppetlabs/trapperkeeper-webserver-jetty9"
   :license {:name "Apache License, Version 2.0"


Update CLJS.

Update CLJS.

--- project.clj
+++ project.clj
@@ -31,7 +31,7 @@
     [org.clojure/data.xml "0.0.8"] ; XML parser/encoder https://github.com/clojure/data.xml
     [clj-http "2.0.0"] ; HTTP client https://github.com/dakrone/clj-http
     ;; Client-side
-    [org.clojure/clojurescript "1.7.107"] ; ClojureScript compiler https://github.com/clojure/clojurescript
+    [org.clojure/clojurescript "1.7.122"] ; ClojureScript compiler https://github.com/clojure/clojurescript
     [jayq "2.5.4"] ; ClojureScript wrapper for jQuery https://github.com/ibdknox/jayq
     [hiccups "0.3.0"] ; ClojureScript implementation of Hiccup https://github.com/teropa/hiccups
     [cljs-uuid "0.0.4"] ; ClojureScript UUID https://github.com/davesann/cljs-uuid


Upgrade to 0.8.11.

Upgrade to 0.8.11.

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


Version 2.4.2-SNAPSHOT

Version 2.4.2-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (def jetty-version "9.4.11.v20180605")

-(defproject puppetlabs/trapperkeeper-webserver-jetty9 "2.4.1"
+(defproject puppetlabs/trapperkeeper-webserver-jetty9 "2.4.2-SNAPSHOT"
   :description "A jetty9-based webserver implementation for use with the puppetlabs/trapperkeeper service framework."
   :url "https://github.com/puppetlabs/trapperkeeper-webserver-jetty9"
   :license {:name "Apache License, Version 2.0"


Update dependency.

Update dependency.

--- project.clj
+++ project.clj
@@ -19,7 +19,7 @@
     [defun "0.2.0-RC"] ; Erlang-esque pattern matching for Clojure functions https://github.com/killme2008/defun
     [org.clojure/core.incubator "0.1.3"] ; Functions proposed for inclusion in Clojure https://github.com/clojure/core.incubator
     [org.clojure/tools.nrepl "0.2.6"] ; REPL server and client https://github.com/clojure/tools.nrepl
-    [cheshire "5.3.1"] ; JSON de/encoding https://github.com/dakrone/cheshire
+    [cheshire "5.4.0"] ; JSON de/encoding https://github.com/dakrone/cheshire
     [org.flatland/ordered "1.5.2"] ; Ordered hash map https://github.com/flatland/ordered
     [ring/ring-devel "1.3.2"] ; Web application library https://github.com/ring-clojure/ring
     [ring/ring-core "1.3.2"] ; Web application library https://github.com/ring-clojure/ring


Test fix :grimacing:

Test fix :grimacing:

--- test/metabase/driver/bigquery_test.clj
+++ test/metabase/driver/bigquery_test.clj
@@ -62,10 +62,12 @@
   ["birds_50" [{:field-name "name", :base-type :TextField}] [["Rasta"] ["Lucky"]]]
   ["birds_51" [{:field-name "name", :base-type :TextField}] [["Rasta"] ["Lucky"]]])

-(expect-with-engine :bigquery
-  51
-  (data/with-temp-db [db fifty-one-different-tables]
-    (count (database/tables db))))
+;; only run this test 1/4 times since it takes like 5-10 minutes
+(when (> (rand) 0.75)
+  (expect-with-engine :bigquery
+    51
+    (data/with-temp-db [db fifty-one-different-tables]
+      (count (database/tables db)))))

 ;; Test native queries


Pass test.

Pass test.

[ci skip]

--- test/onyx/peer/catalog_params_test.clj
+++ test/onyx/peer/catalog_params_test.clj
@@ -5,51 +5,7 @@
             [onyx.test-helper :refer [load-config]]
             [onyx.api]))

-(def id (java.util.UUID/randomUUID))
-
-(def config (load-config))
-
-(def env-config (assoc (:env-config config) :onyx/id id))
-
-(def peer-config (assoc (:peer-config config) :onyx/id id))
-
-(def env (onyx.api/start-env env-config))
-
-(def peer-group
-  (onyx.api/start-peer-group peer-config))
-
 (def n-messages 1000)
-
-(def batch-size 20)
-
-(defn my-adder [factor {:keys [n] :as segment}]
-  (assoc segment :n (+ n factor)))
-
-(def workflow [[:in :add] [:add :out]])
-
-(def catalog
-  [{:onyx/name :in
-    :onyx/plugin :onyx.plugin.core-async/input
-    :onyx/type :input
-    :onyx/medium :core.async
-    :onyx/batch-size batch-size
-    :onyx/max-peers 1
-    :onyx/doc "Reads segments from a core.async channel"}
-
-   {:onyx/name :add
-    :onyx/fn :onyx.peer.catalog-params-test/my-adder
-    :onyx/type :function
-    :onyx/factor 42
-    :onyx/params [:onyx/factor]
-    :onyx/batch-size batch-size}
-
-   {:onyx/name :out
-    :onyx/plugin :onyx.plugin.core-async/output
-    :onyx/type :output
-    :onyx/medium :core.async
-    :onyx/batch-size batch-size
-    :onyx/max-peers 1
-    :onyx/doc "Writes segments to a core.async channel"}])

 (def in-chan (chan (inc n-messages)))

@@ -67,39 +23,75 @@
 (def out-calls
   {:lifecycle/before-task-start inject-out-ch})

-(def lifecycles
-  [{:lifecycle/task :in
-    :lifecycle/calls :onyx.peer.catalog-params-test/in-calls}
-   {:lifecycle/task :in
-    :lifecycle/calls :onyx.plugin.core-async/reader-calls}
-   {:lifecycle/task :out
-    :lifecycle/calls :onyx.peer.catalog-params-test/out-calls}
-   {:lifecycle/task :out
-    :lifecycle/calls :onyx.plugin.core-async/writer-calls}])
+(defn my-adder [factor {:keys [n] :as segment}]
+  (assoc segment :n (+ n factor)))

-(doseq [n (range n-messages)]
-  (>!! in-chan {:n n}))
+(deftest catalog-params
+  (let [id (java.util.UUID/randomUUID)
+        config (load-config)
+        env-config (assoc (:env-config config) :onyx/id id)
+        peer-config (assoc (:peer-config config) :onyx/id id)
+        env (onyx.api/start-env env-config)
+        peer-group (onyx.api/start-peer-group peer-config)
+        batch-size 20

-(>!! in-chan :done)
+        workflow [[:in :add] [:add :out]]

-(def v-peers (onyx.api/start-peers 3 peer-group))
+        catalog
+        [{:onyx/name :in
+          :onyx/plugin :onyx.plugin.core-async/input
+          :onyx/type :input
+          :onyx/medium :core.async
+          :onyx/batch-size batch-size
+          :onyx/max-peers 1
+          :onyx/doc "Reads segments from a core.async channel"}

-(onyx.api/submit-job
- peer-config
- {:catalog catalog
-  :workflow workflow
-  :lifecycles lifecycles
-  :task-scheduler :onyx.task-scheduler/balanced})
+         {:onyx/name :add
+          :onyx/fn :onyx.peer.catalog-params-test/my-adder
+          :onyx/type :function
+          :onyx/factor 42
+          :onyx/params [:onyx/factor]
+          :onyx/batch-size batch-size}

-(def results (take-segments! out-chan))
+         {:onyx/name :out
+          :onyx/plugin :onyx.plugin.core-async/output
+          :onyx/type :output
+          :onyx/medium :core.async
+          :onyx/batch-size batch-size
+          :onyx/max-peers 1
+          :onyx/doc "Writes segments to a core.async channel"}]

-(let [expected (set (map (fn [x] {:n (+ x 42)}) (range n-messages)))]
-  (fact (set (butlast results)) => expected)
-  (fact (last results) => :done))
+        lifecycles
+        [{:lifecycle/task :in
+          :lifecycle/calls :onyx.peer.catalog-params-test/in-calls}
+         {:lifecycle/task :in
+          :lifecycle/calls :onyx.plugin.core-async/reader-calls}
+         {:lifecycle/task :out
+          :lifecycle/calls :onyx.peer.catalog-params-test/out-calls}
+         {:lifecycle/task :out
+          :lifecycle/calls :onyx.plugin.core-async/writer-calls}]

-(doseq [v-peer v-peers]
-  (onyx.api/shutdown-peer v-peer))
+        v-peers (onyx.api/start-peers 3 peer-group)]

-(onyx.api/shutdown-peer-group peer-group)
+    (doseq [n (range n-messages)]
+      (>!! in-chan {:n n}))
+    (>!! in-chan :done)

-(onyx.api/shutdown-env env)
+    (onyx.api/submit-job
+     peer-config
+     {:catalog catalog
+      :workflow workflow
+      :lifecycles lifecycles
+      :task-scheduler :onyx.task-scheduler/balanced})
+
+    (let [results (take-segments! out-chan)
+          expected (set (map (fn [x] {:n (+ x 42)}) (range n-messages)))]
+      (is (= expected (set (butlast results))))
+      (is (= :done (last results))))
+
+    (doseq [v-peer v-peers]
+      (onyx.api/shutdown-peer v-peer))
+
+    (onyx.api/shutdown-peer-group peer-group)
+
+    (onyx.api/shutdown-env env)))


rewording

rewording

--- clj_record/test/model/manufacturer.clj
+++ clj_record/test/model/manufacturer.clj
@@ -2,7 +2,7 @@
   (:require clj-record.boot))

-; The following defs are here to illustrate validation messages and functions
+; The following defs are to illustrate that validation messages and functions
 ; don't have to live inline in the init-model form.
 (def my-grade-validation-message "negative!")
 (defn my-grade-validation-fn [grade] (or (nil? grade) (>= grade 0)))


delaney.clj: small bug fix

delaney.clj: small bug fix

--- clojure/org/gavrog/clojure/delaney.clj
+++ clojure/org/gavrog/clojure/delaney.clj
@@ -53,8 +53,7 @@
           (DSymbol. (conj idcs i)
                     (conj elms D E)
                     (assoc s# i (assoc (s# i) D E, E D))
-                    v#)
-          ds)
+                    v#))
   (dsunglue [ds i D]
             (DSymbol. idcs
                       elms


Fix comment

Fix comment

--- probability.clj
+++ probability.clj
@@ -1,6 +1,6 @@
 (def  default-board-size 9) ; default-board-size x default-board-size
-(def  default-number-mines 10) ; default-board-size x default-board-size
-(def  default-number-samples 1000000) ; default-board-size x default-board-size
+(def  default-number-mines 10)
+(def  default-number-samples 1000000)

 (defn new-mine [board-size current-mines]
   (let [mine-pos [(rand-int board-size), (rand-int board-size)]]


Remove top-level window access

Remove top-level window access

This causes problems where window access causes exceptions, like in
webworkers. Reload code itself is not called inside workers so it should
be enough to remove top-level call.

Fixes #57

--- src/adzerk/boot_reload/reload.cljs
+++ src/adzerk/boot_reload/reload.cljs
@@ -5,7 +5,8 @@
    [goog.async.DeferredList :as deferred-list]
    [goog.net.jsloader       :as jsloader]))

-(def ^:private page-uri (goog.Uri. (.. js/window -location -href)))
+(defn- page-uri []
+  (goog.Uri. (.. js/window -location -href)))

 (defn- ends-with? [s pat]
   (= pat (subs s (- (count s) (count pat)))))
@@ -15,7 +16,7 @@

 (defn- normalize-href-or-uri [href-or-uri]
   (let [uri  (goog.Uri. href-or-uri)]
-    (.getPath (.resolve page-uri uri))))
+    (.getPath (.resolve (page-uri) uri))))

 (defn- changed-href? [href-or-uri changed]
   (when href-or-uri
@@ -52,7 +53,7 @@
         (.trigger (js/jQuery js/document) "page-load")))))

 (defn- reload-html [changed]
-  (let [page-path (.getPath page-uri)
+  (let [page-path (.getPath (page-uri))
         html-path (if (ends-with? page-path "/")
                     (str page-path "index.html")
                     page-path)]


similarity histogram added

similarity histogram added

--- src/crawler/test_system.clj
+++ src/crawler/test_system.clj
@@ -104,6 +104,42 @@
                        explorations))})
    *enumerate-positives*))

+(defn similarity-histogram
+  "Produces a histogram of similarity scores for the
+enumerate-positives dataset"
+  []
+  (pmap
+   (fn [{url :url xpath :xpath}]
+     {:url url
+      :similarities (let [{src-link     :src-link
+                           explorations :explorations
+                           xpaths-hrefs :xpaths-hrefs
+                           signature    :signature
+                           dfs          :dfs
+                           hrefs        :hrefs
+                           novelties    :novelties
+                           _            :in-host-xpaths-hrefs}
+                          (extractor/process-link url {})]
+
+                      (reverse
+                       (sort-by
+                        #(-> % :similarity)
+                        (flatten
+                         (pmap
+                          (fn [{xpath :xpath xpath-explorations :explorations}]
+                            (map
+                             #(let [xpaths      (extractor/exploration-xpaths %)
+                                    xpath-hrefs (-> % :hrefs-table)
+                                    expl-sign   (page/page-signature xpaths xpath-hrefs)]
+                                {:url                 (-> % :url)
+                                 :similarity          (* (page/signature-similarity-cosine
+                                                          signature expl-sign)
+                                                         (page/signature-similarity-cardinality
+                                                          signature expl-sign))})
+                             xpath-explorations))
+                          explorations)))))})
+   *enumerate-positives*))
+
 (defn test-enumeration-candidates
   [thresh]
   (pmap
@@ -132,7 +168,7 @@
                                  "Test similarity routines"
                                  :flag true
                                  :default false]
-
+
                                 ["--enumeration-test"
                                  "Test enumeration routine"
                                  :flag true
@@ -146,11 +182,16 @@
                                 ["--sim-thresh"
                                  "Similarity threshold"]

+                                ["--sim-histogram"
+                                 "Similarity Histogram for each test case"
+                                 :flag true
+                                 :default false]
+
                                 ["-v" "--verbose"
                                  "Verbose version"
                                  :flag true
                                  :default false])]
-
+
     (when (:similarity-test optional)
       (clojure.pprint/pprint (test-similarity)))

@@ -164,4 +205,8 @@
        (-> optional
            :sim-thresh
            Double/parseDouble
-           test-enumeration-candidates)))))
+           test-enumeration-candidates)))
+
+    (when (:sim-histogram optional)
+      (clojure.pprint/pprint
+       (similarity-histogram)))))


added test corpora

added test corpora

--- src/crawler/test_system.clj
+++ src/crawler/test_system.clj
@@ -28,11 +28,10 @@
    "https://amblesideonline.org/forum/"
    "http://www.doctornerdlove.com/forums/"])

-(defn test-site
+(defn download-corpora
   []
   (pmap
    (fn [site]
      (main/discussion-forum-crawler-3 site 100))
    test-entry-points))

-


Warn about chan size limitation in read plugin

--- src/onyx/plugin/elasticsearch.clj
+++ src/onyx/plugin/elasticsearch.clj
@@ -4,7 +4,7 @@
             [onyx.peer.pipeline-extensions :as p-ext]
             [onyx.static.default-vals :refer [defaults arg-or-default]]
             [onyx.types :as t]
-            [clojure.core.async :refer [chan go timeout <!! >!! alts!! sliding-buffer go-loop close! poll!]]
+            [clojure.core.async :refer [chan go timeout <!! >!! alts!! sliding-buffer go-loop close! poll! offer!]]
             [clojurewerkz.elastisch.native  :as es]
             [clojurewerkz.elastisch.rest :as esr]
             [clojurewerkz.elastisch.native.document]
@@ -94,7 +94,8 @@
           (loop [rs (run-as client-type :scroll-seq conn res)
                  chunk-idx (inc start-index)]
             (when-let [msg (first rs)]
-              (>!! read-ch (assoc (t/input (java.util.UUID/randomUUID) msg) :chunk-index chunk-idx))
+              (when-not (offer! read-ch (assoc (t/input (java.util.UUID/randomUUID) msg) :chunk-index chunk-idx))
+                (throw (ex-info "Error placing message onto read-ch, which has static size. To be fixed in a future release: https://github.com/onyx-platform/onyx-elasticsearch/issues/1" {})))
               (recur (next rs) (inc chunk-idx))))
           (>!! read-ch (t/input (java.util.UUID/randomUUID) :done))
           {:elasticsearch/connection conn
@@ -197,7 +198,7 @@
         batch-timeout (arg-or-default :onyx/batch-timeout task-map)
         pending-messages (atom {})
         drained? (atom false)
-        read-ch (chan 1000)
+        read-ch (chan 10000)
         retry-ch (chan (* 2 max-pending))
         commit-ch (chan (sliding-buffer 1))]
     (->ElasticsearchRead max-pending batch-size batch-timeout pending-messages drained?


Properly close bookkeeper clients

Properly close bookkeeper clients

--- src/onyx/state/log/bookkeeper.clj
+++ src/onyx/state/log/bookkeeper.clj
@@ -39,6 +39,8 @@
 (defn password [peer-opts]
   (.getBytes (arg-or-default :onyx.bookkeeper/ledger-password peer-opts)))

+(defrecord BookKeeperLog [client ledger-handle])
+
 ;; TODO: add zk-timeout for bookkeeper
 (defmethod state-extensions/initialise-log :bookkeeper [log-type {:keys [onyx.core/replica onyx.core/peer-opts
                                                                          onyx.core/job-id onyx.core/task-id
@@ -47,9 +49,9 @@
   (let [bk-client (bookkeeper peer-opts)
         ensemble-size (arg-or-default :onyx.bookkeeper/ledger-ensemble-size peer-opts)
         quorum-size (arg-or-default :onyx.bookkeeper/ledger-quorum-size peer-opts)
-        ledger (create-ledger bk-client ensemble-size quorum-size digest-type (password peer-opts))
+        ledger-handle (create-ledger bk-client ensemble-size quorum-size digest-type (password peer-opts))
         slot-id (state/peer-slot-id event)
-        new-ledger-id (.getId ledger)]
+        new-ledger-id (.getId ledger-handle)]
     (>!! outbox-ch
          {:fn :assign-bookkeeper-log-id
           :args {:job-id job-id
@@ -62,7 +64,7 @@
       (info "New ledger id has not been published yet. Backing off.")
       (Thread/sleep (arg-or-default :onyx.bookkeeper/ledger-id-written-back-off peer-opts)))
     (info "Ledger id published.")
-    ledger))
+    (->BookKeeperLog bk-client ledger-handle)))

 (defn default-state
@@ -108,28 +110,30 @@
             state
             ledger-ids)))

-(defmethod state-extensions/playback-log-entries org.apache.bookkeeper.client.LedgerHandle
-  [log {:keys [onyx.core/windows onyx.core/replica onyx.core/peer-opts onyx.core/job-id onyx.core/task-id] :as event} state]
+(defmethod state-extensions/playback-log-entries onyx.state.log.bookkeeper.BookKeeperLog
+  [{:keys [client] :as log} {:keys [onyx.core/windows onyx.core/replica onyx.core/peer-opts onyx.core/job-id onyx.core/task-id] :as event} state]
   (let [slot-id (state/peer-slot-id event)
         ;; Don't play back the final ledger id because we just created it
         previous-ledger-ids (butlast (get-in @replica [:state-logs job-id task-id slot-id]))
-        bk-client (bookkeeper peer-opts)
-        _ (info "Playing back ledgers for" job-id task-id slot-id "ledger-ids" previous-ledger-ids)]
-    (try
-      (playback-ledgers bk-client peer-opts state previous-ledger-ids windows)
-      (finally
-        (.close bk-client)))))
+        _ (info "Playing back ledgers for" job-id task-id slot-id "ledger-ids" previous-ledger-ids)
+        start-time (System/currentTimeMillis)
+        restored-state (playback-ledgers client peer-opts state previous-ledger-ids windows)]
+    (info task-id "restore took:" (float (/ (- (System/currentTimeMillis) start-time) 1000)))
+    restored-state))

-(defmethod state-extensions/close-log org.apache.bookkeeper.client.LedgerHandle
-  [log event]
-  (.close ^LedgerHandle log))
+(defmethod state-extensions/close-log onyx.state.log.bookkeeper.BookKeeperLog
+  [{:keys [client ledger-handle]} event]
+  (.close ^LedgerHandle ledger-handle)
+  (.close client))

-(defmethod state-extensions/store-log-entry org.apache.bookkeeper.client.LedgerHandle
-  [log event entry]
+(defmethod state-extensions/store-log-entry onyx.state.log.bookkeeper.BookKeeperLog
+  [{:keys [ledger-handle]} event entry]
   (let [start-time (System/currentTimeMillis)]
     (info "Writing entry " entry)
     ;; TODO: make add entry async and use acking
-    (.addEntry ^LedgerHandle log (nippy/freeze entry {}))
+    ;; Interesting post on latency in bookkeeper
+    ;; http://mail-archives.apache.org/mod_mbox/bookkeeper-user/201509.mbox/%3CCAO2yDyaeF6T8Zza0G=BHccWeGceawYL+5TocRe40_wD6AQdFdg@mail.gmail.com%3E
+    (.addEntry ^LedgerHandle ledger-handle (nippy/freeze entry {}))
     (info "TOOK: " (- (System/currentTimeMillis) start-time)))
   ;; TODO: write out batch end (don't apply until batch end found in others)
   )


Style tweaks for mobile messages view

Style tweaks for mobile messages view

--- src/braid/client/mobile/style.cljs
+++ src/braid/client/mobile/style.cljs
@@ -80,7 +80,8 @@
                    {:width "100vw"
                     :height "100%"
                     :background "white"
-                    :flex-direction "column"}
+                    :flex-direction "column"
+                    :justify-content "flex-end"}

                    [:>.card
                     (braid.client.ui.styles.thread/head pad)
@@ -104,12 +105,14 @@
                     (braid.client.ui.styles.thread/messages pad)

                     [:>.messages
-                     {:flex-grow 1}
+                     {:flex-grow 1
+                      :max-height "75vh"}

                      braid.client.ui.styles.message/message
                      [:>.message
                       (braid.client.ui.styles.embed/embed pad)]]

-                    (braid.client.ui.styles.thread/new-message pad)]]]]]]]]]]]
+                    (braid.client.ui.styles.thread/new-message pad)
+                    ]]]]]]]]]]]

          braid.client.ui.styles.body/body)))


fix missing service spec

fix missing service spec

--- src/cljc/swarmpit/routes_spec.cljc
+++ src/cljc/swarmpit/routes_spec.cljc
@@ -149,54 +149,56 @@
    :attachable  boolean?})

 (def service
-  {:id          string?
-   :version     number?
-   :createdAt   string?
-   :updatedAt   string?
-   :repository  {:name        string?
-                 :tag         string?
-                 :image       string?
-                 :imageDigest string?}
-   :serviceName string?
-   :mode        string?
-   :stack       string?
-   :agent       boolean?
-   :replicas    number?
-   :state       string?
-   :status      {:tasks   {:running number?
-                           :total   number?}
-                 :update  string?
-                 :message string?}
-   :ports       [port]
-   :mounts      [mount]
-   :networks    [network]
-   :secrets     [secret-mount]
-   :configs     [config-mount]
-   :hosts       [name-value]
-   :variables   [name-value]
-   :labels      [name-value]
-   :command     [string?]
-   :user        string?
-   :dir         string?
-   :tty         boolean?
-   :healthcheck {:test     string?
-                 :interval number?
-                 :timeout  number?
-                 :retries  number?}
-   :logdriver   {:name string?
-                 :opts [name-value]}
-   :resources   {:reservation resources
-                 :limit       resources}
-   :deployment  {:update          deploy
-                 :forceUpdate     number?
-                 :restartPolicy   {:condition string?
-                                   :delay     number?
-                                   :window    number?
-                                   :attempts  number?}
-                 :rollback        deploy
-                 :rollbackAllowed boolean?
-                 :autoredeploy    boolean?
-                 :placement       [{:rule string?}]}})
+  {:id              string?
+   :version         number?
+   :createdAt       string?
+   :updatedAt       string?
+   :repository      {:name        string?
+                     :tag         string?
+                     :image       string?
+                     :imageDigest string?}
+   :serviceName     string?
+   :mode            string?
+   :replicas        number?
+   :state           string?
+   :status          {:tasks   {:running number?
+                               :total   number?}
+                     :update  string?
+                     :message string?}
+   :ports           [port]
+   :mounts          [mount]
+   :networks        [network]
+   :secrets         [secret-mount]
+   :configs         [config-mount]
+   :hosts           [name-value]
+   :variables       [name-value]
+   :labels          [name-value]
+   :containerLabels [name-value]
+   :command         [string?]
+   :stack           string?
+   :agent           boolean?
+   :links           [name-value]
+   :user            string?
+   :dir             string?
+   :tty             boolean?
+   :healthcheck     {:test     string?
+                     :interval number?
+                     :timeout  number?
+                     :retries  number?}
+   :logdriver       {:name string?
+                     :opts [name-value]}
+   :resources       {:reservation resources
+                     :limit       resources}
+   :deployment      {:update          deploy
+                     :forceUpdate     number?
+                     :restartPolicy   {:condition string?
+                                       :delay     number?
+                                       :window    number?
+                                       :attempts  number?}
+                     :rollback        deploy
+                     :rollbackAllowed boolean?
+                     :autoredeploy    boolean?
+                     :placement       [{:rule string?}]}})

 (def service-stats
   {:cpu    {:service string?
@@ -229,9 +231,6 @@
    :variables         [name-value]
    :labels            [name-value]
    (ds/opt :command)  [string?]
-   (ds/opt :user)     string?
-   (ds/opt :dir)      string?
-   (ds/opt :tty)      boolean?
    :logdriver         {:name string?
                        :opts [name-value]}
    :resources         {:reservation resources
@@ -246,51 +245,57 @@
                        :placement     [{:rule string?}]}})

 (def service-update
-  {:repository        {:name string?
-                       :tag  string?}
-   :serviceName       string?
-   :version           number?
-   :mode              string?
-   (ds/opt :replicas) number?
-   :ports             [{:containerPort number?
-                        :protocol      string?
-                        :mode          string?
-                        :hostPort      number?}]
-   :mounts            [{:containerPath          string?
-                        :host                   string?
-                        :type                   string?
-                        :readOnly               boolean?
-                        (ds/opt :volumeOptions) {(ds/opt :labels) map?
-                                                 (ds/opt :driver) {:name             string?
-                                                                   (ds/opt :options) [name-value]}}}]
-   :networks          [{:networkName             string?
-                        (ds/opt :serviceAliases) [string?]}]
-   :secrets           [{:secretName   string?
-                        :secretTarget string?}]
-   :configs           [{:configName   string?
-                        :configTarget string?}]
-   :hosts             [name-value]
-   :variables         [name-value]
-   :labels            [name-value]
-   :containerLabels   [name-value]
-   (ds/opt :links)    [name-value]
-   (ds/opt :stack)    string?
-   (ds/opt :command)  [string?]
-   (ds/opt :user)     string?
-   (ds/opt :dir)      string?
-   (ds/opt :tty)      boolean?
-   :logdriver         {:name string?
-                       :opts [name-value]}
-   :resources         {:reservation resources
-                       :limit       resources}
-   :deployment        {:update        deploy
-                       :restartPolicy {:condition       string?
-                                       :delay           number?
-                                       (ds/opt :window) number?
-                                       :attempts        number?}
-                       :rollback      deploy
-                       :autoredeploy  boolean?
-                       :placement     [{:rule string?}]}})
+  {:repository               {:name string?
+                              :tag  string?}
+   :serviceName              string?
+   :version                  number?
+   :mode                     string?
+   (ds/opt :replicas)        number?
+   :ports                    [{:containerPort number?
+                               :protocol      string?
+                               :mode          string?
+                               :hostPort      number?}]
+   :mounts                   [{:containerPath          string?
+                               :host                   string?
+                               :type                   string?
+                               :readOnly               boolean?
+                               (ds/opt :volumeOptions) {(ds/opt :labels) map?
+                                                        (ds/opt :driver) {:name             string?
+                                                                          (ds/opt :options) [name-value]}}}]
+   :networks                 [{:networkName             string?
+                               (ds/opt :serviceAliases) [string?]}]
+   :secrets                  [{:secretName   string?
+                               :secretTarget string?}]
+   :configs                  [{:configName   string?
+                               :configTarget string?}]
+   :hosts                    [name-value]
+   :variables                [name-value]
+   :labels                   [name-value]
+   (ds/opt :containerLabels) [name-value]
+   (ds/opt :command)         [string?]
+   (ds/opt :stack)           string?
+   (ds/opt :agent)           boolean?
+   (ds/opt :immutable)       boolean?
+   (ds/opt :links)           [name-value]
+   (ds/opt :user)            string?
+   (ds/opt :dir)             string?
+   (ds/opt :tty)             boolean?
+   (ds/opt :healthcheck)     {:test     string?
+                              :interval number?
+                              :timeout  number?
+                              :retries  number?}
+   :logdriver                {:name string?
+                              :opts [name-value]}
+   :resources                {:reservation resources
+                              :limit       resources}
+   :deployment               {:update        deploy
+                              :restartPolicy {:condition       string?
+                                              :delay           number?
+                                              (ds/opt :window) number?
+                                              :attempts        number?}
+                              :rollback      deploy
+                              :autoredeploy  boolean?
+                              :placement     [{:rule string?}]}})

 (def service-logs
   {:line      string?


optional index recreate

optional index recreate

--- src/clojure/zensols/dataset/db.clj
+++ src/clojure/zensols/dataset/db.clj
@@ -437,11 +437,11 @@

 (defn instances-load
   "Parse and load the dataset in the DB."
-  [& {:keys [recreate-index]
-      :or {recreate-index true}}]
-  (use-connection
-    (with-context [instance-context]
-      (if recreate-index
+  [& {:keys [recreate-index?]
+      :or {recreate-index? true}}]
+  (use-connection
+    (with-context [instance-context]
+      (if recreate-index?
         (es/recreate-index))
       ;; Elasticsearch queues inserts so avoid the user having to invoke
       ;; `divide-by-preset` since all records might not clear by the time


Always return a map from `dependencies`

Always return a map from `dependencies`

In Clojure 1.4.0, reduce-kv is not defined on nil.

--- src/com/stuartsierra/component.clj
+++ src/com/stuartsierra/component.clj
@@ -14,7 +14,7 @@
 (defn dependencies
   "Returns the map of other components on which this component depends."
   [component]
-  (::dependencies (meta component)))
+  (::dependencies (meta component) {}))

 (defn using
   "Associates metadata with component describing the other components


Make (map-keys nil f) return nil.

Make (map-keys nil f) return nil.

Similarly for filter-keys, and that whole family of functions.
This is so that (update {} :k map-keys f) doesn't return {:k {}}.

--- src/flatland/useful/map.clj
+++ src/flatland/useful/map.clj
@@ -47,31 +47,35 @@
 (defn map-vals
   "Create a new map from m by calling function f on each value to get a new value."
   [m f & args]
-  (into {}
-        (for [[k v] m]
-          (map-entry k (apply f v args)))))
+  (when m
+    (into {}
+          (for [[k v] m]
+            (map-entry k (apply f v args))))))

 (defn map-keys
   "Create a new map from m by calling function f on each key to get a new key."
   [m f & args]
-  (into {}
-        (for [[k v] m]
-          (map-entry (apply f k args) v))))
+  (when m
+    (into {}
+          (for [[k v] m]
+            (map-entry (apply f k args) v)))))

 (defn map-vals-with-keys
   "Create a new map from m by calling function f, with two arguments (the key and value)
   to get a new value."
   [m f & args]
-  (into {}
-        (for [[k v] m]
-          (map-entry k (apply f k v args)))))
+  (when m
+    (into {}
+          (for [[k v] m]
+            (map-entry k (apply f k v args))))))

 (defn map-keys-and-vals
   "Create a new map from m by calling function f on each key & each value to get a new key & value"
   [m f & args]
-  (into {}
-        (for [[k v] m]
-          (map-entry (apply f k args) (apply f v args)))))
+  (when m
+    (into {}
+          (for [[k v] m]
+            (map-entry (apply f k args) (apply f v args))))))

 (defn dissoc-in*
   "Dissociates a value in a nested associative structure, where ks is a sequence of keys and returns


PLD: use an iterative loop to build photos

--- src/hatti/views/photos.cljs
+++ src/hatti/views/photos.cljs
@@ -132,39 +132,34 @@
    directly to the submission."
   [data photo-columns]
   (let [data-with-attachments (keep #(extract-images % photo-columns) data)
-        total (reduce #(+ %1 (count (get %2 :attachments)))
-                      0 data-with-attachments)]
-    (loop [data-left data-with-attachments
-           result []
-           photo-index 1]
-      (if (seq data-left)
-        (let [{:keys [attachments] :as datum} (first data-left)
-              rank (get datum constants/_rank)
-              photo (get datum constants/photo)]
-          (recur
-           (rest data-left)
-           (concat
-            result
-            (map-indexed
-             (fn [j attachment]
-               (let [id (get datum constants/_id)
-                     download-url (make-url attachment)
-                     thumbnail (resize-image download-url
-                                             thumb-width-px)]
-                 {:src (resize-image (make-url download-url) width-px)
-                  :original-src download-url
-                  :msrc thumbnail
-                  :thumb thumbnail
-                  :title (format "%s/%s | ID: %s"
-                                 (+ photo-index j) total id)
-                  :date (get datum constants/_submission_time)
-                  :id id
-                  :rank rank
-                  :w width-px
-                  :h width-px}))
-             attachments))
-           (+ photo-index (count attachments))))
-        result))))
+        attachment-totals (reductions #(+ %1 (count (get %2 :attachments)))
+                                      0 data-with-attachments)
+        total (last attachment-totals)]
+    (flatten
+     (for [photo-index (range (count data-with-attachments))
+           :let [{:keys [attachments] :as datum} (nth data-with-attachments
+                                                      photo-index)
+                 cumulative-sum (nth attachment-totals photo-index)
+                 date (get datum constants/_submission_time)
+                 id (get datum constants/_id)
+                 photo (get datum constants/photo)
+                 rank (get datum constants/_rank)]]
+       (map-indexed
+        (fn [j attachment]
+          (let [download-url (make-url attachment)
+                thumbnail (resize-image download-url
+                                        thumb-width-px)]
+            {:src (resize-image (make-url download-url) width-px)
+             :original-src download-url
+             :msrc thumbnail
+             :thumb thumbnail
+             :title (format "%s/%s | ID: %s" (+ 1 cumulative-sum j) total id)
+             :date date
+             :id id
+             :rank rank
+             :w width-px
+             :h width-px}))
+        attachments)))))

 (defn- get-photo-columns
   "Return the full-names of all columns with photo type."


Bug fix - middleware was being invoked twice.

The client function is called in the let bindings. Successive
invocations of the client function were resulting in two HTTP requests.

--- examples/caching_middleware.clj
+++ examples/caching_middleware.clj
@@ -23,13 +23,10 @@
          ; do not invoke further middleware
        (do
          (println "CACHE MISS")
-         (let [resp (update (client req) :body slurp-bytes)]
-           (if (http/success? resp)
-             (do
-               (reset! http-cache (cache/miss @http-cache cache-key resp)) ; update cache value
-               (client req resp nil)) ; invoke next middleware
-             (do
-               (client req resp nil)))))))))
+         (let [resp (update (client req) :body slurp-bytes)] ; middleware chain invoked
+           (when (http/success? resp)
+             (reset! http-cache (cache/miss @http-cache cache-key resp)) ; update cache value
+            resp)))))))

 (defn wrap-caching-middleware
   [client]
@@ -45,7 +42,7 @@
                          ;; :debug-body true
                          ;; :throw-entire-message? true
                          })))
-      (select-keys ,,, [:status :reason-phrase])))
+      (select-keys ,,, [:status :reason-phrase :headers])))

 ;; Try this out:
 ;;


CMR-3279 fixes concept-id parameter option

--- access-control-app/src/cmr/access_control/services/acl_search_service.clj
+++ access-control-app/src/cmr/access_control/services/acl_search_service.clj
@@ -40,7 +40,7 @@

 (defmethod cpv/valid-parameter-options :acl
   [_]
-  {:collection-concept-id #{}
+  {:collection-concept-id cpv/string-param-options
    :permitted-group cpv/string-param-options
    :provider cpv/string-param-options
    :identity-type cpv/string-param-options


Function to generate abs-path

Function to generate abs-path

--- src/emender_service/file_utils.clj
+++ src/emender_service/file_utils.clj
@@ -69,3 +69,7 @@
           file2 (new java.io.File filename2)]
           (.renameTo file1 file2)))

+(defn >abs-path
+    [file-or-dir]
+    (.getAbsolutePath (new java.io.File file-or-dir)))
+


Bugfix.

Bugfix.

--- src/ancient_clj/verbose.clj
+++ src/ancient_clj/verbose.clj
@@ -33,7 +33,7 @@
 (defn verbose
   "Write Log Message."
   [& msg]
-  (apply *println* "(verbose)" (apply str msg)))
+  (*println* "(verbose)" (apply str msg)))

 ;; ## String Creation


Change info order

Change info order

--- src/servisne_info/routes/home.clj
+++ src/servisne_info/routes/home.clj
@@ -8,7 +8,7 @@
   (mq/with-collection "news"
     (mq/find {})
     (mq/fields [:url :title :created-at])
-    (mq/sort (array-map :created-at 1))
+    (mq/sort (array-map :created-at -1))
     (mq/limit 10)))

 (defn home-page []


update command doc

update command doc

--- src/cljs/swarmpit/ajax.cljs
+++ src/cljs/swarmpit/ajax.cljs
@@ -42,9 +42,9 @@
    {:params     {:test 123}
     :headers    {:header true}
     :state      [:processing?]
-    :on-success (fn [response]
+    :on-success (fn [{:keys [response origin?]}]
                    (print response))
-    :on-error   (fn [response]
+    :on-error   (fn [{:keys [response]}]
                    (print response))}"
   [request]
   (let [form-id (state/form-id)]


Add support for isolator in diagram (with zipper)

--- src/gigrig/components/diagram.cljs
+++ src/gigrig/components/diagram.cljs
@@ -39,9 +39,9 @@

 (defn child [loc]
   (let [box-data (gzip/box-meta loc)]
-    (case (gzip/loc-type loc)
-      :pedal ^{:key (boxes/react-key box-data)} [boxes/boxed-text box-data]
-      :distributor ^{:key (boxes/react-key box-data)} [tree loc])))
+    (if (zip/branch? loc)
+      ^{:key (boxes/react-key box-data)} [tree loc]
+      ^{:key (boxes/react-key box-data)} [boxes/boxed-text box-data])))

 (defn tree [loc]
   (let [root (gzip/box-meta loc)


added site handler

added site handler

--- src/hypertext_ray/page_handler.clj
+++ src/hypertext_ray/page_handler.clj
@@ -13,7 +13,7 @@
     :wait (do (println "wait") siteinfo)
     :collect-data (find-data siteinfo current-page)
     :logout (do (println "logout") siteinfo)
-    :quit (do (println "quit") siteinfo)
+    :quit (stop-driver siteinfo)
     )
   )

@@ -26,3 +26,17 @@
     )
   )

+
+(defn handle-site [siteinfo]
+  (let [siteatom (atom siteinfo)]
+    (reset! siteatom (-> @siteatom start-driver))
+    (loop [x 10]
+      (when (and (> x 0) (not (true? (:done @siteatom))))
+        (reset! siteatom (-> @siteatom handle-page))
+        (recur (dec x))
+        )
+      )
+
+  @siteatom
+    )
+  )


Remove unused required namespaces

Remove unused required namespaces

--- src/io/aviso/rook/async.clj
+++ src/io/aviso/rook/async.clj
@@ -27,8 +27,6 @@
     (:import (javax.servlet.http HttpServletResponse))
   (:require
     [clojure.core.async :refer [chan go >! <! <!! >!! thread put! take! close!]]
-    [clojure.tools.logging :as l]
-    [clout.core :as clout]
     [ring.middleware
      [session :as session]
      [format-params :as format-params]


Removes core.clj

Removes core.clj

--- src/the_little_clojurian/core.clj
+++ src/the_little_clojurian/core.clj
@@ -1,6 +0,0 @@
-(ns the-little-clojurian.core)
-
-(defn foo
-  "I don't do a whole lot."
-  [x]
-  (println x "Hello, World!"))


file transformation space in keywords bug fixed

--- src/tools/file-transformation.clj
+++ src/tools/file-transformation.clj
@@ -49,7 +49,8 @@
                lines (drop-while no-phi-line? all-lines)]
           (if (empty? lines)
               file-map
-              (let [new-name (keyword (subs (first lines) 5 (count (first lines))))
+              (let [new-name (keyword (str/replace (subs (first lines) 5 (count (first lines)))
+                                        #" " "_"))
                     new-formula (next-formula (rest lines))]
                 (recur (assoc file-map new-name new-formula)
                   (drop-while no-phi-line? (rest lines))))))


Let rate-gauge send 0 in the case where no time has elapsed.

--- src/uswitch/bifrost/telemetry.clj
+++ src/uswitch/bifrost/telemetry.clj
@@ -50,9 +50,10 @@
 (defn rate-gauge [name]
   (let [state (atom nil)
         g     (gauge name
-                     (if-let [{:keys [started-at updated-at value]} @state]
-                       (let [elapsed (- updated-at started-at)]
-                         (* 1000 (/ value (max elapsed 1))))
+                     (if-let [current-state @state]
+                       (let [{:keys [started-at updated-at value]} current-state
+                             elapsed (- updated-at started-at)]
+                         (if (> elapsed 0) (* 1000 (/ value elapsed)) 0))
                        0))]
     (reify RateGauge
       (stop-gauge! [this]


Update dependencies.

Update dependencies.

--- src/leiningen/new/mies/project.clj
+++ src/leiningen/new/mies/project.clj
@@ -2,12 +2,10 @@
   :description "FIXME: write this!"
   :url "http://example.com/FIXME"
   :dependencies [[org.clojure/clojure "1.7.0"]
-                 [org.clojure/clojurescript "1.7.170"
-                  :exclusion [org.clojure/data.json]]
-                 [org.clojure/data.json "0.2.6"]]
+                 [org.clojure/clojurescript "1.7.228"]]
   :jvm-opts ^:replace ["-Xmx1g" "-server"]
   :plugins [[lein-npm "0.6.1"]]
-  :npm {:dependencies [[source-map-support "0.3.2"]]}
+  :npm {:dependencies [[source-map-support "0.4.0"]]}
   :source-paths ["src" "target/classes"]
   :clean-targets ["out" "release"]
   :target-path "target")


Make node links clickable, redirect to the right view for now

--- src/web/components/node_link.cljs
+++ src/web/components/node_link.cljs
@@ -1,6 +1,7 @@
 (ns web.components.node-link
   (:require [om.next :as om :refer-macros [defui]]
-            [om.dom :as dom]))
+            [om.dom :as dom]
+            [web.routing :as routing]))

 (defui Badge
   Object
@@ -16,6 +17,17 @@

 (def badge (om/factory Badge))

+(def kind->view
+  {"requirement" :requirements
+   "component" :components
+   "work-item" :work-items
+   "tag" :tags})
+
+(defn node->route [{:keys [kind name]}]
+  {:handler (kind->view kind)
+   :route-params {:state '?state
+                  :node name}})
+
 (defui NodeLink
   static om/Ident
   (ident [this props]
@@ -25,8 +37,10 @@
     [:name :title :kind])
   Object
   (render [this]
-    (let [{:keys [name title kind]} (om/props this)]
-      (dom/div #js {:className "node-link"}
+    (let [{:keys [name title kind]} (om/props this)
+          route (node->route (om/props this))]
+      (dom/a #js {:onClick #(routing/activate-route! route)
+                  :className "node-link"}
         (badge {:kind kind})
         (dom/span #js {:className "node-link-title"} title)
         (dom/span #js {:className "node-link-name"} name)))))


use contains? to check for attribute presence

--- src/kixi/hecuba/webutil.clj
+++ src/kixi/hecuba/webutil.clj
@@ -40,7 +40,7 @@

 (defn update-stringified-lists [body [selector]]
   (if
-    (selector body)
+    (contains? selector body)
     (update-in body [selector] json-list)
     (assoc body selector nil)))


collision

collision

--- desktop/src-common/clo_runner/core.clj
+++ desktop/src-common/clo_runner/core.clj
@@ -2,28 +2,29 @@
   (:require [play-clj.core :refer :all]
             [play-clj.g2d :refer :all]))

+(def player-speed 10)

 (defn move [screen entity]
   (cond
     (= (:key screen) (key-code :dpad-up)) (if (<
-                                                (+ (:y entity) 30)
+                                                (+ (:y entity) player-speed)
                                                 (- 600 (:height entity)))
-                                            (assoc entity :y (+ (:y entity) 30))
+                                            (assoc entity :y (+ (:y entity) player-speed))
                                             (assoc entity :y  (- 600 (:height entity))))
     (= (:key screen) (key-code :dpad-down)) (if (>
-                                                (- (:y entity) 30)
+                                                (- (:y entity) player-speed)
                                                 0)
-                                            (assoc entity :y (- (:y entity) 30))
+                                            (assoc entity :y (- (:y entity) player-speed))
                                             (assoc entity :y 0))
     (= (:key screen) (key-code :dpad-right)) (if (<
-                                                (+ (:x entity) 30)
+                                                (+ (:x entity) player-speed)
                                                 (- 800 (:width entity)))
-                                            (assoc entity :x (+ (:x entity) 30))
+                                            (assoc entity :x (+ (:x entity) player-speed))
                                             (assoc entity :x  (- 800 (:width entity))))
     (= (:key screen) (key-code :dpad-left)) (if (>
-                                                (- (:x entity) 30)
+                                                (- (:x entity) player-speed)
                                                 0)
-                                            (assoc entity :x (- (:x entity) 30))
+                                            (assoc entity :x (- (:x entity) player-speed))
                                             (assoc entity :x 0))))

@@ -36,6 +37,38 @@
 (defn move-boxes [boxes]
   (vec (map move-box boxes)))

+(defn has-col [player box]
+  (let [left-player (- (:x player) (/ (:width player) 2))
+        right-player (+ (:x player) (/ (:width player) 2))
+        left-box (- (:x box) (/ (:width box) 2))
+        right-box (+ (:x box) (/ (:width box) 2))
+        up-player (+ (:y player) (/ (:height player) 2))
+        down-player (- (:y player) (/ (:height player) 2))
+        up-box (+ (:y box) (/ (:height box) 2))
+        down-box (- (:y box) (/ (:height box) 2))]
+
+
+  (or
+  (and (> right-player  left-box) (< down-player up-box)
+       (> up-player up-box) (< left-player left-box))
+  (and (> right-player left-box) (> up-player down-box)
+       (< down-player down-box) (< left-player left-box))
+   (and (< left-player right-box) (> up-player down-box)
+        (< down-player down-box) (> right-player right-box))
+
+  (and (< left-player right-box) (< down-player up-box)
+       (> up-player up-box) (> right-player right-box)))))
+
+(defn has-collide [player boxes]
+  (let [collision false
+        collision (loop [x (dec (count boxes))]
+                    (when (>= x 0)
+                      (if (has-col player (get boxes x))
+                        true
+                        (recur (dec x)))))]
+    collision
+    ))
+
 (defn moving [entities]
   (let [backgr (first entities)
         player (last entities)
@@ -45,6 +78,16 @@
                   []))]
     (conj (apply conj (conj [] backgr) boxes) player)))

+(defn collision [entities]
+  (let [backgr (first entities)
+        player (last entities)
+        boxes (try
+                (vec (drop 1 (drop-last entities)))
+                (catch NullPointerException e
+                  []))]
+    (if (has-collide player boxes)
+      (throw (Exception. "Game over"))
+      (conj (apply conj (conj [] backgr) boxes) player))))

 (defscreen main-screen
   :on-show
@@ -78,7 +121,11 @@
   :on-render
   (fn [screen entities]
     (clear!)
-    (render! screen (moving entities)))
+    (render! screen
+             (->
+               (moving entities)
+               (collision)
+               )))

   :on-timer
   (fn [screen entities]


suppr println

suppr println

--- desktop/src-common/con_world/sound.clj
+++ desktop/src-common/con_world/sound.clj
@@ -15,7 +15,6 @@
   (play-sound (str "sound/mouvement/" (inc (rand-int 4)) ".wav")))

 (defn ambiant-sound [{:keys [level]}]
-  (println "son ambiance " (str "sound/ambiance/" (nth (tonalites level) (rand-int 8)) ".wav"))
   (when level (play-sound (str "sound/ambiance/" (nth (tonalites level) (rand-int 8)) ".wav"))))

 (defn kill-enemy-sound [{:keys [level]}]


Mention commenting.

Mention commenting.

--- src/klangmeister/views.cljs
+++ src/klangmeister/views.cljs
@@ -22,6 +22,7 @@
       (row "(..)" "Evaluate an expression" "(+ 1 1) => 2")
       (row "[..]" "Make a sequence." "[1 2 3] => [1 2 3]")
       (row "->>" "Thread together multiple expressions." "(->> guitar (with bass))")
+      (row ";" "Ignore the rest of the line, so that you can put comments in." "; The melody.")
       (row "A..G" "Transform a quantity of semitones relative to root into the specified key." "(A 3) => 72")
       (row "bpm" "Make a transformation from beats to seconds." "((bpm 120) 3) => 1.5")
       (row "comp" "Join together several transformations." "((comp C major) 2) => 64")


Move to "shell" namespce

Move to "shell" namespce

--- planck-cljs/src/planck/shell.cljs
+++ planck-cljs/src/planck/shell.cljs
@@ -1,4 +1,4 @@
-(ns planck.sh)
+(ns planck.shell)

 (def ^:dynamic *sh-dir* nil)
 (def ^:dynamic *sh-env* nil)


Allow namespace names to be passed instead of filenames

--- src/leiningen/highlight.clj
+++ src/leiningen/highlight.clj
@@ -75,12 +75,12 @@
   (-> routes
       (wrap-reload '[leiningen.highlight])))

-(defn- browse-highlighted-code [filename]
-  (if filename
+(defn- browse-highlighted-namespace [nsname]
+  (if nsname
     (try
       (let [port (Integer/parseInt (get (System/getenv) "PORT" "8080"))
             server (jetty/run-jetty app {:port port, :join? false})]
-        (browse/browse-url (str "http://localhost:" port "/ns/" (str/replace filename #"/" "%2f")))
+        (browse/browse-url (str "http://localhost:" port "/ns/" nsname))
         (.join server)))
     (throw (Exception. "specify namespace to be highlighted"))))

@@ -90,7 +90,7 @@
   ([project command & args]
      (case command
        "browse"
-       #_=> (browse-highlighted-code (first args))
+       #_=> (browse-highlighted-namespace (first args))
        "repl"
        #_=> (m/repl :read (fn [_ _] (read-and-highlight (io/reader *in*)))
                     :need-prompt #(do true))


Now annotate c-end with probability as well as c-begin

--- src/main/clj/pamela/tpn.clj
+++ src/main/clj/pamela/tpn.clj
@@ -364,7 +364,9 @@
                         (get-in choice [:graph :probability])))
         ;; here this represents the sum of all choice probabilities
         probability (if (pos? (count probability)) (reduce + 0 probability))
-        ce (tpns/make-c-end {})
+        ce (tpns/make-c-end
+             (-> {}
+               (assoc-if :probability probability)))
         constraint (constraint-from-bounds bounds (:uid ce))
         cb (tpns/make-c-begin
              (-> {}


final changes

final changes

--- src/mermaid_ldjam/core.cljs
+++ src/mermaid_ldjam/core.cljs
@@ -16,7 +16,7 @@
      ;actions
      :look {:x 10 :y (- 400 50) :width 100 :height 40 :label "Look" :path "resources/action.png"}
      :flap {:x 110 :y (- 400 50) :width 100 :height 40 :label "Flap":path "resources/action.png"}}
-   :current-status "Hello little mermaid."
+   :current-status "You are a mermaid trapped in a room, away from the sea."
    :last-clicked []
    :mouse-clicked false
    :game-state :play
@@ -48,7 +48,7 @@
   (assoc state :game-state :lose))

 (def actions-map
-  {[:look :window] {:text "You look outside the window and see your home, the mighty ocean." :action []}
+  {[:look :window] {:text "You look outside the window and see your home, the mighty sea." :action []}
    [:look :bucket] {:text "You see a bucket. Maybe there is something inside."}
    [:look :stone] {:text "There are stones on the floor. You can easily reach them" :action []}
    [:look :bottle] {:text "There is a bottle of wine on the floor. You can't get drunk by yourself." :action []}
@@ -72,10 +72,10 @@
    [:starfish :window-open] {:text "You throw the starfish out the window. Looks like it attracted a seagull." :action [unhide :seagull hide :starfish hide :window-open]}
    [:bottle :seagull] {:text "You start drinking with the seagull. The seagull drunkenly points in the corner and leaves." :action [unhide :broom hide :seagull unhide :window-open]}
    [:bottle :starfish] {:text "You hand the bottle to the starfish. It takes a sip of wine, but it's more of a whiskey person."}
-   [:broom :window-open] {:text "You catapult yourself out of the room with the broom. FREEDOM! You won." :action [win-game]}
+   [:broom :window-open] {:text "You catapult yourself out of the room with the broom. You made it back to the sea. Goodbye mermaid." :action [win-game]}
    [:broom :bucket] {:text "You try to put the broom in the bucket. That's where the broom belongs, but you're not here to clean up."}
    [:bucket :seagull] {:text "You show the bucket to the seagull. It expected more of you."}
-   [:stone :seagull] {:text "You throw stones at the seagull. The seagull is disappointed and leaves. You guess that's your life now." :action [lose-game]}
+   [:stone :seagull] {:text "You throw stones at the seagull. The seagull is disappointed and leaves. You stay behind in the room. I guess that's your life now." :action [lose-game]}
    })

 (defn point-in-rect? [entity mx my]
@@ -129,9 +129,12 @@
       state)))

 (defn update-state [state]
-  (-> state
+  (cond
+    (= (:game-state state) :win) state
+    (= (:game-state state) :lose) state
+    :else (-> state
       (update-last-clicked)
-      (update-current-action)))
+      (update-current-action))))

 (def load-image  (memoize q/load-image))

@@ -142,7 +145,6 @@
   (q/rect 0 260 (q/width) (q/height))
   (q/image (load-image "resources/line.png") 0 250 (q/width) 20)
   (q/image (load-image "resources/mermaid.png") 170 120 255 200))
- ; (q/image (load-image "resources/sea.jpg") 0 0 (q/width) (q/height)))

 (defn draw-entity-image [entity]
   (q/image (load-image (:path entity)) (:x entity) (:y entity) (:width entity) (:height entity)))
@@ -169,17 +171,29 @@
   (q/text-align :left)
   (q/text (:current-status state) 20 15 (- (q/width) 140) 90)
   (q/text-align :right)
-  (q/text (:game-state state) (- (q/width) 150) 15 120 90))
+  (q/text (:last-clicked state) (- (q/width) 150) 15 120 90))
+
+(defn draw-win-state [state]
+  (q/background 194 185 177)
+  (draw-status-bar state)
+  (q/image (load-image "resources/win.png") 25 50 550 350))
+
+(defn draw-lose-state [state]
+  (q/background 194 185 177)
+  (draw-status-bar state)
+  (q/image (load-image "resources/lose.png") 25 50 550 350))
+
+(defn draw-play-state [state]
+  (draw-entities state)
+  (draw-background)
+  (draw-entities state)
+  (draw-status-bar state))

 (defn draw-state [state]
   (cond
-    (= (:game-state state) :win) (q/text "YOU WIN" 10 10)
-    (= (:game-state state) :lose) (q/text "YOU LOSE" 10 10)
-    :else (do
-            (draw-entities state)
-            (draw-background)
-            (draw-entities state)
-            (draw-status-bar state))))
+    (= (:game-state state) :win) (draw-win-state state)
+    (= (:game-state state) :lose) (draw-lose-state state)
+    :else (draw-play-state state)))

 (defn handle-click [state]
   (assoc state :mouse-clicked true))


Fix some tests.

Fix some tests.

--- test/cljx/snippets/rendering.cljx
+++ test/cljx/snippets/rendering.cljx
@@ -6,9 +6,7 @@
   (:use-macros [quil.snippet :only [defsnippet]]))

 (defsnippet hint {:renderer :p3d}
-  (let [hints [:enable-native-fonts
-               :disable-native-fonts
-               :enable-depth-test
+  (let [hints [:enable-depth-test
                :disable-depth-test
                :enable-depth-sort
                :disable-depth-sort
@@ -18,8 +16,6 @@
                :disable-depth-mask
                :enable-optimized-stroke
                :disable-optimized-stroke
-               :enable-retina-pixels
-               :disable-retina-pixels
                :enable-stroke-perspective
                :disable-stroke-perspective
                :enable-stroke-pure
@@ -45,7 +41,7 @@
 (defsnippet load-shader {:renderer :p2d}
   (let [gr (q/create-graphics 250 250)
         path (clojure.java.io/resource "SimpleShader.glsl")
-        shd (q/load-shader (str path))]
+        shd (q/load-shader (.getPath path))]
     (q/with-graphics gr
       (q/background 255)
       (q/fill 255 0 0)


Remove debug message

Remove debug message

--- src/onyx/plugin/datomic.clj
+++ src/onyx/plugin/datomic.clj
@@ -267,7 +267,6 @@
                                            (doseq [entry (filter #(or (nil? max-tx)
                                                                       (< (:t %) max-tx))
                                                                  entries)]
-                                             (info "Putting on " entry)
                                              (>!! read-ch
                                                   (t/input (java.util.UUID/randomUUID)
                                                            (update (into {} entry)


[#12319] User's statuses are not displayed in Profile if it is opened by scanning QR

Signed-off-by: andrey <b713972e59b8e606e23253c4a13e948139fea4d1@gmail.com>

--- src/status_im/qr_scanner/core.cljs
+++ src/status_im/qr_scanner/core.cljs
@@ -64,8 +64,7 @@

       (and public-key (not own))
       (fx/merge cofx
-                {:db (assoc db :contacts/identity public-key)
-                 :dispatch [:open-modal :profile]}
+                {:dispatch [:chat.ui/show-profile public-key]}
                 (navigation/navigate-back))

       :else