Bump dependencies :new:

Bump dependencies :new:

--- project.clj
+++ project.clj
@@ -13,17 +13,17 @@
   :dependencies [[org.clojure/clojure "1.8.0"]
                  [org.clojure/core.async "0.2.374"]
                  [org.clojure/core.match "0.3.0-alpha4"]              ; optimized pattern matching library for Clojure
-                 [org.clojure/core.memoize "0.5.8"]                   ; needed by core.match; has useful FIFO, LRU, etc. caching mechanisms
+                 [org.clojure/core.memoize "0.5.9"]                   ; needed by core.match; has useful FIFO, LRU, etc. caching mechanisms
                  [org.clojure/data.csv "0.1.3"]                       ; CSV parsing / generation
                  [org.clojure/java.classpath "0.2.3"]
-                 [org.clojure/java.jdbc "0.4.2"]                      ; basic jdbc access from clojure
+                 [org.clojure/java.jdbc "0.5.8"]                      ; basic jdbc access from clojure
                  [org.clojure/math.numeric-tower "0.0.4"]             ; math functions like `ceil`
                  [org.clojure/tools.logging "0.3.1"]                  ; logging framework
                  [org.clojure/tools.namespace "0.2.10"]
                  [amalloy/ring-gzip-middleware "0.1.3"]               ; Ring middleware to GZIP responses if client can handle it
-                 [aleph "0.4.1-beta4"]                                ; Async HTTP library; WebSockets
-                 [cheshire "5.5.0"]                                   ; fast JSON encoding (used by Ring JSON middleware)
-                 [clj-http "2.1.0"                                    ; HTTP client
+                 [aleph "0.4.1"]                                      ; Async HTTP library; WebSockets
+                 [cheshire "5.6.1"]                                   ; fast JSON encoding (used by Ring JSON middleware)
+                 [clj-http "3.0.1"                                    ; HTTP client
                   :exclusions [commons-codec
                                commons-io
                                slingshot]]
@@ -37,39 +37,38 @@
                                ring/ring-core]]
                  [com.draines/postal "1.11.4"]                        ; SMTP library
                  [com.google.apis/google-api-services-bigquery        ; Google BigQuery Java Client Library
-                  "v2-rev277-1.21.0"]
+                  "v2-rev294-1.21.0"]
                  [com.h2database/h2 "1.4.191"]                        ; embedded SQL database
                  [com.mattbertolini/liquibase-slf4j "2.0.0"]          ; Java Migrations lib
                  [com.novemberain/monger "3.0.2"]                     ; MongoDB Driver
                  [compojure "1.5.0"]                                  ; HTTP Routing library built on Ring
                  [environ "1.0.2"]                                    ; easy environment management
                  [hiccup "1.0.5"]                                     ; HTML templating
-                 [korma "0.4.2"]                                      ; SQL lib
-                 [log4j/log4j "1.2.17"
+                 [korma "0.4.2"]                                      ; SQL generation
+                 [log4j/log4j "1.2.17"                                ; logging framework
                   :exclusions [javax.mail/mail
                                javax.jms/jms
                                com.sun.jdmk/jmxtools
                                com.sun.jmx/jmxri]]
-                 [medley "0.7.3"]                                     ; lightweight lib of useful functions
+                 [medley "0.7.4"]                                     ; lightweight lib of useful functions
                  [metabase/throttle "1.0.1"]                          ; Tools for throttling access to API endpoints and other code pathways
-                 [mysql/mysql-connector-java "5.1.38"]                ; MySQL JDBC driver
-                 [net.sf.cssbox/cssbox "4.11"
+                 [mysql/mysql-connector-java "6.0.2"]                 ; MySQL JDBC driver
+                 [net.sf.cssbox/cssbox "4.11"                         ; HTML / CSS rendering
                   :exclusions [org.slf4j/slf4j-api]]
                  [net.sourceforge.jtds/jtds "1.3.1"]                  ; Open Source SQL Server driver
-                 [org.xhtmlrenderer/flying-saucer-core "9.0.8"]
-                 [org.liquibase/liquibase-core "3.4.2"]               ; migration management (Java lib)
-                 [org.slf4j/slf4j-log4j12 "1.7.19"]
+                 [org.liquibase/liquibase-core "3.5.0"]               ; migration management (Java lib)
+                 [org.slf4j/slf4j-log4j12 "1.7.21"]                   ; abstraction for logging frameworks -- allows end user to plug in desired logging framework at deployment time
                  [org.yaml/snakeyaml "1.17"]                          ; YAML parser (required by liquibase)
                  [org.xerial/sqlite-jdbc "3.8.11.2"]                  ; SQLite driver
                  [postgresql "9.3-1102.jdbc41"]                       ; Postgres driver
-                 [prismatic/schema "1.0.5"]                           ; Data schema declaration and validation library
+                 [prismatic/schema "1.1.1"]                           ; Data schema declaration and validation library
                  [ring/ring-jetty-adapter "1.4.0"]                    ; Ring adapter using Jetty webserver (used to run a Ring server for unit tests)
                  [ring/ring-json "0.4.0"]                             ; Ring middleware for reading/writing JSON automatically
                  [stencil "0.5.0"]                                    ; Mustache templates for Clojure
                  [swiss-arrows "1.0.0"]]                              ; 'Magic wand' macro -<>, etc.
   :plugins [[lein-environ "1.0.2"]                                    ; easy access to environment variables
             [lein-ring "0.9.7"                                        ; start the HTTP server with 'lein ring server'
-             :exclusions [org.clojure/clojure]]]
+             :exclusions [org.clojure/clojure]]]                      ; TODO - should this be a dev dependency ?
   :main ^:skip-aot metabase.core
   :manifest {"Liquibase-Package" "liquibase.change,liquibase.changelog,liquibase.database,liquibase.parser,liquibase.precondition,liquibase.datatype,liquibase.serializer,liquibase.sqlgenerator,liquibase.executor,liquibase.snapshot,liquibase.logging,liquibase.diff,liquibase.structure,liquibase.structurecompare,liquibase.lockservice,liquibase.sdk,liquibase.ext"}
   :target-path "target/%s"


Add GPG signing credentials to project.clj

--- project.clj
+++ project.clj
@@ -14,4 +14,5 @@
     [com.aphyr/riemann-java-client  "0.2.8"]
     [ch.qos.logback/logback-classic "1.0.13"]
     [org.clojure/tools.logging      "0.2.6"]
-  ])
+  ]
+  :signing {:gpg-key "dante@walmartlabs.com"})


Update dependency.

Update dependency.

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
   :jvm-opts ["-Dapple.awt.UIElement=true"]  ; Suppress dock icon and focus stealing when compiling on a Mac.
   :dependencies [[org.clojure/clojure "1.8.0"]
                  [org.clojure/core.cache "0.6.5"]
-                 [org.clojure/core.async "0.2.385" :exclusions [org.clojure/tools.reader]]
+                 [org.clojure/core.async "0.2.391" :exclusions [org.clojure/tools.reader]]
                  [org.clojure/data.json "0.2.6"]
                  [org.clojure/data.zip "0.1.2"]
                  [org.clojure/math.numeric-tower "0.0.4"]


new cljs version

new cljs version

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

   :dependencies [
     [org.clojure/clojure "1.6.0" :scope "provided"]
-    [org.clojure/clojurescript "0.0-2727" :scope "provided"]
+    [org.clojure/clojurescript "0.0-2816" :scope "provided"]
   ]

   :global-vars {
@@ -46,6 +46,9 @@
               :output-dir    "web/target-cljs"
               :optimizations :none
               :source-map    true
+              :warnings     {:single-segment-namespace false}
+              :verbose       true
+              :recompile-dependents false
             }}
           { :id "testable"
             :source-paths ["src" "test"]
@@ -53,6 +56,7 @@
               :output-to     "web/datascript.testable.js"
               :optimizations :advanced
               :pretty-print  true
+              :warnings     {:single-segment-namespace false}
             }}
         ]
         :test-commands {


Fix indentation in project.clj

Fix indentation in project.clj

--- project.clj
+++ project.clj
@@ -61,8 +61,8 @@
                            :preloads [discuss.utils.extensions]
                            :optimizations :simple
                            :closure-defines {discuss.config/version ~(->> (slurp "project.clj")
-                                                                   (re-seq #"\".*\""
-                                                                       (first)))
+                                                                       (re-seq #"\".*\"")
+                                                                       (first))
                                              discuss.config/build-commit ~(if (.exists (clojure.java.io/as-file ".git/ORIG_HEAD"))
                                                                             (subs (slurp ".git/ORIG_HEAD") 0 6)
                                                                             "dev")}


Inc version to 0.6.0-SNAPSHOT.

Inc version to 0.6.0-SNAPSHOT.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject manners "0.5.0"
+(defproject manners "0.6.0-SNAPSHOT"
   :description "A validation library built on using predicates properly."
   :url "https://github.com/RyanMcG/manners"
   :license {:name "Eclipse Public License"


Bump SnakeYaml from 1.18 to 1.19

Bump SnakeYaml from 1.18 to 1.19

--- project.clj
+++ project.clj
@@ -4,5 +4,5 @@
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.6.0"]
-                 [org.yaml/snakeyaml "1.18"]
+                 [org.yaml/snakeyaml "1.19"]
                  [org.flatland/ordered "1.5.2"]])


3.0.0-alpha1

--- project.clj
+++ project.clj
@@ -1,10 +1,10 @@
-(defproject refactor-nrepl "3.0.0-SNAPSHOT"
+(defproject refactor-nrepl "3.0.0-alpha1"
   :description "nREPL middleware to support editor-agnostic refactoring"
   :url "http://github.com/clojure-emacs/refactor-nrepl"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[nrepl "0.8.3"]
-                 ^:inline-dep [http-kit "2.5.1"]
+                 ^:inline-dep [http-kit "2.5.3"]
                  ^:inline-dep [org.clojure/data.json "2.3.1"]
                  ^:inline-dep [org.clojure/tools.analyzer.jvm "1.1.0"]
                  ^:inline-dep [org.clojure/tools.namespace "1.1.0" :exclusions [org.clojure/tools.reader]]


upgrade austin (cljs-repl) to match clojurescript

--- project.clj
+++ project.clj
@@ -63,7 +63,7 @@
                                   [prismatic/dommy "0.1.1"]
                                   [secretary "0.4.0" :exclusions [org.clojure/clojurescript]]
                                   [jayq "2.5.0"]
-                                  [com.cemerick/austin "0.1.1"]]
+                                  [com.cemerick/austin "0.1.3"]]
                    :repositories {"sonatype-oss-public"
                                   "https://oss.sonatype.org/content/groups/public/"}}}


Use whitespace optimizations

Use whitespace optimizations

--- project.clj
+++ project.clj
@@ -15,7 +15,7 @@
               :compiler {:output-to "resources/public/warp/app.js"
                          :output-dir "resources/public/warp"
                          :asset-path "/warp"
-                         :optimizations :none
+                         :optimizations :whitespace
                          :pretty-print false}
               :main org.spootnik.om_warp.app}]}
   :dependencies [[org.clojure/clojure           "1.7.0"]


Update to clojure 1.9.0-alpha4.

Update to clojure 1.9.0-alpha4.

--- project.clj
+++ project.clj
@@ -11,7 +11,7 @@
              ;; "-Dcom.sun.management.jmxremote.rmi.port=9090"
              ;; "-Djava.rmi.server.hostname=0.0.0.0"
              "-XX:+UseG1GC" "-Xms1g" "-Xmx1g"]
-  :dependencies [[org.clojure/clojure "1.9.0-alpha3"]
+  :dependencies [[org.clojure/clojure "1.9.0-alpha4"]
                  [org.clojure/tools.logging "0.3.1"]
                  [funcool/struct "0.1.0"]
                  [funcool/suricatta "1.1.0"]


updates server deps

updates server deps

--- project.clj
+++ project.clj
@@ -34,9 +34,9 @@
                                          [com.livingsocial/lein-dependency-check "1.0.2"]]
                           :dependencies [[midje "1.9.1"]
                                          [clj-webdriver/clj-webdriver "0.7.2" :exclusions [org.mortbay.jetty/jetty]]
-                                         [org.seleniumhq.selenium/selenium-java "3.12.0" :exclusions [org.eclipse.jetty/jetty-io
+                                         [org.seleniumhq.selenium/selenium-java "3.13.0" :exclusions [org.eclipse.jetty/jetty-io
                                                                                commons-logging]]
-                                         [io.github.bonigarcia/webdrivermanager "2.2.2" :exclusions [org.apache.commons/commons-lang3]]
+                                         [io.github.bonigarcia/webdrivermanager "2.2.3" :exclusions [org.apache.commons/commons-lang3]]
                                          [org.seleniumhq.selenium/htmlunit-driver "2.31.0" :exclusions [org.eclipse.jetty/jetty-io
                                                                                org.eclipse.jetty/jetty-http]]
                                          [ring/ring-mock "0.3.2"]]}


Version 174-SNAPSHOT

Version 174-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojars-web "173"
+(defproject clojars-web "174-SNAPSHOT"
   :min-lein-version "2.0.0"
   :dependencies [[org.clojure/clojure "1.10.3"]
                  [org.clojure/core.memoize "1.0.253"]


Upgraded tools.reader Upgraded it to the stable release

--- project.clj
+++ project.clj
@@ -9,7 +9,7 @@
                  ^:source-dep [alembic "0.3.2"]
                  ^:source-dep [org.clojure/tools.analyzer.jvm "0.7.1"]
                  ^:source-dep [org.clojure/tools.namespace  "0.3.0-alpha3"]
-                 ^:source-dep [org.clojure/tools.reader "1.0.2"]
+                 ^:source-dep [org.clojure/tools.reader "1.1.1"]
                  ^:source-dep [org.clojure/java.classpath "0.2.3"]
                  ^:source-dep [lein-cljfmt "0.3.0"]
                  ^:source-dep [me.raynes/fs "1.4.6"]


Fixed dependencies

Fixed dependencies

--- project.clj
+++ project.clj
@@ -5,7 +5,7 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}

   :dependencies [[org.clojure/clojure "1.8.0"]
-                 [org.clojure/core.async "0.3.441" :exclusions [org.clojure/tools.reader]]
+                 [org.clojure/core.async "0.3.441"]
                  [reagent "0.6.0"]
                  [reagent-forms "0.5.28"]
                  [reagent-utils "0.2.0"]
@@ -19,15 +19,16 @@
                  [buddy "1.3.0"]
                  [fogus/ring-edn "0.3.0"]
                  [commons-codec "1.10"]
+                 [com.taoensso/encore "2.87.0"]
                  [com.taoensso/carmine "2.15.1"]
                  [compojure "1.5.2"]
                  [hiccup "1.0.5"]
                  [com.cemerick/url "0.1.1"]
                  [yogthos/config "0.8"]
                  [com.taoensso/timbre "4.8.0"]
-                 [org.clojure/clojurescript "1.9.493" :scope "provided"]
+                 [org.clojure/clojurescript "1.9.494" :scope "provided"]
                  [secretary "1.2.3"]
-                 [venantius/accountant "0.1.8" :exclusions [org.clojure/tools.reader]]
+                 [venantius/accountant "0.1.9"]
                  [cljs-http "0.1.42"]
                  [clj-time "0.13.0"]
                  [figwheel-sidecar "0.5.9"]]


fix url

fix url

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

   :description "A plugin for running clojurescript tests with Karma."

-  :url "https://github.com/honzabrecka/colored-reporter"
+  :url "https://github.com/honzabrecka/karma-reporter"

   :license {:name "MIT License"
             :url "http://www.opensource.org/licenses/mit-license.php"}


Fix Lein :url.

Fix Lein :url.

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (defproject org.onyxplatform/onyx-datomic "0.8.3.1-SNAPSHOT"
   :description "Onyx plugin for Datomic"
-  :url "https://github.com/MichaelDrogalis/onyx-datomic"
+  :url "https://github.com/onyx-platform/onyx-datomic"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :repositories {"snapshots" {:url "https://clojars.org/repo"


Remove unecessary config

Remove unecessary config

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

                    :plugins [[lein-figwheel "0.2.7"]]

-                   :figwheel {:http-server-root "public"
-                              :server-port 3449
-                              :css-dirs ["resources/public/css"]
+                   :figwheel {:css-dirs ["resources/public/css"]
                               :open-file-command "idea-opener"}

                    :env {:is-dev true}


Bump to 0.3.16-tableview-show-name-or-label-SNAPSHOT

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

-(defproject onaio/hatti "0.3.15-show-name-or-label-for-data-SNAPSHOT"
+(defproject onaio/hatti "0.3.16-tableview-show-name-or-label-SNAPSHOT"
   :description "A cljs dataview from your friends at Ona.io"
   :license "Apache 2, see LICENSE"
   :url "https://github.com/onaio/hatti"


(maint) Bump clj parent to 4.6.28

(maint) Bump clj parent to 4.6.28

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (def pdb-version "6.18.2-SNAPSHOT")

-(def clj-parent-version "4.6.26")
+(def clj-parent-version "4.6.28")

 (defn true-in-env? [x]
   (#{"true" "yes" "1"} (System/getenv x)))


reference com.google.guava directly

reference com.google.guava directly

--- project.clj
+++ project.clj
@@ -28,7 +28,9 @@
                  [selmer "1.11.7" :exclusions [joda-time]]
                  [reagent "0.8.0"]
                  [org.clojure/clojurescript "1.10.238"]
-                 [clojure-guava "0.0.8" :exclusions [org.clojure/clojure]]
+                 [com.google.guava/guava "22.0"]
+                 [clojure-guava "0.0.8" :exclusions [org.clojure/clojure
+                                                     com.google.guava/guava]]
                  [closure-clj "0.1.2"]
                  [selmer "1.11.2"]
                  [environ "1.1.0"]


0.8.2-wip17

--- project.clj
+++ project.clj
@@ -3,7 +3,7 @@
   (do (println (str "ERROR: requires Leiningen 1.x but you are using " lein-version))
     (System/exit 1)))

-(defproject storm "0.8.2-wip16"
+(defproject storm "0.8.2-wip17"
   :source-path "src/clj"
   :test-path "test/clj"
   :java-source-path "src/jvm"


Bump accountant version to fix query params issue

--- project.clj
+++ project.clj
@@ -34,7 +34,7 @@
                  [org.clojars.leanpixel/cljs-utils "0.4.2"]
                  [cljs-ajax "0.5.8"]
                  [secretary "1.2.3"]
-                 [venantius/accountant "0.2.0"]
+                 [venantius/accountant "0.2.4"]
                  [com.lucasbradstreet/cljs-uuid-utils "1.0.2"]
                  [com.andrewmcveigh/cljs-time "0.4.0"]
                  [clj-fuzzy "0.3.2"]


bump core.async

bump core.async

--- project.clj
+++ project.clj
@@ -30,7 +30,7 @@
    [com.cognitect/transit-clj "0.8.313"]
    [com.cognitect/transit-cljs "0.8.256"]

-   [org.clojure/core.async "0.6.532"]
+   [org.clojure/core.async "0.7.559"]

    ;; hack to get the latest closure-compiler if CLJS doesn't have it
    [org.clojure/clojurescript "1.10.597"


Bump to snapshot

Bump to snapshot

--- project.clj
+++ project.clj
@@ -1,7 +1,7 @@
 (let [dev-deps '[[speclj "2.7.2"]
                  [classlojure "0.6.6"]]]

-  (defproject reply "0.3.8"
+  (defproject reply "0.3.9-SNAPSHOT"
     :description "REPL-y: A fitter, happier, more productive REPL for Clojure."
     :dependencies [[org.clojure/clojure "1.6.0"]
                    [jline "2.14.5"]
@@ -16,6 +16,9 @@
                    [org.clojars.trptcolin/sjacket "0.1.1.1"
                     :exclusions [org.clojure/clojure]]]
     :min-lein-version "2.0.0"
+    :license {:name "Eclipse Public License"
+              :url "http://www.eclipse.org/legal/epl-v10.html"}
+    :url "https://github.com/trptcolin/reply"
     :profiles {:dev {:dependencies ~dev-deps}
                :base {:dependencies []}}
     :plugins ~dev-deps


Update dependencies, almost ready for Clojure 1.9

--- project.clj
+++ project.clj
@@ -5,15 +5,16 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :jvm-opts ["-Dapple.awt.UIElement=true"]  ; Suppress dock icon and focus stealing when compiling on a Mac.
   :dependencies [[org.clojure/clojure "1.8.0"]
-                 [org.clojure/core.cache "0.6.5"]
-                 [org.clojure/core.async "0.3.443" :exclusions [org.clojure/tools.reader]]
+                 ;; TODO: Upgrade to clojure 1.9.0 once colors 1.0.4 is released
+                 [org.clojure/core.cache "0.7.1"]
+                 [org.clojure/core.async "0.4.474" :exclusions [org.clojure/tools.reader]]
                  [org.clojure/data.json "0.2.6"]
                  [org.clojure/data.zip "0.1.2"]
                  [org.clojure/math.numeric-tower "0.0.4"]
-                 [org.clojure/tools.cli "0.3.5"]
+                 [org.clojure/tools.cli "0.3.7"]
                  [org.clojure/tools.nrepl "0.2.13"]
-                 [org.clojure/tools.reader "1.1.0"]
-                 [org.deepsymmetry/beat-link "0.3.4"]
+                 [org.clojure/tools.reader "1.3.0"]
+                 [org.deepsymmetry/beat-link "0.3.7"]
                  [org.deepsymmetry/wayang "0.1.7"]
                  [java3d/vecmath "1.3.1"]
                  [java3d/j3d-core "1.3.1"]
@@ -27,21 +28,21 @@
                  [com.climate/claypoole "1.1.4"]
                  [org.clojars.brunchboy/protobuf "0.8.3"]
                  [ola-clojure "0.1.8" :exclusions [org.clojure/tools.reader]]
-                 [selmer "1.11.1" :exclusions [cheshire]]
-                 [com.evocomputing/colors "1.0.3"]
+                 [selmer "1.11.8" :exclusions [cheshire]]
+                 [com.evocomputing/colors "1.0.3"]  ; TODO: pull request pending for 1.0.4
                  [environ "1.1.0"]
                  [camel-snake-kebab "0.4.0"]
                  [com.taoensso/timbre "4.10.0"]
-                 [com.fzakaria/slf4j-timbre "0.3.7"]
+                 [com.fzakaria/slf4j-timbre "0.3.12"]
                  [com.taoensso/tower "3.0.2"]
                  [com.taoensso/truss "1.5.0"]
-                 [markdown-clj "1.0.1"]
-                 [ring/ring-core "1.6.2"]
-                 [compojure "1.6.0" :exclusions [org.eclipse.jetty/jetty-server
+                 [markdown-clj "1.0.2"]
+                 [ring/ring-core "1.6.3"]
+                 [compojure "1.6.1" :exclusions [org.eclipse.jetty/jetty-server
                                                  clj-time
                                                  ring/ring-core
                                                  ring/ring-codec]]
-                 [ring/ring-defaults "0.3.1"]
+                 [ring/ring-defaults "0.3.2"]
                  [ring/ring-session-timeout "0.2.0"]
                  [ring-middleware-format "0.7.2" :exclusions [ring/ring-jetty-adapter
                                                               cheshire
@@ -50,10 +51,10 @@
                                                               org.clojure/core.memoize
                                                               com.fasterxml.jackson.core/jackson-core]]
                  [metosin/ring-http-response "0.9.0"]
-                 [prone "1.1.4"]
-                 [buddy "1.3.0"]
-                 [instaparse "1.4.7"]
-                 [http-kit "2.2.0"]]
+                 [prone "1.6.0"]
+                 [buddy "2.0.0"]
+                 [instaparse "1.4.9"]
+                 [http-kit "2.3.0"]]
   :main afterglow.core
   :uberjar-name "afterglow.jar"
   :manifest {"Name" ~#(str (clojure.string/replace (:group %) "." "/")
@@ -68,14 +69,14 @@
   ;; :env {:repl-port 16002}

   :profiles {:dev {:dependencies [[ring-mock "0.1.5" :exclusions [ring/ring-codec]]
-                                  [ring/ring-devel "1.6.2"]]
+                                  [ring/ring-devel "1.6.3"]]
                    :repl-options {:init-ns afterglow.examples
                                   :welcome (println "afterglow loaded.")}
                    :jvm-opts ["-XX:-OmitStackTraceInFastThrow" "-Dapple.awt.UIElement=true"]
                    :env {:dev "true"}}
              :uberjar {:env {:production "true"}
                        :aot :all}}
-  :plugins [[lein-codox "0.10.3"]
+  :plugins [[lein-codox "0.10.4"]
             [lein-dash "0.2.1"]
             [lein-environ "1.1.0"]]


Version 2.4.1

Version 2.4.1

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

-(defproject puppetlabs/trapperkeeper-webserver-jetty9 "2.4.1-SNAPSHOT"
+(defproject puppetlabs/trapperkeeper-webserver-jetty9 "2.4.1"
   :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 log4j to 2.12.0

Update log4j to 2.12.0

--- project.clj
+++ project.clj
@@ -33,8 +33,8 @@
              :1.9 {:dependencies [[org.clojure/clojure "1.9.0"]]}
              :1.10 {:dependencies [[org.clojure/clojure "1.10.1"]]}
              :uberjar {:dependencies [[org.clojure/clojure "1.10.1"]
-                                      [org.apache.logging.log4j/log4j-api "2.11.2"]
-                                      [org.apache.logging.log4j/log4j-core "2.11.2"]]
+                                      [org.apache.logging.log4j/log4j-api "2.12.0"]
+                                      [org.apache.logging.log4j/log4j-core "2.12.0"]]
                        :resource-paths ["bin-resources"]
                        :main cljam.tools.main
                        :jvm-opts ["-Dclojure.compiler.direct-linking=true"]


Release 0.3.865

Release 0.3.865

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject discuss "0.3.851"
+(defproject discuss "0.3.865"
   :description ""
   :url "http://example.com/FIXME"
   :license {:name "Eclipse Public License"


Version 0.3.13

Version 0.3.13

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject fentontravers/websocket-client "0.3.13-SNAPSHOT"
+(defproject fentontravers/websocket-client "0.3.13"
   :description "WebSocket Client Library"
   :url "https://github.com/ftravers/websocket-client"
   :license {:name "Eclipse Public License"


Test against Clojure 1.7.0-alpha3

Test against Clojure 1.7.0-alpha3

--- project.clj
+++ project.clj
@@ -12,7 +12,7 @@
   :java-source-paths ["src/java"]
   :profiles       {:1.4 {:dependencies [[org.clojure/clojure "1.4.0"]]}
                    :1.5 {:dependencies [[org.clojure/clojure "1.5.1"]]}
-                   :1.7 {:dependencies [[org.clojure/clojure "1.7.0-alpha2"]]}
+                   :1.7 {:dependencies [[org.clojure/clojure "1.7.0-alpha3"]]}
                    :master {:dependencies [[org.clojure/clojure "1.7.0-master-SNAPSHOT"]]}
                    :dev {:jvm-opts     ["-Dlog4j.configuration=log4j.properties.unit"
                                         "-Xmx2048m"


add release prep task

add release prep task

--- project.clj
+++ project.clj
@@ -37,7 +37,7 @@
               :repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}
               :figwheel {:nrepl-port 7888}}}
   :plugins [[lein-cljsbuild "1.1.0"]]
-  :prep-taks ["compile" ["lein" "cljsbuild" "once" "prod"]]
+  :prep-tasks ["compile" ["cljsbuild" "once" "release"]]
   :main bulldog.core
   :uberjar-name "bulldog-standalone.jar"
   :clean-targets ^{:protect false} ["resources/public/js"]


advanced cljs compilation for iOS

advanced cljs compilation for iOS

--- project.clj
+++ project.clj
@@ -62,7 +62,8 @@
                                                          :output-dir         "target/ios-prod"
                                                          :static-fns         true
                                                          :optimize-constants true
-                                                         :optimizations      :simple
+                                                         :optimizations      :advanced
+                                                         :externs            ["externs/externs.js"]
                                                          :closure-defines    {"goog.DEBUG" false}}}
                                          {:id           "android"
                                           :source-paths ["src" "env/prod"]


lein-release plugin: bumped version from 0.107 to 0.108-SNAPSHOT for next development cycle

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


Upgrade to 0.10.0-beta12.

Upgrade to 0.10.0-beta12.

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


Bump to 2.2.3-SNAPSHOT

Bump to 2.2.3-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject cheshire "2.2.2"
+(defproject cheshire "2.2.3-SNAPSHOT"
   :description "JSON and JSON SMILE encoding, fast."
   :url "https://github.com/dakrone/cheshire"
   :warn-on-reflection false


Updated deps.

Updated deps.

--- project.clj
+++ project.clj
@@ -5,7 +5,7 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}

   :dependencies [[org.clojure/clojure "1.9.0"]
-                 [org.clojure/clojurescript "1.10.145"]
+                 [org.clojure/clojurescript "1.10.238"]

                  ;; Tooling:

@@ -16,20 +16,20 @@
                  ;; Common:

                  [org.clojure/core.async "0.4.474"]
-                 [prismatic/schema "1.1.7"]
+                 [prismatic/schema "1.1.9"]
                  [prismatic/plumbing "0.5.5"]
                  [metosin/potpuri "0.5.1"]

                  ;; Backend:

                  [mount "0.1.12"]
-                 [metosin/schema-tools "0.10.0-20160425.120043-1"]
+                 [metosin/schema-tools "0.10.1"]
                  [metosin/lokit "0.1.0"]
-                 [clj-http "3.8.0"]
+                 [clj-http "3.9.0"]

                  ; HTTP:

-                 [http-kit "2.2.0"]
+                 [http-kit "2.3.0"]
                  [ring/ring-core "1.6.3"]
                  [ring/ring-devel "1.6.3"]
                  [ring/ring-defaults "0.3.1"]
@@ -43,22 +43,22 @@

                  ; DB:

-                 [org.clojure/java.jdbc "0.7.5"]
-                 [org.postgresql/postgresql "42.2.1"]
-                 [hikari-cp "2.2.0"]
+                 [org.clojure/java.jdbc "0.7.6"]
+                 [org.postgresql/postgresql "42.2.2"]
+                 [hikari-cp "2.4.0"]
                  [com.layerware/hugsql "0.4.8"]
                  [org.flywaydb/flyway-core "5.0.7"]
-                 [com.h2database/h2 "1.4.196" :scope "test"]
+                 [com.h2database/h2 "1.4.197" :scope "test"]

                  ;; Frontend:

-                 [reagent "0.7.0"]
-                 [cljs-http "0.1.44"]
+                 [reagent "0.8.0"]
+                 [cljs-http "0.1.45"]
                  [ring-webjars "0.2.0"]
-                 [org.webjars/bootstrap "4.0.0-2"]
-                 [org.webjars/font-awesome "5.0.6"]
+                 [org.webjars/bootstrap "4.1.0"]
+                 [org.webjars/font-awesome "5.0.10"]
                  [org.webjars/es5-shim "4.5.9"]
-                 [binaryage/devtools "0.9.9"]
+                 [binaryage/devtools "0.9.10"]
                  [metosin/reagent-dev-tools "0.2.0"]]

   :plugins [[lein-cljsbuild "1.1.5"]


Version 0.4.0

Version 0.4.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject jcf-static/lein-template "0.4.0-SNAPSHOT"
+(defproject jcf-static/lein-template "0.4.0"
   :description "A Leiningen template I use for quickly creating a static site."
   :url "https://github.com/jcf/lein-template-static"
   :license {:name "The MIT License"


Pull username from message or generate when not in contacts

Signed-off-by: Andrea Maria Piana <39e16ece3c2d27e1889178b15ddb376e524032f8@gmail.com>

--- src/status_im/chat/views/message/message.cljs
+++ src/status_im/chat/views/message/message.cljs
@@ -257,12 +257,14 @@
   (letsubs [{:keys [photo-path]} [:get-current-account]]
     (photo from photo-path)))

-(defview message-author-name [from]
+(defview message-author-name [from message-username]
   (letsubs [username    [:contact-name-by-identity from]]
-    [react/text {:style style/message-author-name} username]))
+    [react/text {:style style/message-author-name} (or username
+                                                       message-username
+                                                       (gfycat/generate-gfy from))])) ; TODO: We defensively generate the name for now, to be revisited when new protocol is defined

 (defn message-body
-  [{:keys [last-outgoing? last-by-same-author? message-type same-author? from outgoing group-chat] :as message} content]
+  [{:keys [last-outgoing? last-by-same-author? message-type same-author? from outgoing group-chat username] :as message} content]
   [react/view (style/group-message-wrapper message)
    [react/view (style/message-body message)
     [react/view style/message-author
@@ -274,7 +276,7 @@
            [member-photo from]]]))]
     [react/view (style/group-message-view outgoing)
      (when-not same-author?
-       [message-author-name from])
+       [message-author-name from username])
      content]]
    (when last-outgoing?
      [react/view style/delivery-status


Fix :show-desktop-tab usage

Fix :show-desktop-tab usage

--- src/status_im/ui/components/desktop/tabs.cljs
+++ src/status_im/ui/components/desktop/tabs.cljs
@@ -51,9 +51,7 @@
   (views/letsubs [cnt [count-subscription]]
     [react/touchable-highlight {:style    (merge tabs.styles/tab-container {:flex 1})
                                 :disabled active?
-                                :on-press #(do
-                                             (re-frame/dispatch [:navigate-to :home])
-                                             (re-frame/dispatch [:show-desktop-tab view-id]))}
+                                :on-press #(re-frame/dispatch [:show-desktop-tab view-id])}
      [react/view
       [content active? (if (= view-id :home) cnt nil)]]]))


added missing class to conference title to make tiles the same size

--- src/cljs/conference_rating/conference_list_page/conference_list_entry.cljs
+++ src/cljs/conference_rating/conference_list_page/conference_list_entry.cljs
@@ -9,9 +9,7 @@
       [:div {:class "series-tag-container"}[:span {:class "series-tag series-tag-hidden"} ""]]))

 (defn title [name]
-  (if (not (nil? name))
-    [:h4 {:class "conference-title"} name]
-    [:h4 "untitled conference"]))
+  [:h4 {:class "conference-title"} (or name "untitled conference")])

 (defn description [description]
   [:div {:class "text-muted conference-description"} description])


Correct a typo

Correct a typo

--- src/main/clojure/cascade/dispatcher.clj
+++ src/main/clojure/cascade/dispatcher.clj
@@ -122,7 +122,7 @@
   (render-view env view-fn))

 (defn verify-is-view-fn
-  "A filter that verifies tha the provided function is in fact a view function (by checking
+  "A filter that verifies that the provided function is in fact a view function (by checking
    its meta-data)."
   [delegate env view-fn]
   (if (and view-fn (= (^view-fn :cascade-type) :view))


Added test for science-keywords case sensitive parameter search.

--- test/cmr/system_int_test/search/collection_science_keyword_search_test.clj
+++ test/cmr/system_int_test/search/collection_science_keyword_search_test.clj
@@ -87,19 +87,17 @@
                                                     :topic "Popular"}
                                                 :1 {:term "Extreme"}}}))))

-    (testing "search by science keywords, ignore case false"
-      (is (d/refs-match? []
-                         (search/find-refs
-                           :collection
-                           {"science-keywords" {:0 {:category "cat1"}}
-                            "options[science-keywords][ignore-case]" "false"}))))
+    (testing "search by science keywords, ignore case"
+      (are [items science-keyword value ignore-case]
+           (d/refs-match? items
+                          (search/find-refs
+                            :collection
+                            {"science-keywords" {:0 {science-keyword value}}
+                             "options[science-keywords][ignore-case]" ignore-case}))

-    (testing "search by science keywords, ignore case true"
-      (is (d/refs-match? [coll1]
-                         (search/find-refs
-                           :collection
-                           {"science-keywords" {:0 {:category "cat1"}}
-                            "options[science-keywords][ignore-case]" "true"}))))
+           [coll1] :category "Cat1" false
+           [] :category "cat1" false
+           [coll1] :category "cat1" true))

     (testing "search by science keywords, multiple. options :or false"
       (is (d/refs-match? [coll2 coll6]


URL-decode special chars in topo ids

URL-decode special chars in topo ids

--- storm-core/src/clj/backtype/storm/ui/core.clj
+++ storm-core/src/clj/backtype/storm/ui/core.clj
@@ -29,6 +29,7 @@
             Nimbus$Client StormTopology GlobalStreamId RebalanceOptions
             KillOptions])
   (:import [java.io File])
+  (:import [java.net URLDecoder])
   (:require [compojure.route :as route]
             [compojure.handler :as handler]
             [ring.util.response :as resp]
@@ -1018,32 +1019,33 @@
   (GET "/topology/:id" [:as {cookies :cookies} id & m]
        (let [include-sys? (get-include-sys? cookies)]
          (try
-           (-> (topology-page id (:window m) include-sys?)
+           (-> (topology-page (URLDecoder/decode id) (:window m) include-sys?)
              (concat [(mk-system-toggle-button include-sys?)])
              ui-template)
            (catch Exception e (resp/redirect "/")))))
   (GET "/topology/:id/component/:component" [:as {cookies :cookies} id component & m]
        (let [include-sys? (get-include-sys? cookies)]
-         (-> (component-page id component (:window m) include-sys?)
+         (-> (component-page (URLDecoder/decode id)
+                             component (:window m) include-sys?)
              (concat [(mk-system-toggle-button include-sys?)])
              ui-template)))
   (POST "/topology/:id/activate" [id]
     (with-nimbus nimbus
-      (let [tplg (.getTopologyInfo ^Nimbus$Client nimbus id)
+      (let [tplg (.getTopologyInfo ^Nimbus$Client nimbus (URLDecoder/decode id))
             name (.get_name tplg)]
         (.activate nimbus name)
         (log-message "Activating topology '" name "'")))
     (resp/redirect (str "/topology/" id)))
   (POST "/topology/:id/deactivate" [id]
     (with-nimbus nimbus
-      (let [tplg (.getTopologyInfo ^Nimbus$Client nimbus id)
+      (let [tplg (.getTopologyInfo ^Nimbus$Client nimbus (URLDecoder/decode id))
             name (.get_name tplg)]
         (.deactivate nimbus name)
         (log-message "Deactivating topology '" name "'")))
     (resp/redirect (str "/topology/" id)))
   (POST "/topology/:id/rebalance/:wait-time" [id wait-time]
     (with-nimbus nimbus
-      (let [tplg (.getTopologyInfo ^Nimbus$Client nimbus id)
+      (let [tplg (.getTopologyInfo ^Nimbus$Client nimbus (URLDecoder/decode id))
             name (.get_name tplg)
             options (RebalanceOptions.)]
         (.set_wait_secs options (Integer/parseInt wait-time))
@@ -1052,7 +1054,7 @@
     (resp/redirect (str "/topology/" id)))
   (POST "/topology/:id/kill/:wait-time" [id wait-time]
     (with-nimbus nimbus
-      (let [tplg (.getTopologyInfo ^Nimbus$Client nimbus id)
+      (let [tplg (.getTopologyInfo ^Nimbus$Client nimbus (URLDecoder/decode id))
             name (.get_name tplg)
             options (KillOptions.)]
         (.set_wait_secs options (Integer/parseInt wait-time))


Update util.clj

Update util.clj

--- src/selmer/util.clj
+++ src/selmer/util.clj
@@ -129,7 +129,7 @@
 (def in-jar?
   (memoize
     (fn [^String file-path]
-      (.contains file-path "jar!/"))))
+      (.contains file-path "!/"))))

 (def decode-path
   (memoize


Add end of game components

Add end of game components

--- src/robinson/ui/components/robinson.clj
+++ src/robinson/ui/components/robinson.clj
@@ -1476,9 +1476,312 @@
                            ; Always render player
                            [(zc/csx [:text {:style {:position :fixed
                                                     :top (- (get player-pos :y) vy)
-                                                    :left (- (get player-pos :x) vx)}}
+                                                    :left (- (get player-pos :x) vx)
+                                                    :color (rcolor/color->rgb :white)
+                                                    :background-color (rcolor/color->rgb :black)}}
                                            ["@"]])]
                            npcs)])))
+
+(zc/def-component PickupSelection
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+
+(zc/def-component MultiSelect
+  [this]
+  (let [default-props {:selected-hotkeys []
+                       :items []
+                       :disable? (fn [_] false)}
+        {:keys [title selected-hotkeys items disable?]} (merge default-props (zc/props this))
+        children (map (fn [item]
+                        (zc/csx [:text {:style {:color (rcolor/color->rgb (if (or (not (disable? item))
+                                                                                (get item :applicable))
+                                                                            :black
+                                                                            :gray))
+                                                :background-color (rcolor/color->rgb :white)}} [
+                                  [Highlight {} [(str (or (item :hotkey)
+                                                          \space))]]
+                                  [:text {} [(format "%c%s%s %s %s"
+                                               (if (contains? selected-hotkeys (item :hotkey))
+                                                 \+
+                                                 \-)
+                                               (if (contains? item :count)
+                                                 (format "%dx " (int (get item :count)))
+                                                 "")
+                                               (get item :name)
+                                               (if (contains? item :utility)
+                                                 (format "(%d%%)" (int (get item :utility)))
+                                                 "")
+                                               (cond
+                                                 (contains? item :wielded)
+                                                   "(wielded)"
+                                                 (contains? item :wielded-ranged)
+                                                   "(wielded ranged)"
+                                                 (contains? item :worn)
+                                                   "(worn)"
+                                                 :else
+                                                   ""))]]]]))
+                      items)]
+    (zc/csx [:view {} (concat [(zc/csx [:text {:style {:color (rcolor/color->rgb :black)}} [title]])
+                               (zc/csx [:text {} [""]])]
+                              children)])))
+
+(zc/def-component Inventory
+  [this]
+  (let [{:keys [game-state]} (zc/props this)
+        player-items (-> game-state :world :player :inventory)]
+   (zc/csx [:view {:style {:width 40
+                           :height 20
+                           :position :fixed
+                           :left 40
+                           :top 1
+                           :padding 1
+                           :background-color (rcolor/color->rgb :white)}} [
+            [MultiSelect {:title "Inventory"
+                          :items (translate-identified-items game-state player-items)}]]])))
+
+(zc/def-component Abilities
+  [this]
+  (let [{:keys [game-state]} (zc/props this)
+        abilities (rp/player-abilities game-state)
+        height (if (seq abilities)
+                 (+ 3 (* 3 (count abilities)))
+                 4)]
+    (zc/csx [:view {:style {:width 43
+                            :height height
+                            :position :fixed
+                            :left 0
+                            :top 0
+                            :background-color (rcolor/color->rgb :white)}} [
+            (if (seq abilities)
+              (zc/csx [zcui/Popup {} [
+                        [:view {:style {:border 2}} [
+                          [MultiSelect {:title "Abilities"
+                                        :items abilities}]]]]])
+               #_{:s (format "    %s" (get ability :description)) :fg :black :bg :white :style #{}}
+               #_[{:s "" :fg :black :bg :white :style #{}}
+                  {:s "Select hotkey or press <color fg=\"highlight\">Esc</color> to exit." :fg :black :bg :white :style #{}}]
+              (zc/csx [zcui/Popup {} [
+                [:view {} [
+                  [:text {} ["No abilities."]]
+                  [:text {} [""]]
+                  [:text {} [
+                    [:text {} ["Press "]]
+                    [Highlight {} ["Esc "]]
+                    [:text {} ["to exit."]]]]]]]]))]])))
+
+(zc/def-component PlayerStats
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component AbilityChoices
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component ActionChoices
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component Describe
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component Apply
+  [this]
+  (let [{:keys [game-state]} (zc/props this)
+        player-items (-> game-state :world :player :inventory)]
+    (zc/csx [:view {:style {:width 40
+                            :height 20
+                            :position :fixed
+                            :left 40
+                            :top 1
+                            :padding 1
+                            :background-color (rcolor/color->rgb :white)}} [
+             [MultiSelect {:title "Apply Inventory"
+                           :items (translate-identified-items game-state player-items)}]]])))
+
+(zc/def-component ApplyTo
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component QuaffInventory
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component Drop
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component DescribeInventory
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component ThrowInventory
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component Eat
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component Quests
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component Craft
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component CraftWeapon
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component CraftSurvival
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component CraftShelter
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component CraftTransportation
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component Wield
+  [this]
+  (let [{:keys [game-state]} (zc/props this)
+        player-items (filter can-be-wielded? (-> game-state :world :player :inventory))]
+   (zc/csx [:view {:style {:width 40
+                           :height 20
+                           :position :fixed
+                           :left 40
+                           :top 1
+                           :padding 1
+                           :background-color (rcolor/color->rgb :white)}} [
+            [MultiSelect {:title "Wield"
+                          :items (translate-identified-items game-state player-items)}]]])))
+
+(zc/def-component WieldRanged
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component StartText
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component Popover
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component RawPopover
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component DeadText
+  [this]
+  (let [{:keys [game-state]} (zc/props this)
+        hp             (get-in game-state [:world :player :hp])
+        hunger         (get-in game-state [:world :player :hunger])
+        max-hunger     (get-in game-state [:world :player :max-hunger])
+        thirst         (get-in game-state [:world :player :thirst])
+        max-thirst     (get-in game-state [:world :player :max-thirst])
+        will-to-live   (get-in game-state [:world :player :will-to-live])
+        cause-of-death (or
+                         (get-in game-state [:world :cause-of-death])
+                         (format "%s"
+                           (cond
+                             (<= hp 0)             "massive injuries"
+                             (> hunger max-hunger) "literally starving to death"
+                             (> thirst max-thirst) "not drinking enough water"
+                             (<= will-to-live 0)   "just giving up on life"
+                             :else                 "mysterious causes")))]
+      (zc/csx [zcui/Popup {:style {:position :fixed :top 10}} [
+                [:view {:style {:border 2}} [
+                  [:text {} ["You died."]]
+                  [:text {} [(format "From %s" cause-of-death)]]
+                  [:text {} [""]]
+                  [:text {} [
+                    [:text {} ["Press "]]
+                    [Highlight {} ["space "]]
+                    [:text {} ["to continue."]]]]]]]])))
+
+(zc/def-component RescuedText
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component QuitPrompt
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component Harvest
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    nil))
+
+(zc/def-component MapUI
+  [this]
+  (let [{:keys [game-state]} (zc/props this)]
+    (case (current-state game-state)
+      :pickup-selection     (zc/csx [PickupSelection {:game-state game-state}])
+      :inventory            (zc/csx [Inventory {:game-state game-state}])
+      :abilities            (zc/csx [Abilities {:game-state game-state}])
+      :player-stats         (zc/csx [PlayerStats {:game-state game-state}])
+      :gain-level           (zc/csx [AbilityChoices {:game-state game-state}])
+      :action-select        (zc/csx [ActionChoices {:game-state game-state}])
+      :describe             (zc/csx [Describe {:game-state game-state}])
+      :apply                (zc/csx [Apply {:game-state game-state}])
+      :apply-item-inventory
+                            (zc/csx [ApplyTo {:game-state game-state}])
+      :quaff-inventory
+                            (zc/csx [QuaffInventory {:game-state game-state}])
+      :drop                 (zc/csx [Drop {:game-state game-state}])
+      :describe-inventory   (zc/csx [DescribeInventory {:game-state game-state}])
+      :throw-inventory      (zc/csx [ThrowInventory {:game-state game-state}])
+      :eat                  (zc/csx [Eat {:game-state game-state}])
+      :quests               (zc/csx [Quests {:game-state game-state}])
+      :craft                (zc/csx [Craft {:game-state game-state}])
+      :craft-weapon         (zc/csx [CraftWeapon {:game-state game-state}])
+      :craft-survival       (zc/csx [CraftSurvival {:game-state game-state}])
+      :craft-shelter        (zc/csx [CraftShelter {:game-state game-state}])
+      :craft-transportation (zc/csx [CraftTransportation {:game-state game-state}])
+      :wield                (zc/csx [Wield {:game-state game-state}])
+      :wield-ranged         (zc/csx [WieldRanged {:game-state game-state}])
+      :start-text           (zc/csx [StartText {:game-state game-state}])
+      :popover              (zc/csx [Popover {:game-state game-state}])
+      :quaff-popover        (zc/csx [RawPopover {:game-state game-state}])
+      :dead                 (zc/csx [DeadText {:game-state game-state}])
+      :rescued              (zc/csx [RescuedText {:game-state game-state}])
+      :quit                 (zc/csx [QuitPrompt {:game-state game-state}])
+      :harvest              (zc/csx [Harvest {:game-state game-state}])
+      (zc/csx [:view {} []]))
+    ;; draw cursor
+    #_(if-let [cursor-pos (-> state :world :cursor)]
+      (move-cursor screen (cursor-pos :x) (cursor-pos :y))
+      (move-cursor screen -1 -1))))

 (zc/def-component Map
   [this]
@@ -1508,7 +1811,8 @@
                                      :vy vy
                                      :current-time current-time}]]]]]
           [:layer {:id :ui} [
-            [Hud {:game-state game-state}]]]]]]])))
+            [Hud {:game-state game-state}]
+            [MapUI {:game-state game-state}]]]]]]])))

 #_(defn render-enter-name [state]
   (let [screen (state :screen)
@@ -1862,11 +2166,93 @@
                             :left 30}} [
               [:text {} ["Start Text"]]]]]]]]]])))

+(zc/def-component GameOverDead
+  [this]
+  (let [{:keys [player cause-of-death madlib days-survived turns-survived points]} (zc/props this)
+        player-name    (get player :name)
+        hp             (get player :hp)
+        hunger         (get player :hunger)
+        max-hunger     (get player :max-hunger)
+        thirst         (get player :thirst)
+        max-thirst     (get player :max-thirst)
+        will-to-live   (get player :will-to-live)
+        cause-of-death (or
+                         cause-of-death
+                         (cond
+                           (<= hp 0)             "massive injuries"
+                           (> hunger max-hunger) "literall starving to death"
+                           (> thirst max-thirst) "not drinking enough water"
+                           (<= will-to-live 0)   "just giving up on life"
+                           :else                 "mysterious causes"))]
+    (zc/csx
+	  [:terminal {} [
+		[:group {:id :app} [
+		  [:layer {:id :ui} [
+            [:view {:style {:left 10}} [
+              [:text {} [(format "%s: %s" player-name madlib)]]
+              [:text {} [(format "%s: %s" player-name madlib)]]
+              [:text {} [""]]
+              [:text {} [(format "Points: %s." points)]]
+              [:text {} [(format "Survived for %d %s. (%d turns)"
+                                   days-survived
+                                   (if (> 1 days-survived) "days" "day")
+                                   turns-survived)]]
+              [:text {} [(format "Died from %s" cause-of-death)]]
+              [:text {} [""]]
+              [:text {} ["Inventory:"]]
+              [:view {}
+                (map-indexed
+                  (fn [idx item]
+                    (zc/csx [:text {} [(format "%s%s" (if (pos? (get item :count 0))
+                                                        (format "%dx " (get item :count))
+                                                        "")
+                                                      (item :name))]]))
+                  (get player :inventory))]]]
+              [:text {} [""]]
+              [:view {:style {:left 10}} [
+                [:text {} [[:text {} ["Play again? ["]]
+                           [Highlight {} ["y"]]
+                           [:text {} ["/"]]
+                           [Highlight {} ["n"]]
+                           [:text {} ["] "]]
+                           [Highlight {} ["space "]]
+                           [:text {} ["- share and compare with other players"]]]]]]]]]]]])))
+
+(zc/def-component GameOverRescued
+  [this]
+  (let [{:keys [game-state]} (zc/props this)
+        rescue-mode (rendgame/rescue-mode game-state)]
+    ;; Title
+    ;(put-string (game-state :screen) :ui 10 1 (format "%s: %s." player-name madlib))
+    ;(put-string (game-state :screen) :ui 18 2 (format "Rescued by %s after surviving for %d days." rescue-mode days-survived))
+    ;(put-string (game-state :screen) :ui 10 3 (format "Points: %s." points))
+    ;(put-string (game-state :screen) :ui 10 4 "Inventory:")
+    ;(doall (map-indexed
+    ;  (fn [idx item] (put-string (game-state :screen) :ui 18 (+ idx 5) (item :name)))
+    ;  (-> game-state :world :player :inventory)))
+    ;(put-string (game-state :screen) :ui 10 22 "Play again? [yn]")))
+))
+
 (zc/def-component GameOver
   [this]
-  (let [{:keys [game-state]} (zc/props this)]
-    nil
-))
+  (let [{:keys [game-state]} (zc/props this)
+        cur-state      (current-state game-state)
+        points         (rs/state->points game-state)
+        turns-survived  (get-time game-state)
+        turns-per-day   (count (get-in game-state [:data :atmo]))
+        days-survived   (int (/ turns-survived turns-per-day))
+        player-name     (get-in game-state [:world :player :name])
+        madlib          (gen-end-madlib game-state)]
+    (case cur-state
+      :game-over-dead
+        (zc/csx [GameOverDead {:player (get-in game-state [:world :player])
+                               :days-survived days-survived
+                               :turns-survived turns-survived
+                               :points points
+                               :cause-of-death (get-in game-state [:world :cause-of-death])
+                               :madlib madlib}])
+      :game-over-rescued
+        (zc/csx [GameOverRescued {:game-state game-state}]))))

 (zc/def-component ShareScore
   [this]
@@ -1889,14 +2275,14 @@
   [this]
   (let [{:keys [game-state]} (zc/props this)]
     (zc/csx
-	  [RexPaintFromData {:state game-state :data-key :keyboard-controls}])))
+	  [RexPaintFromData {:game-state game-state :data-key :keyboard-controls}])))

 (zc/def-component UIHelp
   [this]
   (let [{:keys [game-state]} (zc/props this)]
     (zc/csx
-	  [RexPaintFromData {:state game-state :data-key :ui}])))
+	  [RexPaintFromData {:game-state game-state :data-key :ui}])))

 (zc/def-component GameplayHelp
   [this]


Improve tailing

Improve tailing

--- test/com/nomistech/clojure_the_language/c_920_io/tailing.clj
+++ test/com/nomistech/clojure_the_language/c_920_io/tailing.clj
@@ -32,7 +32,7 @@
      (println (str "exception: " i)))))

 (defn tailer-and-channel [file delay-ms]
-  (let [c (a/chan)
+  (let [c      (a/chan)
         tailer (Tailer/create file
                               (tailer-listener c)
                               delay-ms
@@ -44,32 +44,33 @@
   (.stop tailer)
   (a/close! channel))

-(defn delete-and-spit-with-waits [f content sleep-ms]
-  (io/delete-file f)
+(defn spit-lines-s [f lines-s sleep-ms]
   (Thread/sleep sleep-ms)
-  (spit f content)
-  (Thread/sleep sleep-ms))
+  (doseq [lines lines-s]
+    (spit f "")
+    (doseq [line lines]
+      (spit f
+            (str line "\n")
+            :append true)
+      (Thread/sleep sleep-ms))))

 (fact (let [delay-ms        100
-            sleep-ms        500 ; (+ delay-ms 100)
-            lines           ["a" "b" "c" "d" "e"]
-            file-content    (str (str/join "\n" lines)
-                                 "\n")
-            file            (File. "test/_work-dir/plop.log")
-            t-and-c         (tailer-and-channel file delay-ms)
+            sleep-ms        (+ delay-ms 10)
+            lines-s         [["a-1" "b-1" "c-1" "d-1" "e-1"]
+                             ["a-2" "b-2" "c-2" "d-2" "e-2"]
+                             ["a-3" "b-3" "c-3" "d-3" "e-3"]]
+            f               (let [f (File. "test/_work-dir/plop.log")]
+                              ;; Setting up some initial content makes things
+                              ;; work as I expect; not sure why this is needed.
+                              ;; jsk-2016-10-29
+                              (spit f "this will be ignored\n")
+                              f)
+            t-and-c         (tailer-and-channel f delay-ms)
             result-ch       (a/thread (doall (tailer-and-channel->seq t-and-c)))
-            n-rotations     3
-            expected-result (apply concat (repeat n-rotations lines))]
-        (Thread/sleep sleep-ms)
-        (dotimes [_ n-rotations]
-          (delete-and-spit-with-waits file file-content sleep-ms))
+            expected-result (apply concat lines-s)]
+        (spit-lines-s f lines-s sleep-ms)
         (stop-tailer-and-channel t-and-c)
         (a/<!! result-ch)
         => expected-result))

-;; TODO
-;; Check that bug.
-;;
-;; Called if a file rotation is detected.
-;; This method is called before the file is reopened, and fileNotFound may be
-;; called if the new file has not yet been created.
+;; TODO Check that bug: https://issues.apache.org/jira/browse/IO-399


Add the ability to specify the buffer size on `uncompress` function.

--- src/buddy/util/deflate.clj
+++ src/buddy/util/deflate.clj
@@ -27,23 +27,27 @@
 (defn compress
   "Given a plain byte array, compress it and
   return an other byte array."
-  [^bytes input]
-  (let [os (ByteArrayOutputStream.)
-        opts (Deflater. Deflater/DEFLATED true)]
-    (with-open [dos (DeflaterOutputStream. os opts)]
-      (.write dos input))
-    (.toByteArray os)))
+  ([^bytes input]
+   (compress input nil))
+  ([^bytes input {:keys [nowrap] :or {nowrap true}}]
+   (let [os (ByteArrayOutputStream.)
+         opts (Deflater. Deflater/DEFLATED nowrap)]
+     (with-open [dos (DeflaterOutputStream. os opts)]
+       (.write dos input))
+     (.toByteArray os))))

 (defn uncompress
   "Given a compressed data as byte-array,
   uncompress it and return as an other
   byte array."
   ([^bytes input]
-    (uncompress input true))
-  ([^bytes input ^Boolean nowrap]
-   (let [buf  (byte-array 1024)
+    (uncompress input nil))
+  ([^bytes input {:keys [nowrap buffer-size]
+                  :or {nowrap true buffer-size 2048}
+                  :as opts}]
+   (let [buf  (byte-array (int buffer-size))
          os   (ByteArrayOutputStream.)
-         opts (Inflater. nowrap)]
+         opts (Inflater. ^Boolean nowrap)]
      (try
        (with-open [is  (ByteArrayInputStream. input)
                    iis (InflaterInputStream. is opts)]
@@ -55,5 +59,5 @@
        (.toByteArray os)
        (catch java.util.zip.ZipException e
          (if nowrap
-           (uncompress input false)
+           (uncompress input (assoc opts :nowrap false))
            (throw e)))))))


be able to turn <p> back into normal markdown paragraphs

--- src/watney/core.clj
+++ src/watney/core.clj
@@ -32,6 +32,7 @@
                      :h2 (str "## " (first (:content node)))
                      :h3 (str "### " (first (:content node)))
                      :h4 (str "#### " (first (:content node)))
+                     :p  (str "\n" (first (:content node)))

                      ;; if any of the children of this :li is a :ul, then return 2 spaces here
                      :li (if (contains-node? (:content node) :ul)


made default route call list handler

made default route call list handler

--- src/webdev/core.clj
+++ src/webdev/core.clj
@@ -57,7 +57,7 @@
        :headers {}})))

 (defroutes routes
-  (GET "/" [] home-handler)
+  (GET "/" [] handle-index-items)
   (GET "/goodbye" [] goodbye-handler)
   (GET "/about" [] about-handler)
   (ANY "/request" [] handle-dump)


add my-juxt

add my-juxt

--- src/weekly/core.clj
+++ src/weekly/core.clj
@@ -30,6 +30,11 @@
                            (zero? (rem x 5)))]
              x)))

+(defn my-juxt
+  [& func-list]
+  (fn [& arg-list]
+    (map #(apply % arg-list) func-list)))
+
 (defn -main
   "I don't do a whole lot ... yet."
   [& args]


Have the Hello round-trip test do stuff

Have the Hello round-trip test do stuff

I left off the call to check the actual serialization round-trip
functionality.

--- test/frereth_cp/shared/serialization_test.clj
+++ test/frereth_cp/shared/serialization_test.clj
@@ -154,7 +154,8 @@
                 ::K/zeros zeros
                 ::K/client-nonce-suffix client-nonce-suffix
                 ::K/crypto-box crypto-box}]
-     (validate-keys hello))))
+     (validate-keys hello)
+     (check-round-trip ::K/hello-spec K/hello-packet-dscr hello))))

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;; Tests


Add support for more markdown

Add support for more markdown

- ul and li
- em
- strong
- br

--- src/catalog/layout/fop.clj
+++ src/catalog/layout/fop.clj
@@ -365,16 +365,33 @@
        ;; XMP properties
        [:xmp:CreatorTool "Apache FOP"]]]]])

+(defn- bullet-list [& body]
+  [:fo:list-item
+   [:fo:list-item-label
+    {:end-indent "label-end()"}
+    [:fo:block (inline {:font-family "Symbol"} "•")]]
+   [:fo:list-item-body
+    {:start-indent "body-start()"}
+    (block body)]])
+
 (defmulti to-fop (fn [{:keys [tag attrs content]}] tag))
 (defmethod to-fop :p [{content :content}] (block {:space-before "17pt"} content))
 (defmethod to-fop :a [{content :content {href :href} :attrs}] (apply #(external-link href %) content))
-;; map markdown headings to lower headings
-(defmethod to-fop :h1 [{content :content}] [:fo:block (style :h3) content])
-(defmethod to-fop :h2 [{content :content}] [:fo:block (style :h3) content])
+(defmethod to-fop :h1 [{content :content}] [:fo:block (style :h1) content])
+(defmethod to-fop :h2 [{content :content}] [:fo:block (style :h2) content])
+(defmethod to-fop :h3 [{content :content}] [:fo:block (style :h3) content])
+(defmethod to-fop :ul [{content :content}] [:fo:list-block content])
+(defmethod to-fop :li [{content :content}] (bullet-list content))
+(defmethod to-fop :em [{content :content}] (inline {:font-style "italic"} content))
+(defmethod to-fop :strong [{content :content}] (inline {:font-weight "bold"} content))
+(defmethod to-fop :br [_] [:fo:block ])
 (defmethod to-fop :default [{content :content}] (apply block content)) ; just assume :p

+(defn- node? [node]
+  (and (map? node) (or (set/subset? #{:tag :content} (set (keys node))) (= (:tag node) :br))))
+
 (defn- visitor [node]
-  (if (and (map? node) (:tag node))
+  (if (node? node)
     (to-fop node)
     node))


Fix copyright notice on channel namespace.

--- src/cats/labs/channel.cljc
+++ src/cats/labs/channel.cljc
@@ -1,5 +1,5 @@
-;; Copyright (c) 2014-2015, Andrey Antukh
-;; Copyright (c) 2014-2015, Alejandro Gómez
+;; Copyright (c) 2014-2015 Andrey Antukh <niwi@niwi.nz>
+;; Copyright (c) 2014-2015 Alejandro Gómez <alejandro@dialelo.com>
 ;; All rights reserved.
 ;;
 ;; Redistribution and use in source and binary forms, with or without


Allow setting the :state field

Allow setting the :state field

--- common/src/play_clj/core.clj
+++ common/src/play_clj/core.clj
@@ -26,7 +26,7 @@

 (defn defscreen*
   [{:keys [on-show on-render on-dispose on-hide on-pause on-resize on-resume
-           renderer camera]
+           state renderer camera]
     :as options}]
   (let [screen (atom {})
         on-show (or on-show (fn [s]))
@@ -60,6 +60,7 @@
                :add-entity add-entity
                :rem-entity rem-entity
                :upd-entity upd-entity)
+        (when state (swap! screen assoc :state state))
         (on-show @screen))
       (render [delta-time]
         (swap! screen assoc :total-time (+ (:total-time @screen) delta-time))


Draw named location, and on update

Draw named location, and on update

--- app/pyrexia/src/pyrexia/core.cljs
+++ app/pyrexia/src/pyrexia/core.cljs
@@ -21,7 +21,10 @@
     :nodes []
     :timer nil
 	:map (js/Image.)
-	:locations {"temp-1a:fe:34:fa:b2:bf" [100 100]}
+	:locations {
+        "temp-1a:fe:34:fa:b2:af" [50 50]
+        "temp-1a:fe:34:fa:b2:bf" [100 100]
+    }
 }))

 (def r (t/reader :json))


Complete recursion koans test

Complete recursion koans test

--- clojure/koans/src/koans/13_recursion.clj
+++ clojure/koans/src/koans/13_recursion.clj
@@ -1,20 +1,32 @@
 (defn is-even? [n]
   (if (= n 0)
-    __
-    (___ (is-even? (dec n)))))
+    true
+    (not (is-even? (dec n)))))

 (defn is-even-bigint? [n]
   (loop [n   n
          acc true]
     (if (= n 0)
-      __
+      acc
       (recur (dec n) (not acc)))))

 (defn recursive-reverse [coll]
-  __)
+  (loop [cnt coll acc `()]
+    (if (> (count cnt) 0)
+      (recur (rest cnt) (cons (first cnt) acc))
+      acc
+    )
+  )
+)

 (defn factorial [n]
-  __)
+  (loop [cnt n acc 1]
+    (if (> cnt 1)
+      (recur (- cnt 1) (* cnt acc) )
+      acc
+    )
+  )
+)

 (meditations
   "Recursion ends with a base case"


4 hr cache

4 hr cache

--- src/dashtrump/core.clj
+++ src/dashtrump/core.clj
@@ -3,11 +3,10 @@
             [net.cgrand.enlive-html :as html]
             [ring.adapter.jetty :as jetty]
             [clojure.core.cache :as cache]
-            [environ.core :refer [env]]
-            ))
+            [environ.core :refer [env]]))

 (def appr-url "http://www.gallup.com/poll/201617/gallup-daily-trump-job-approval.aspx")
-(def cache-timeout-ms (* 1000 60 60)) ;1 hr
+(def cache-timeout-ms (* 1000 60 60 4)); 4 hr

 ; TODO alternate location to check
 ; TODO backup value if nothing is found


Orriaren araberako desplazamendua aplikatu


desktop: Create events for new entities creation

--- apps/desktop/src_front/souptitle_desktop/events.cljs
+++ apps/desktop/src_front/souptitle_desktop/events.cljs
@@ -57,6 +57,44 @@
  :update-chapter-raw-srt
  (update-chapter-meta :src))

+;; TODO: make new entity active
+
+(reg-event-db
+ :add-new-serial
+ (fn [{:keys [content active-content] :as db} [_ val]]
+   (-> db
+       (update
+        :content
+        (fn [content]
+          (-> content
+              (conj (sm/create-node {:title "New serial"}))))))))
+
+(reg-event-db
+ :add-new-season
+ (fn [{:keys [content active-content] :as db} [_ val]]
+   (-> db
+       (update
+        :content
+        (sm/update-seasons
+         content
+         active-content
+         (fn [seasons]
+           (-> seasons
+               (conj (sm/create-node {:title "New season"})))))))))
+
+(reg-event-db
+ :add-new-chapter
+ (fn [{:keys [content active-content] :as db} [_ val]]
+   (-> db
+       (update
+        :content
+        (sm/update-chapters
+         content
+         active-content
+         (fn [chapters]
+           (-> chapters
+               (conj (sm/create-leaf {:title "New season"})))))))))
+
 (reg-event-fx
  :load-link-with-srt
  (fn [_ [_ url]]


Updated docstring

Updated docstring

--- src/cia/schemas/common.clj
+++ src/cia/schemas/common.clj
@@ -158,8 +158,8 @@
 (defn determine-disposition-id
   "Takes a judgement and determines the disposition.
    Defaults to 'Unknown' disposition (in case none is provided).
-   Throws an exception if the provided disposition and disposition_name
-   do not match."
+   Throws an bad-request! if the provided disposition and
+   disposition_name do not match."
   [{:keys [disposition disposition_name] :as judgement}]
   (cond
     (every? nil? [disposition disposition_name]) (get disposition-map-inverted "Unknown")


Revert the fetch/pull changes.

Revert the fetch/pull changes.

--- src/circle/backend/git.clj
+++ src/circle/backend/git.clj
@@ -99,12 +99,12 @@
             (git checkout ~revision))
            :repo repo))

-(defn fetch
+(defn pull
   "Git pull an existing repo"
   [repo & {:keys [ssh-key]}]
   (infof "git fetch %s" repo)
   (git-fn* (sh/q
-            (git fetch))
+            (git pull))
            :ssh-key ssh-key
            :repo repo))

@@ -116,7 +116,8 @@
   (let [path (or path (default-repo-path url))]
     (if (repo-exists? path)
       (when update
-        (fetch path :ssh-key ssh-key))
+        (checkout "master") ;; have to be on a branch to pull
+        (pull path :ssh-key ssh-key))
       (clone url :path path :ssh-key ssh-key))))

 (defn format-log


implement News Hound

implement News Hound

--- src/clj/game/cards-ice.clj
+++ src/clj/game/cards-ice.clj
@@ -451,6 +451,14 @@
    "Neural Katana"
    {:abilities [{:msg "do 3 net damage" :effect (effect (damage :net 3 {:card card}))}]}

+   "News Hound"
+   {:abilities [{:label "Trace 3 - Give the Runner 1 tag"
+                 :trace {:base 3 :msg "give the Runner 1 tag" :effect (effect (gain :runner :tag 1))}}
+                {:label "End the run if a Current is active"
+                 :req (req (or (not (empty? (runner :current)))
+                               (not (empty? (corp :current)))))
+                 :effect (effect (end-run)) :msg "end the run"}]}
+
    "NEXT Bronze"
    {:abilities [end-the-run]
     :strength-bonus (req (reduce (fn [c server]


Welcome html

Welcome html

--- src/cljs/fuzz/welcome.cljs
+++ src/cljs/fuzz/welcome.cljs
@@ -1,6 +1,7 @@
 (ns fuzz.welcome)

 (defn handler [target params]
+  (set! (.-innerHTML target) "

Hello, let's get rocking

")

   ;; I don't do anything useful :-)
   (println "welcome"))


WM: Remove undeline from language selector; closes #12

--- src/cljs/hatti/shared.cljs
+++ src/cljs/hatti/shared.cljs
@@ -93,7 +93,7 @@
         [:div {:class "language-selector-inner"}
          [:span {:class "dropdown drop-hover"}
           [:i {:class "fa fa-globe" :style {:margin-right ".2em"}}]
-          [:span {:class "t-underline"}
+          [:span
            (if (f/english? current) "EN" (stringify current))]
           [:i {:class "fa fa-angle-down" :style {:margin-left ".5em"}}]
           [:ul {:class "submenu"}


Add rudimentary color control

Add rudimentary color control

--- src/cljs/pizarra/core.cljs
+++ src/cljs/pizarra/core.cljs
@@ -10,7 +10,8 @@
 (def app-state
   (atom {:canvas {:dimensions {:width 800 :height 400}
                   :actions []}
-         :tools {:width 4}}))
+         :tools {:width 4
+                 :strokeStyle "#000000" }}))

 (defprotocol Drawable
   (-draw [this context]))
@@ -35,7 +36,7 @@
     (.restore context)))

 (defn new-line-action []
-  (->LineAction [] {:strokeStyle "#000000"
+  (->LineAction [] {:strokeStyle (get-in @app-state [:tools :strokeStyle])
                     :lineCap "round"
                     :lineJoin "round"
                     :lineWidth (get-in @app-state [:tools :width])}))
@@ -119,7 +120,11 @@
                                          (om/update! tools [:width] newval)))}
                       (map (fn [i]
                              (dom/option #js {:value i} i))
-                           (range 1 11)))))))
+                           (range 1 11)))
+               (dom/input #js {:type "text"
+                               :value (:strokeStyle tools)
+                               :onChange (fn [e]
+                                           (om/update! tools [:strokeStyle] (.-value (.-currentTarget e))))})))))

 (defn app-component [app owner]
   (reify


remove deref

remove deref

--- src/cljs/re_form/core.cljs
+++ src/cljs/re_form/core.cljs
@@ -129,7 +129,7 @@
         run-validators
         (fn []
           (let [{form-name :form-name path :path validators :validators value :value} @state]
-            (validate-and-update-errors form-name path validators @value)))
+            (validate-and-update-errors form-name path validators value)))

         unbind-input
         (fn [form-name path]


show active pings again

show active pings again

--- src/cljs/tictag/views.cljs
+++ src/cljs/tictag/views.cljs
@@ -45,12 +45,10 @@
 (defn graph [width height pings]
   [:div
    (when (seq pings)
-     (let [data              (map (fn [{:keys [local-time tags old-local-time]}]
-                                    {:tags           tags
-                                     :local-time     local-time
-                                     :old-local-time old-local-time
-                                     :x              (days-since-epoch local-time)
-                                     :y              (seconds-since-midnight local-time)})
+     (let [data              (map #(let [local-time (:local-time %)]
+                                     (assoc %
+                                            :x (days-since-epoch local-time)
+                                            :y (seconds-since-midnight local-time)))
                                   pings)
            xs                (map :x data)
            ys                (map :y data)
@@ -74,7 +72,7 @@
         [:g
          (for [d data]
            ^{:key (str (:local-time d))}
-           [datapoint d true])]]))])
+           [datapoint d (:active? d)])]]))])

 (defn app
   []


Change order for :states in :move-attack-twice

--- src/cljs/zetawar/data.cljs
+++ src/cljs/zetawar/data.cljs
@@ -138,10 +138,10 @@
        :moved-1-attacked-0 {:transitions
                             {:attack-unit  :moved-1-attacked-1
                              :capture-base :done}}
-       :moved-1-attacked-1 {:transitions
+       :moved-0-attacked-1 {:transitions
                             {:attack-unit  :done
                              :capture-base :done}}
-       :moved-0-attacked-1 {:transitions
+       :moved-1-attacked-1 {:transitions
                             {:attack-unit  :done
                              :capture-base :done}}
        :done               {}}}


Use to-terrain-type-id function

Use to-terrain-type-id function

--- src/cljs/zetawar/game.cljs
+++ src/cljs/zetawar/game.cljs
@@ -1373,7 +1373,7 @@
         {:terrain/game-pos-idx (game-pos-idx game q r)
          :terrain/q q
          :terrain/r r
-         :terrain/type [:terrain-type/game-id-idx (game-id-idx game-id (keyword "terrain-type.id" base-type))]
+         :terrain/type [:terrain-type/game-id-idx (game-id-idx game-id (to-terrain-type-id base-type))]
          :map/_terrains (e (:game/map game))}))))

 (defn factions-tx [db game-id factions]


Improve error message on e/apply-transformation-log

--- backend/src/akvo/lumen/lib/transformation/engine.clj
+++ backend/src/akvo/lumen/lib/transformation/engine.clj
@@ -231,7 +231,7 @@
             op             (try-apply-operation {:tenant-conn conn} table-name columns transformation)]
         (when-not (:success? op)
           (throw
-           (ex-info (format "Failed to update due to transformation mismatch: %s" (:message op)) {})))
+           (ex-info (format "Failed to update due to transformation mismatch: %s . TX: %s" (:message op) transformation) {})))
         (let [applied-txs (conj applied-txs
                                 (assoc transformation "changedColumns"
                                        (diff-columns columns (:columns op))))]


[#3083] Fix: don't copy not existent table "MERGE_DATASET"

--- backend/src/akvo/lumen/lib/transformation/engine.clj
+++ backend/src/akvo/lumen/lib/transformation/engine.clj
@@ -364,11 +364,12 @@
   (reduce (fn [c data-group]
          (let [imported-table-name (:imported-table-name data-group)
                table-name (util/gen-table-name "ds")]
-           (db.transformation/copy-table tenant-conn
-                                         {:source-table imported-table-name
-                                          :dest-table   table-name}
-                                         {}
-                                         {:transaction? false})
+           (when-not (= "MERGE_DATASET" imported-table-name)
+             (db.transformation/copy-table tenant-conn
+                                           {:source-table imported-table-name
+                                            :dest-table   table-name}
+                                           {}
+                                           {:transaction? false}))

            (assoc c (:group-id data-group) {:table-name table-name :previous-table-name (:table-name data-group)
                                             :imported-table-name (:imported-table-name data-group)}))


rename quit to quit-server to match boot-server

--- src/overtone/sc/server.clj
+++ src/overtone/sc/server.clj
@@ -380,7 +380,7 @@
           (= :external which) (boot-external-server port))
          (wait-until-connected)))))

-(defn quit
+(defn quit-server
   "Quit the SuperCollider synth process."
   []
   (log/info "quiting...")


Log warning when If-Unmodified-Since isnt provided

--- src/poky/protocol/http.clj
+++ src/poky/protocol/http.clj
@@ -69,6 +69,8 @@
   [kvstore b k params headers body]
   (let [if-unmodified-since (get headers "if-unmodified-since" nil)
         modified (util/http-date->Timestamp if-unmodified-since)]
+    (if-not if-unmodified-since
+      (warnf "If-Unmodified-Since not provided for %s/%s" b k))
     (if (and if-unmodified-since (not modified))
       ; if If-Unmodified-Since was specified in the header, but didn't parse,
       ; reject this as a bad request.


Switch to using a multimethod to dispatch is-type? function; make slightly more clojuresque predicate names

--- src/doctopus/files.clj
+++ src/doctopus/files.clj
@@ -5,23 +5,30 @@
 ;; THIS IS TOTALLY DATABASS
 ;; (pprint (fs/walk vector "/Users/rossdonaldson/Code/doctopus/src/"))

-(defn is-type?
+(defmulti is-type?
   "Returns true if the type of the file matches the type given."
-  [file-handle type-regex]
-  (if (re-find type-regex (.getPath file-handle))
+  (fn [fobj regex] (class fobj)))
+
+(defmethod is-type? java.lang.String
+  [file-string type-regex]
+  (if (re-find type-regex file-string)
     true
     false
     ))

+(defmethod is-type? java.io.File
+  [file-handle type-regex]
+  (is-type? (.getPath file-handle) type-regex))

-(defn markdown-type
+
+(defn markdown?
   "returns true only for type files. Expects a Java.Util.FileHandle"
   [file-handle]
-  (is-type? #"(?i)md|markdown|mdown$" (.getpath file-handle)
+  (is-type? file-handle #"(?i)md|markdown|mdown$"
             ))

-(defn restructured-type
+(defn restructured-text?
   "returns true only for type files. Expects a Java.Util.FileHandle"
   [file-handle]
   (is-type? #"(?i)rst|rest$" (.getPath file-handle)


CMR-1166: Refactored queue configuration

--- dev-system/src/cmr/dev_system/system.clj
+++ dev-system/src/cmr/dev_system/system.clj
@@ -167,13 +167,9 @@
   [type]
   (indexer-config/set-indexing-communication-method! "queue")
   (rmq-conf/set-rabbit-mq-ttls! [1 1 1 1 1])
-  (let [rmq-config {:port (rmq-conf/rabbit-mq-port)
-                    :admin-port (rmq-conf/rabbit-mq-admin-port)
-                    :host (rmq-conf/rabbit-mq-host)
-                    :username (rmq-conf/rabbit-mq-user)
-                    :password (rmq-conf/rabbit-mq-password)
-                    :ttls [1 1 1 1 1]
-                    :queues [(indexer-config/index-queue-name)]}]
+  (let [rmq-config (merge (rmq-conf/default-config)
+                          {:ttls [1 1 1 1 1]
+                           :queues [(indexer-config/index-queue-name)]})]
     (-> (rmq/create-queue-broker rmq-config)
         wrapper/create-queue-broker-wrapper)))


Tweak asserts and printlns

Tweak asserts and printlns

--- src/leiningen/voom.clj
+++ src/leiningen/voom.clj
@@ -23,6 +23,7 @@
                    [(str "--git-dir=" (.getPath gitdir))
                     (str "--work-tree=" (.getParent gitdir))])
         all-args (concat dir-args subcmd)
+        ;; _ (prn :calling (doall (cons 'git all-args)))
         {:keys [exit] :as rtn} (apply sh "git" all-args)]
     (when-not (ok-statuses exit)
       (throw (ex-info "git error" (assoc rtn :git all-args))))
@@ -51,6 +52,9 @@
 (defn format-voom-ver
   [gver]
   (let [{:keys [ver ctime sha]} gver]
+    (assert ver   (str "format-voom-ver requires :ver " (pr-str gver)))
+    (assert ctime (str "format-voom-ver requires :ctime " (pr-str gver)))
+    (assert sha   (str "format-voom-ver requires :sha " (pr-str gver)))
     (str (s/replace ver #"-SNAPSHOT" "")
          "-" (formatted-timestamp timestamp-fmt ctime) "-g" sha)))

@@ -396,11 +400,11 @@
                                 (concat neg-tags [(str "origin/" found-branch) "--" found-path]))))]
         :when (seq commits)]
     (let [refs (-> commits first :refs)
+          ;; _ (pprint {:gitdir gitdir :path found-path :branch found-branch :commits commits})
           reflist (filter #(and
                             (= (str proj-name) (:proj %))
                             (= found-path (:path %))) (map parse-tag refs))]
       (some (fn [[current next-commit]]
-              #_(prn :refs path (:refs next-commit))
               (when (or (= :end next-commit)
                         (some #(= found-path (:path (parse-tag %)))
                               (:refs next-commit)))
@@ -429,7 +433,7 @@
      (do (println "\nMultiple bump resolutions for:"
                   prj (pr-str ver-spec) (pr-str voom-meta))
          (doseq [[voom-ver group] groups]
-           (prn voom-ver (map #(select-keys % [:gitdir :branch :path :ctime]) group)))
+           (prn voom-ver (map #(select-keys % [:repo :branch :path :ctime]) group)))
          dep))))

 (defn rewrite-project-file [input-str replacement-map]
@@ -459,7 +463,7 @@
                     (when (not= old-ver new-ver)
                       (str " -> " new-ver)))))
     (if (= old-deps desired-new-deps)
-      (println "All deps already up-to-date.")
+      (println "No versions bumped.")
       (let [replacement-map (into {} (map #(when (not= %1 %2) [%1 %2])
                                           old-deps desired-new-deps))
             tmp-file (File/createTempFile


Remove incorrect use of 'distinct in 'origin-branches

'origin-branches is called by add-git-facts, once each to generate keys and
values of a branch name-to-sha map. The use of distinct for each set seprately
caused misalignments producing an incorrect map.

--- src/leiningen/voom.clj
+++ src/leiningen/voom.clj
@@ -409,8 +409,7 @@
                  ["--symbolic-full-name"])
                ["--remotes=origin/"]))
        :lines
-       (map #(re-find #"[^/]+$" %))
-       distinct))
+       (map #(re-find #"[^/]+$" %))))

 (defn new-throttle
   ([msg-fn] (new-throttle 500 msg-fn (constantly false)))


fine tuning

fine tuning

--- src/lights/my_show.clj
+++ src/lights/my_show.clj
@@ -533,11 +533,17 @@
       (let [light-param (params/build-oscillated-param
         (oscillators/sawtooth :interval :beat :interval-ratio :osc-beat-ratio :down? true) :min :lightness-min-general :max :lightness-max-general)]
         (fx/chase "Saw all, hue adjust" [(global-color-effect (params/build-color-param :h :main-hue :s 100 :l light-param))
+          (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 30 :s 100 :l light-param))
           (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 60 :s 100 :l light-param))
+          (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 90 :s 100 :l light-param))
           (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 120 :s 100 :l light-param))
+          (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 150 :s 100 :l light-param))
           (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 180 :s 100 :l light-param))
+          (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 210 :s 100 :l light-param))
           (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 240 :s 100 :l light-param))
-          (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 300 :s 100 :l light-param))]
+          (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 270 :s 100 :l light-param))
+          (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 300 :s 100 :l light-param))
+          (global-color-effect (params/build-color-param :h :main-hue :adjust-hue 330 :s 100 :l light-param))]
           (params/build-step-param :interval :phrase :fade-fraction 0.3 :fade-curve :sine)
           :beyond :loop
           ))))))


clean up annotate path a bit more

clean up annotate path a bit more


Fix sparkline Y axis spacing

Fix sparkline Y axis spacing

--- src/metabase/pulse.clj
+++ src/metabase/pulse.clj
@@ -231,7 +231,7 @@
         ys' (map #(/ (- % ymin) yrange) ys)]
     (render-html-to-png
       [:div {:style (str font-style "color: " color-grey-2 ";") }
-        [:div {:style "display: inline-block; position: relative; margin-left: 40px;" }
+        [:div {:style "display: inline-block; position: relative; margin-left: 50px;" }
           [:div {:style "position: relative;"}
             [:div {:style "position: absolute; height: 100%; text-align: right; background-color: red;"}
               [:div {:style "position: absolute; right: 0;"} (format-number-short ymax)]
@@ -250,7 +250,7 @@
   [card {:keys [rows cols] :as data} render-img]
   [:div
     [:img {:style "display: block" :src (render-img (render-sparkline-with-axis-to-png card data))}]
-    [:div {:style "margin-top: 20px; margin-left: 30px;"}
+    [:div {:style "margin-top: 20px; margin-left: 60px;"}
       (render-table card (reverse (take-last 2 rows)) cols render-img [0 1] nil)]])

 (defn detect-pulse-card-type


исправления...

исправления...

--- radiolamp-6P3S/src/r6p3s/complex/dataform_search.cljs
+++ radiolamp-6P3S/src/r6p3s/complex/dataform_search.cljs
@@ -56,7 +56,7 @@

     om/IWillMount
     (will-mount [this]
-      (let [{:keys [chan-update-rb]} (om/get-state own)]
+      (let [{:keys [chan-update chan-update-rb]} (om/get-state own)]
         (go
           (while true
             (let [_ (<! chan-update-rb)]


Passes context down

Passes context down

--- test-cljs/frontend/test_send.cljs
+++ test-cljs/frontend/test_send.cljs
@@ -298,23 +298,27 @@

-(defn resolve* [mapping key children]
+(defn resolve* [context mapping key children]
   (async/map (fn [& vals]
                {key (into {}
                           (map #(vector (:key %1) %2)
                                children vals))})
-             (map #(async/map (:key %) [((get mapping (:key %)) %)])
+             (map (fn [ast]
+                    (let [result ((get mapping (:key ast)) context ast)]
+                      (async/map (:key ast) [result])))
                   children)))

-(defn resolve [root-mapping query]
+(defn resolve [context root-mapping query]
   (let [ast (om/query->ast query)]
-    (async/map ::root [(resolve* root-mapping ::root (:children ast))])))
+    (async/map ::root [(resolve* context root-mapping ::root (:children ast))])))

 (def User
   {:user/name
-   #(doto (async/promise-chan)
-      (put! {:user/name "nipponfarm"}))
+   (fn [context ast]
+     (let [name (:user/name context)]
+       (doto (async/promise-chan)
+         (put! {:user/name name}))))

    :user/favorite-color
    #(doto (async/promise-chan)
@@ -335,13 +339,14 @@

 (def Root
   {:root/user
-   #(resolve* User :root/user (:children %))})
+   (fn [context ast]
+     (resolve* (assoc context :user/name (:user/name (:params ast))) User :root/user (:children ast)))})

 (deftest new-thing-works
   (async done
     (go
-      (let [c (resolve Root '[{(:root/user {:user/name "nipponfarm"})
+      (let [c (resolve {} Root '[{(:root/user {:user/name "nipponfarm"})
                                [:user/name
                                 :user/favorite-color
                                 :user/favorite-number


More hacks to make tests work.

More hacks to make tests work.

--- test/clj/hatnik/selenium/core.clj
+++ test/clj/hatnik/selenium/core.clj
@@ -78,7 +78,8 @@
   (.until (WebDriverWait. driver 10)
           (-> type dialog-visible-selector
               By/cssSelector
-              ExpectedConditions/visibilityOfElementLocated)))
+              ExpectedConditions/visibilityOfElementLocated))
+  (Thread/sleep 100))

 (def dialog-invisible-selector {:project "#iModalProjectMenu"
                                 :action "#iModalAddAction"})
@@ -87,7 +88,8 @@
   (.until (WebDriverWait. driver 10)
           (-> type dialog-invisible-selector
               By/cssSelector
-              ExpectedConditions/invisibilityOfElementLocated)))
+              ExpectedConditions/invisibilityOfElementLocated))
+  (Thread/sleep 100))

 (defn wait-until [driver condition message]
   (doto (WebDriverWait. driver 10)


Three new tests added into generator-test module

--- test/clj_flotr/generator_test.clj
+++ test/clj_flotr/generator_test.clj
@@ -10,10 +10,19 @@
 ;      Pavel Tisnovsky
 ;

-(ns clj-flotr.core-test
+(ns clj-flotr.generator-test
   (:require [clojure.test :refer :all]
-            [clj-flotr.core :refer :all]))
+            [clj-flotr.generator :refer :all]))

-(deftest a-test
-  (testing "FIXME, I fail."
-    (is (= 0 1))))
+(deftest test-line-chart-existence
+    (testing "Test if line-chart function exists"
+        (is (function? line-chart))))
+
+(deftest test-pie-chart-existence
+    (testing "Test if pie-chart function exists"
+        (is (function? pie-chart))))
+
+(deftest test-stacked-bars-existence
+    (testing "Test if stacked-bars function exists"
+        (is (function? stacked-bars))))
+


Output payment flag in startup.

Output payment flag in startup.

--- src/oc/storage/app.clj
+++ src/oc/storage/app.clj
@@ -64,7 +64,8 @@
     "Hot-reload: " c/hot-reload "\n"
     "Trace: " c/liberator-trace "\n"
     "Log level: " c/log-level "\n"
-    "Sentry: " c/dsn "\n\n"
+    "Sentry: " c/dsn "\n"
+    "Payments?: " c/payments-enabled? "\n\n"
     (when c/intro? "Ready to serve...\n"))))

 ;; Ring app definition


update returns modified

update returns modified

--- src/ontrail/mutate.clj
+++ src/ontrail/mutate.clj
@@ -151,10 +151,11 @@
                                       {"$set" (dissoc
                                                (assoc (from-user-ex user params) :lastModifiedDate (time/now))
                                                :comments)})]
-    (.debug logger (str "Updated " (:id params) " with status "  write-result))
-    {:result (mr/ok? write-result)
-     :message (str "Message id " (:id params) " updated.")}))
-
+    (.debug logger (str "Updated " (:id params) " with status "  write-result)))
+  (let [res (mc/find-one-as-map EXERCISE {:_id (ObjectId. (:id params))})]
+    (.debug logger (str (:id params) res))
+    (as-ex-result res)))
+
 (defn comment-ex [user params]
   (.debug logger (str user " creating comment " params))
   (mc/update-by-id EXERCISE


Improve resource loading to avoid conflicts with lein.

--- src/palletops/hyde.clj
+++ src/palletops/hyde.clj
@@ -186,7 +186,7 @@
                _ (printf "copying %s to %s\n" source destination)
                source-content (try
                                 (slurp
-                                 (-> source resource file))
+                                 (-> source resource))
                                 (catch Exception e
                                   (throw (ex-info (format "Template %s not found" source)
                                                   {:type :config}))))