clean targets

clean targets

--- project.clj
+++ project.clj
@@ -9,9 +9,11 @@
   :plugins [[org.bodil/lein-noderepl "0.1.11"]
             [lein-cljsbuild "1.0.6"]]
   :min-lein-version "2.0.0"
+  :clean-targets ^{:protect false}
+                  [[:cljsbuild :builds 0 :compiler :output-to]
+                    :target-path :compile-path]
   :cljsbuild {:builds
               [{:source-paths ["src/cljs"]
-                :compiler {:target :nodejs
-                           :output-to "resources/js/server.js"
+                :compiler {:output-to "resources/js/server.js"
                            :optimizations :simple
                            :pretty-print true}}]})


No need to always compile the test cljs

No need to always compile the test cljs

This should save time when we are building for dev or the uberjar.
See #56.

--- project.clj
+++ project.clj
@@ -62,19 +62,12 @@
   :test-paths ["test/clj" "test/cljs" "test/cljc"]

   :cljsbuild
-  {:builds        {:app  {:source-paths ["src/cljs"]
-                          :compiler     {:output-dir    "resources/public/js/"
-                                         :externs       ["react/externs/react.js" "externs/jquery-1.9.js" "externs/misc-externs.js"]
-                                         :optimizations :none
-                                         :output-to     "resources/public/js/memento.js"
-                                         :pretty-print  true}}
-                   :test {:source-paths ["src/cljs"]
-                          :compiler
-                                        {:output-dir    "target/test/"
-                                         :externs       ["react/externs/react.js" "externs/jquery-1.9.js" "externs/misc-externs.js"]
-                                         :optimizations :whitespace
-                                         :pretty-print  true
-                                         :output-to     "target/test/memento-tests.js"}}
+  {:builds        {:app {:source-paths ["src/cljs"]
+                         :compiler     {:output-dir    "resources/public/js/"
+                                        :externs       ["react/externs/react.js" "externs/jquery-1.9.js" "externs/misc-externs.js"]
+                                        :optimizations :none
+                                        :output-to     "resources/public/js/memento.js"
+                                        :pretty-print  true}}
                    }
    :test-commands {"test" ["phantomjs" "phantom/unit-test.js" "phantom/unit-test.html"]}}

@@ -118,5 +111,12 @@
    :project/test {:hooks          [leiningen.cljsbuild]
                   :source-paths   ["env/test/clj" "test/clj" "test/cljc" "test/cljs"]
                   :resource-paths ["env/dev/resources" "env/test/resources"]
+                  :cljsbuild      {:builds {:test {:source-paths ["src/cljs"]
+                                                   :compiler
+                                                                 {:output-dir    "target/test/"
+                                                                  :externs       ["react/externs/react.js" "externs/jquery-1.9.js" "externs/misc-externs.js"]
+                                                                  :optimizations :whitespace
+                                                                  :pretty-print  true
+                                                                  :output-to     "target/test/memento-tests.js"}}}}
                   }
    })


lein-release plugin: preparing 0.2.4 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject se.haleby/stub-http "0.2.4-SNAPSHOT"
+(defproject se.haleby/stub-http "0.2.4"
   :description "A client library agonistic way to stub HTTP responses"
   :url "https://github.com/johanhaleby/stub-http"
   :license {:name         "MIT License"


Dependencies updated using ancient lein's plugin.

--- project.clj
+++ project.clj
@@ -4,22 +4,22 @@
 (defproject dacom "0.1.3-SNAPSHOT"
   :description "A skeleton app built with datomic, compojure, and om"
   :url "https://github.com/bellkev/dacom"
-  :dependencies [[org.clojure/clojure "1.5.1"]
-                 [org.clojure/clojurescript "0.0-2138"]
-                 [ring "1.2.1"]
-                 [ring-cors "0.1.0"]
-                 [ring-middleware-format "0.3.1"]
-                 [compojure "1.1.6"]
-                 [cljs-ajax "0.2.3"]
+  :dependencies [[org.clojure/clojure "1.6.0"]
+                 [org.clojure/clojurescript "0.0-2850"]
+                 [ring "1.3.2"]
+                 [ring-cors "0.1.6"]
+                 [ring-middleware-format "0.4.0"]
+                 [compojure "1.3.2"]
+                 [cljs-ajax "0.3.10"]
                  [org.clojure/core.async "0.1.267.0-0d7780-alpha"]
-                 [om "0.1.4"]
-                 [sablono "0.1.5"]
-                 [com.datomic/datomic-free "0.9.4384"]]
-  :plugins [[lein-cljsbuild "1.0.1-SNAPSHOT"]
-            [lein-ring "0.8.8"]
-            [lein-resource "0.3.1"]
+                 [om "0.7.3"]
+                 [sablono "0.3.4"]
+                 [com.datomic/datomic-free "0.9.5130"]]
+  :plugins [[lein-cljsbuild "1.0.5"]
+            [lein-ring "0.9.1"]
+            [lein-resource "14.10.1"]
             [lein-httpd "1.0.0"]
-            [lein-shell "0.3.0"]
+            [lein-shell "0.4.0"]
             [fsrun "0.1.2"]]
   :source-paths ["src"]
   :target-path "target/"
@@ -40,7 +40,7 @@
   :ring {:init dacom.server/init-conn
          :handler dacom.server/app}
   :profiles {:dev {;; This needs to be here because of https://github.com/cemerick/austin/issues/23
-                    :plugins [[com.cemerick/austin "0.1.4-SNAPSHOT"]]
+                    :plugins [[com.cemerick/austin "0.1.6"]]
                     :source-paths ["utils/src"]
                     :repl-options {:init-ns dacom.repl}
                     :resource {:resource-paths ["web-resources/pages"]


fix some project info

fix some project info

Signed-off-by: Yen-Chin Lee <082d453d72dce940e12089a4ad48b97cfe1f3ec4@gmail.com>

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (defproject emulator-chip8 "0.1.0-SNAPSHOT"
-  :description "FIXME: write description"
-  :url "http://example.com/FIXME"
+  :description "CHIP-8 emulator written in clojurescript."
+  :url "https://github.com/coldnew/chip8.cljs"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}


disable aot since it breaks lein?

disable aot since it breaks lein?

--- project.clj
+++ project.clj
@@ -73,8 +73,7 @@
   :target-path "target/%s"
   :profiles

-  {:uberjar {:aot :all}
-   :production {:env {:production true}}
+  {:production {:env {:production true}}
    :dev
    {:plugins [[lein-figwheel "0.5.9"]
               [lein-doo "0.1.7"]]


Start 1.2.0-SNAPSHOT

Start 1.2.0-SNAPSHOT

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


adding cljfmt to the plugins

adding cljfmt to the plugins

--- project.clj
+++ project.clj
@@ -5,4 +5,5 @@
                  [org.clojure/tools.cli "0.3.1"]
                  [instaparse "1.3.6"]]
   :resource-paths ["test-resources"]
+  :plugins [[lein-cljfmt "0.1.10"]]
   :main app.core)


Bump up library version

Bump up library version

--- project.clj
+++ project.clj
@@ -10,7 +10,7 @@
 ;      Pavel Tisnovsky
 ;

-(defproject org.clojars.tisnik/clj-fileutils "0.3.0-SNAPSHOT"
+(defproject org.clojars.tisnik/clj-fileutils "0.4.0-SNAPSHOT"
     :description "Set of functions for manipulating with files and directories."
     :url "http://example.com/FIXME"
     :license {:name "Eclipse Public License"


Revert "upgrade datascript"

Revert "upgrade datascript"

This reverts commit 8b76994d16a8f9178187a5f4ae96aa144b24b29d.

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
   :dependencies [[org.clojure/clojure "1.6.0"]
                  [inflections "0.8.2"]

-                 [datascript "0.7.1"]
+                 [datascript "0.5.1"]

                  [compojure "1.1.8"]
                  [cheshire "5.2.0"]


Update dependencies

Update dependencies

--- project.clj
+++ project.clj
@@ -14,14 +14,14 @@
                                org.jboss.logging/jboss-logging]]
                  [org.jboss.logging/jboss-logging "3.3.0.Final"]
                  [ring "1.4.0" :exclusions [org.clojure/tools.reader]]
-                 [buddy "0.11.0"]
+                 [buddy "0.12.0"]
                  [ring/ring-json "0.4.0"]
                  [tranchis/photon-db "0.9.45"]
                  [org.clojure/tools.logging "0.3.1"]
                  [org.clojure/core.async "0.2.374"]
                  [org.marianoguerra/clj-rhino "0.2.2"
                   :exclusions [org.mozilla/rhino]]
-                 [cheshire "5.5.0"]
+                 [cheshire "5.6.1"]
                  [clj-time "0.11.0"]
                  [compojure "1.5.0" :exclusions [commons-codec]]
                  [serializable-fn "1.1.4"]
@@ -31,7 +31,7 @@
                  [prismatic/schema "1.1.0"]
                  [metosin/ring-http-response "0.6.5"
                   :exclusions [potemkin]]
-                 [metosin/compojure-api "1.0.1"]
+                 [metosin/compojure-api "1.0.2"]
                  [dire "0.5.4"]
                  [org.slf4j/slf4j-log4j12 "1.7.21"]
                  [tranchis/clj-schema-inspector "0.5.2"]
@@ -43,17 +43,17 @@
                                com.cognitect/transit-cljs
                                com.cognitect/transit-java]]
                  [tailrecursion/cljson "1.0.7"]
-                 [clj-http "2.1.0"]
+                 [clj-http "3.0.0"]
                  [cljs-http "0.1.40"]
                  [org.omcljs/om "1.0.0-alpha32"]
                  [jayq "2.5.4"]
-                 [fipp "0.6.4"]
+                 [fipp "0.6.5"]
                  [reagent-utils "0.1.7"]
                  ;; photon plugins
-                 [io.github.lukehutch/fast-classpath-scanner "1.9.17"]
+                 [io.github.lukehutch/fast-classpath-scanner "1.9.18"]
                  [congomongo "0.4.8"]
                  #_[tranchis/photon-riak "0.9.31"]
-                 [tranchis/photon-h2 "0.9.44"]
+                 [tranchis/photon-h2 "0.9.45"]
                  [tranchis/photon-cassandra "0.9.45"
                   :exclusions [com.taoensso/encore]]
                  [tranchis/photon-hazelcast "0.9.40"


Set version to 0.6.0

Set version to 0.6.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject buddy/buddy-auth "0.5.3"
+(defproject buddy/buddy-auth "0.6.0"
   :description "Authentication and Authorization facilities for ring based web applications."
   :url "https://github.com/funcool/buddy-auth"
   :license {:name "Apache 2.0"


Upgrade version of incise being used.

Upgrade version of incise being used.

--- project.clj
+++ project.clj
@@ -7,10 +7,8 @@
   :repack [{:type :clojure
             :levels 1
             :path "src"}]
-  :profiles {:dev {:dependencies [[incise-markdown-parser "0.2.0"]
-                                  [incise-git-deployer "0.1.0"]
+  :profiles {:dev {:dependencies [[incise "0.5.0"]
                                   [com.ryanmcg/incise-codox "0.1.0"]
-                                  [incise-core "0.4.0"]
                                   [com.ryanmcg/incise-vm-layout "0.5.0"]]
                    :plugins [[lein-repack "0.2.4"]]
                    :aliases {"incise" ^:pass-through-help ["run" "-m" "incise.core"]}}


Version 0.5.1-SNAPSHOT

Version 0.5.1-SNAPSHOT

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
                               (System/getenv "CLOJURE_VERSION")
                               "1.7.0"))

-(defproject lambdacd-cctray "0.5.0"
+(defproject lambdacd-cctray "0.5.1-SNAPSHOT"
   :description "cctray support for lambdacd"
   :url "http://github.com/flosell/lambdacd-cctray"
   :license {:name "Apache License, version 2.0"


Removed :classifier from project.clj

Removed :classifier from project.clj

Signed-off-by: Daniel Borchmann <25857343a15bf1edafebc2912e82ecf775c585c1@mailbox.tu-dresden.de>

--- project.clj
+++ project.clj
@@ -13,7 +13,7 @@
   :description "A ConExp rewrite in clojure"
   :url "http://www.math.tu-dresden.de/~borch/conexp-clj/"
   :dependencies [[org.clojure/clojure "1.3.0-master-SNAPSHOT"]
-                 [org.clojure.contrib/complete "1.3.0-SNAPSHOT" :classifier "bin"]
+                 [org.clojure.contrib/complete "1.3.0-SNAPSHOT"]
                  [org.apache.commons/commons-math "2.0"]
                  [jline "0.9.94"]]
   :dev-dependencies [[swank-clojure "1.3.0-SNAPSHOT"]]


0.1.5

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject turbovote.imbarcode "0.1.5-SNAPSHOT"
+(defproject turbovote.imbarcode "0.1.5"
   :description "Generate USPS Intelligent Mail Barcodes"
   :url "https://github.com/turbovote/imbarcode"
   :license {:name "Eclipse Public License"


Version 2.17.2 [ci skip]

Version 2.17.2 [ci skip]

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojush "2.17.1-1-SNAPSHOT"
+(defproject clojush "2.17.2"
   :description "The Push programming language and the PushGP genetic programming
                 system implemented in Clojure. See http://pushlanguage.com"
   :license {:name "Eclipse Public License"


Change namespace, description, URL to this fork's.

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
-(defproject org.clojars.pntblnk/clj-ldap "0.0.9"
-  :description "Clojure ldap client (development fork of alienscience's clj-ldap)."
-  :url "https://github.com/pauldorman/clj-ldap"
+(defproject puppetlabs/clj-ldap "0.0.9"
+  :description "Clojure ldap client (Puppet Labs's fork)."
+  :url "https://github.com/puppetlabs/clj-ldap"
   :dependencies [[org.clojure/clojure "1.3.0"]
                  [com.unboundid/unboundid-ldapsdk "2.3.0"]]
   :dev-dependencies [[jline "0.9.94"]


bumped up version

bumped up version

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


Version 0.4.41-SNAPSHOT

Version 0.4.41-SNAPSHOT

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


Update project metadata.

Update project metadata.

--- project.clj
+++ project.clj
@@ -1,6 +1,3 @@
 (defproject little-clojurer "0.1.0-SNAPSHOT"
-  :description "FIXME: write description"
-  :url "http://example.com/FIXME"
-  :license {:name "Eclipse Public License"
-            :url "http://www.eclipse.org/legal/epl-v10.html"}
+  :description "Little Schemer in Clojure"
   :dependencies [[org.clojure/clojure "1.5.1"]])


(maint) Remove pl-clojure-style linter

(maint) Remove pl-clojure-style linter

This commit removes all references to the pl-clojure-style repo. This was used
for linting / style checking in the past, but hasn't been used for quite some
time, so no reason to keep the `cljfmt` profile for running it.

--- project.clj
+++ project.clj
@@ -48,10 +48,6 @@
                                   [puppetlabs/trapperkeeper]
                                   [puppetlabs/trapperkeeper :classifier "test" :scope "test"]
                                   [puppetlabs/kitchensink :classifier "test" :scope "test"]]}
-             :cljfmt {:plugins [[lein-cljfmt "0.5.7" :exclusions [org.clojure/clojure]]
-                                [lein-parent "0.3.4"]]
-                      :parent-project {:path "../pl-clojure-style/project.clj"
-                                       :inherit [:cljfmt]}}
              :test-base [:dev
                          {:source-paths ["test-resources"]
                           :test-paths ^:replace ["test"]}]
@@ -60,5 +56,4 @@
                                                       (require 'schema.core)
                                                       (schema.core/set-fn-validation! true))]}]}

-  :aliases {"cljfmt" ["with-profile" "+cljfmt" "cljfmt"]
-            "test-all" ["with-profile" "test-base:test-schema-validation" "test"]})
+  :aliases {"test-all" ["with-profile" "test-base:test-schema-validation" "test"]})


lein-release plugin: bumped version from 0.6.0 to 0.6.1-SNAPSHOT for next development cycle

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


lein-release plugin: preparing 0.4.2 release

--- project.clj
+++ project.clj
@@ -1,7 +1,7 @@
 (def ks-version "1.0.0")
 (def tk-version "1.0.1")

-(defproject puppetlabs/http-client "0.4.2-SNAPSHOT"
+(defproject puppetlabs/http-client "0.4.2"
   :description "HTTP client wrapper"
   :license {:name "Apache License, Version 2.0"
             :url "http://www.apache.org/licenses/LICENSE-2.0.html"}


Version 0.1.7-SNAPSHOT

Version 0.1.7-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject turbovote.imbarcode "0.1.6"
+(defproject turbovote.imbarcode "0.1.7-SNAPSHOT"
   :description "Generate USPS Intelligent Mail Barcodes"
   :url "https://github.com/turbovote/imbarcode"
   :license {:name "Eclipse Public License"


Bump to version 1.3.0.

Bump to version 1.3.0.

--- project.clj
+++ project.clj
@@ -1,12 +1,11 @@
-(defproject com.draines/postal "1.2.0"
+(defproject com.draines/postal "1.3.0"
   :resources-path "etc"
   :repositories {"java.net" "http://download.java.net/maven/2"}
   :dependencies [[org.clojure/clojure "1.2.0-master-SNAPSHOT"]
                  [org.clojure/clojure-contrib "1.2.0-SNAPSHOT"]
                  [javax.mail/mail "1.4.4-SNAPSHOT"
                   :exclusions [javax.activation/activation]]]
-  :dev-dependencies [[swank-clojure "1.2.1"]
-                     [lein-clojars "0.5.0-SNAPSHOT"]]
+  :dev-dependencies [[swank-clojure "1.2.1"]]
   :source-path "src/clj"
   :namespaces [com.draines.postal.core
                com.draines.postal.message


Bumping back to snapshot.

Bumping back to snapshot.

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


Version 1.0.3-SNAPSHOT

Version 1.0.3-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject dda/dda-serverspec-crate "1.0.2"
+(defproject dda/dda-serverspec-crate "1.0.3-SNAPSHOT"
   :description "A crate to get facts from server nodes and test these facst against your expectation."
   :url "https://domaindrivenarchitecture.org"
   :license {:name "Apache License, Version 2.0"


Minor line fix in project.clj

Minor line fix in project.clj

--- project.clj
+++ project.clj
@@ -27,7 +27,8 @@
                  [venantius/accountant "0.1.7"]
                  [com.cemerick/piggieback "0.2.2-SNAPSHOT"]
                  [org.clojure/tools.nrepl "0.2.12"]
-                 [cljsjs/react-bootstrap "0.28.1-1" :exclusions [org.webjars.bower/jquery]]
+                 [cljsjs/react-bootstrap "0.28.1-1"
+                  :exclusions [org.webjars.bower/jquery]]
                  [ring/ring-defaults "0.2.0"]
                  [ring/ring-mock "0.3.0"]


Bump 1.8-SNAPSHOT.

Bump 1.8-SNAPSHOT.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject com.draines/postal "1.7.0"
+(defproject com.draines/postal "1.8-SNAPSHOT"
   :repositories {"java.net" "http://download.java.net/maven/2"}
   :dependencies [[org.clojure/clojure "1.3.0"]
                  [javax.mail/mail "1.4.4"


Bump nrepl version to RC

Bump nrepl version to RC

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
                    [jline/jline "2.8"]
                    [org.thnetos/cd-client "0.3.6"]
                    [clj-stacktrace "0.2.4"]
-                   [org.clojure/tools.nrepl "0.2.0-beta10"]
+                   [org.clojure/tools.nrepl "0.2.0-RC1"]
                    [org.clojure/tools.cli "0.2.1"]
                    [com.cemerick/drawbridge "0.0.6"]
                    [trptcolin/versioneer "0.1.0"]


update version

update version

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject pjson "0.3.1"
+(defproject pjson "0.3.2"
             :description "Fast clojure json library"
             :url "https://github.com/gerritjvv/pjson"
             :license {:name "Eclipse Public License"


Pre-release version 0.4.2-RC2 [skip ci]

Pre-release version 0.4.2-RC2 [skip ci]

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject io.logicblocks/exegesis "0.4.2-RC1"
+(defproject io.logicblocks/exegesis "0.4.2-RC2"
   :description "Simplify reflection of annotations on Java types."
   :url "http://github.com/logicblocks/exegesis"


* add lein-cloverage plugin * add 2 dependencies to dev profile to avoid dependency clashes with cloverage

--- project.clj
+++ project.clj
@@ -88,7 +88,9 @@
   :repositories [["releases" "http://nexus.delivery.puppetlabs.net/content/repositories/releases/"]
                  ["snapshots" "http://nexus.delivery.puppetlabs.net/content/repositories/snapshots/"]]

-  :plugins [[lein-release "1.0.5"]]
+  :plugins [[lein-release "1.0.5"]
+            [lein-cloverage "1.0.6" :exclusions [org.clojure/clojure]]]
+
   :lein-release {:scm        :git
                  :deploy-via :lein-deploy}

@@ -117,7 +119,9 @@
                                   [puppetlabs/trapperkeeper-webserver-jetty9 ~tk-jetty9-version :classifier "test"]
                                   [org.flatland/ordered "1.5.2"]
                                   [org.clojure/test.check "0.5.9"]
-                                  [environ "1.0.0"]]}
+                                  [environ "1.0.0"]
+                                  [org.clojure/tools.cli "0.3.0"] ; prevents dependency clash caused by lein-cloverage
+                                  [riddley "0.1.7"]]}             ; prevents dependency clash caused by lein-cloverage plugin
              :ezbake {:dependencies ^:replace [[puppetlabs/puppetdb ~pdb-version]
                                                [org.clojure/tools.nrepl "0.2.3"]]
                       :name "puppetdb"


Version 6.0.5

Version 6.0.5

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(def ps-version "6.0.5-SNAPSHOT")
+(def ps-version "6.0.5")

 (defn deploy-info
   [url]


org.clojure/core.async 0.2.371 released

org.clojure/core.async 0.2.371 released

--- project.clj
+++ project.clj
@@ -13,7 +13,7 @@
                   :exclusions [org.clojure/clojure com.taoensso/encore]]

                  ;; Handlers
-                 [org.clojure/core.async "0.1.346.0-17112a-alpha"]
+                 [org.clojure/core.async "0.2.371"]
                  [aleph "0.4.1-beta1"]

                  ;; Schemata


Update dependencies.

Update dependencies.

--- project.clj
+++ project.clj
@@ -14,16 +14,16 @@
   ;; All profile dependencies
   :dependencies [
     ;; Lisp on the JVM http://clojure.org/documentation
-    [org.clojure/clojure "1.9.0-beta3"]
+    [org.clojure/clojure "1.9.0-beta4"]
     ;; Command-line parsing https://github.com/clojure/tools.cli
     [org.clojure/tools.cli "0.3.5"]
     ;; Web application library https://github.com/ring-clojure/ring
-    [ring/ring-devel "1.6.2"]
+    [ring/ring-devel "1.6.3"]
     ;; Web application library https://github.com/ring-clojure/ring
     ;; NB: clj-time pulled in by oc.lib
     ;; NB: joda-time pulled in by oc.lib via clj-time
     ;; NB: commons-codec pulled in by oc.lib
-    [ring/ring-core "1.6.2" :exclusions [clj-time joda-time commons-codec]]
+    [ring/ring-core "1.6.3" :exclusions [clj-time joda-time commons-codec]]
     ;; CORS library https://github.com/jumblerg/ring.middleware.cors
     [jumblerg/ring.middleware.cors "1.0.1"]
     ;; Ring logging https://github.com/nberger/ring-logger-timbre


Release 0.8.7.

Release 0.8.7.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojars-web "0.8.7-SNAPSHOT"
+(defproject clojars-web "0.8.7"
   :dependencies [[org.clojure/clojure "1.4.0"]
                  [org.clojure/tools.cli "0.2.1"]
                  [org.apache.maven/maven-model "3.0.4"


lein-release plugin: preparing 0.6.1 release

--- project.clj
+++ project.clj
@@ -1,11 +1,11 @@
-(defproject dda/dda-backup-crate "0.6.1-SNAPSHOT"
+(defproject dda/dda-backup-crate "0.6.1"
   :description "A crate to handle backups"
   :url "https://www.domaindrivenarchitecture.org"
   :license {:name "Apache License, Version 2.0"
             :url "https://www.apache.org/licenses/LICENSE-2.0.html"}
   :dependencies [[org.clojure/clojure "1.7.0"]
-                 [dda/dda-pallet "0.5.5-SNAPSHOT"]
-                 [dda/dda-user-crate "0.6.2-SNAPSHOT"]
+                 [dda/dda-pallet "0.5.5"]
+                 [dda/dda-user-crate "0.6.2"]
                  [selmer "1.11.1"]]
   :repositories [["snapshots" :clojars]
                  ["releases" :clojars]]


version bump

version bump

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject lspector/clojush "1.3.10"
+(defproject lspector/clojush "1.3.11"
             :description "The Push programming language and the PushGP genetic programming
                           system implemented in Clojure.
                           See http://hampshire.edu/lspector/push.html"


bump dep

bump dep

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

   :dependencies [[org.clojure/clojure "1.6.0"]
                  [org.clojure/clojurescript "0.0-2261"]
-                 [com.cognitect/transit-js "0.1.441"]]
+                 [com.cognitect/transit-js "0.1.468"]]

   :plugins [[lein-cljsbuild "1.0.4-SNAPSHOT"]
             [codox "0.8.9"]]


Upgrade to 0.9.11-alpha1.

Upgrade to 0.9.11-alpha1.

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


Update project.clj according to newer chestnut

--- project.clj
+++ project.clj
@@ -4,30 +4,31 @@
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}

-  :source-paths ["src/clj" "src/cljs"]
+  :source-paths ["src/clj"]
+
+  :test-paths ["spec/clj"]

   :dependencies [[org.clojure/clojure "1.6.0"]
                  [org.clojure/clojurescript "0.0-2371" :scope "provided"]
                  [com.datomic/datomic-free "0.9.5067"]
                  [datomic-schema "1.1.0"]
-                 [ring "1.3.1"]
+                 [ring "1.3.2"]
+                 [ring/ring-defaults "0.1.2"]
                  [ring-middleware-format "0.4.0"]
                  [compojure "1.2.0"]
                  [enlive "1.1.5"]
                  [com.facebook/react "0.11.2"]
                  [whoops/reagent "0.4.4-alpha"]
-                 [figwheel "0.1.4-SNAPSHOT"]
                  [environ "1.0.0"]
-                 [com.cemerick/piggieback "0.1.3"]
-                 [weasel "0.4.0-SNAPSHOT"]
-                 [leiningen "2.5.0"]
                  [http-kit "2.1.19"]
                  [prismatic/plumbing "0.3.4"]
                  [cljs-ajax "0.3.3"]
                  [prone "0.6.0"]]

   :plugins [[lein-cljsbuild "1.0.3"]
-            [lein-environ "1.0.0"]]
+            [lein-environ "1.0.0"]
+            [org.clojars.aew/lein-sassc "0.10.0"]
+            [lein-auto "0.1.1"]]

   :min-lein-version "2.5.0"

@@ -44,16 +45,35 @@
                                         :optimizations :none
                                         :pretty-print  true}}}}

-  :profiles {:dev {:repl-options {:init-ns cglossa.server
+  :sassc [{:src "src/scss/style.scss"
+           :output-to "resources/public/css/style.css"}]
+  :auto {"sassc"  {:file-pattern  #"\.(scss)$"}}
+
+  :profiles {:dev {:source-paths ["env/dev/clj"]
+
+                   :dependencies [[figwheel "0.1.6-SNAPSHOT"]
+                                  [com.cemerick/piggieback "0.1.3"]
+                                  [weasel "0.4.2"]
+                                  [leiningen "2.5.0"]]
+
+                   :repl-options {:init-ns cglossa.server
                                   :nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}
-                   :plugins [[lein-figwheel "0.1.4-SNAPSHOT"]]
+
+                   :plugins [[lein-figwheel "0.1.6-SNAPSHOT"]]
+
                    :figwheel {:http-server-root "public"
-                              :port 3449
-                              :css-dirs ["resources/public/css"]}
+                              :server-port 3449
+                              :css-dirs ["resources/public/css"]
+                              :open-file-command "idea-opener"}
+
                    :env {:is-dev true}
-                   :cljsbuild {:builds {:app {:source-paths ["env/dev/cljs"]}}}}

-             :uberjar {:hooks [leiningen.cljsbuild]
+                   :cljsbuild {:builds
+                               {:app
+                                {:source-paths ["env/dev/cljs"]}}}}
+
+             :uberjar {:source-paths ["env/prod/clj"]
+                       :hooks [leiningen.cljsbuild  ]
                        :env {:production true}
                        :omit-source true
                        :aot :all


Missed the transit dep when making dependencies optional

--- project.clj
+++ project.clj
@@ -12,13 +12,13 @@
                  [org.apache.httpcomponents/httpmime "4.4.1"]
                  [commons-codec "1.10"]
                  [commons-io "2.4"]
-                 [com.cognitect/transit-clj "0.8.271"]
                  [slingshot "0.12.2"]
                  [potemkin "0.3.13"]]
   :profiles {:dev {:dependencies [;; optional deps
                                   [cheshire "5.4.0"]
                                   [crouton "0.1.2"]
                                   [org.clojure/tools.reader "0.9.2"]
+                                  [com.cognitect/transit-clj "0.8.271"]
                                   [ring/ring-codec "1.0.0"]
                                   ;; other (testing) deps
                                   [org.clojure/clojure "1.6.0"]


updated deps and new release

updated deps and new release

--- project.clj
+++ project.clj
@@ -1,20 +1,20 @@
-(defproject corpus-utils "0.1.4"
+(defproject corpus-utils "0.1.5"
   :description "Miscellaneous utilities to parse Japanese language corpora with Clojure"
   :url "https://github.com/borh/corpus-utils.git"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.7.0-alpha5"]

-                 [clj-mecab "0.4.1.1"]
+                 [clj-mecab "0.4.1.2"]

-                 [fast-zip "0.6.0" :exclusions [com.cemerick/austin]]
+                 [fast-zip "0.6.1" :exclusions [com.cemerick/austin]]
                  [org.clojure/data.csv "0.1.2"]
                  [me.raynes/fs "1.4.6"]
                  [org.apache.commons/commons-compress "1.9"]
                  [org.tukaani/xz "1.5"]

                  [prismatic/schema "0.4.0"]
-                 [prismatic/plumbing "0.4.0"]]
+                 [prismatic/plumbing "0.4.1"]]
   :min-lein-version "2.0.0"
   :resource-paths ["data"]
   :jvm-opts ["-server"]


CMR-178: removed :jvm-opts from the project.

--- project.clj
+++ project.clj
@@ -15,7 +15,6 @@
                  [org.clojure/tools.cli "0.3.1"]]
   :plugins []
   :main cmr.ingest.runner
-  :jvm-opts ["-Xmx1024m"]
   :repl-options {:init-ns user}
   :profiles
   {:dev {:dependencies [[ring-mock "0.1.5"]


bumped up version

bumped up version

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


Ensure jackson is present

Ensure jackson is present

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

-(defproject com.7theta/via "8.3.2"
+(defproject com.7theta/via "8.3.3"
   :description "A re-frame library for WebSocket based messaging"
   :url "https://github.com/7theta/via"
   :license {:name "MIT License"
@@ -15,8 +15,7 @@
   :dependencies [[re-frame "1.2.0"]
                  [haslett "0.1.6"]

-                 [com.cognitect/transit-clj "1.0.324"
-                  :exclusions [com.fasterxml.jackson.core/jackson-core]]
+                 [com.cognitect/transit-clj "1.0.324"]
                  [org.clojure/core.async "1.3.618"]

                  [metrics-clojure "2.10.0"]


releasing 1.8.0

releasing 1.8.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject chazel "0.1.8-SNAPSHOT"
+(defproject chazel "0.1.9-SNAPSHOT"
   :description "hazelcast bells and whistles under the clojure belt"
   :url "https://github.com/tolitius/chazel"
   :license {:name "Eclipse Public License"


Bumped version

Bumped version

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject com.hudren.homevideo/video-server "0.3"
+(defproject com.hudren.homevideo/video-server "0.3.1-SNAPSHOT"
   :description "Videos@Home server"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
@@ -44,7 +44,7 @@

   :profiles {:dev {:source-paths ["dev"]}
              :uberjar {:aot :all}}
-
+
   :eastwood {:continue-on-exception true}
   :codox {:exclude user
           :output-dir "docs"
@@ -52,5 +52,6 @@
           :src-dir-uri "http://github.com/hudren/video-server/blob/master/"
           :src-linenum-anchor-prefix "L"}

-  :aliases {"build" ["do" "clean," "bower" "install," "uberjar"]
-            "docs" ["do" "doc," "shell" "open" "docs/index.html"]})
+  :aliases {"build" ["do" "clean" ["bower" "install"] "uberjar"]
+            "docs" ["do" "doc" ["shell" "open" "docs/index.html"]]})
+


updating to pe-rest-utils 0.0.42

updating to pe-rest-utils 0.0.42

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject pe-fp-app "0.0.36"
+(defproject pe-fp-app "0.0.37"
   :description "The Gas Jot REST API endpoint."
   :url "https://github.com/evanspa/pe-fp-app"
   :license {:name "MIT"
@@ -26,7 +26,7 @@
                  [javax.mail/mail "1.4.7"]
                  [pe-core-utils "0.0.14"]
                  [pe-jdbc-utils "0.0.21"]
-                 [pe-rest-utils "0.0.41"]
+                 [pe-rest-utils "0.0.42"]
                  [pe-user-core "0.1.42"]
                  [pe-user-rest "0.0.59"]
                  [pe-fp-core "0.0.47"]
@@ -36,7 +36,7 @@
          :init pe-fp-app.lifecycle/init
          :destroy pe-fp-app.lifecycle/stop}
   :profiles {:dev {:source-paths ["dev"]  ;ensures 'user.clj' gets auto-loaded
-                   :env {:fp-app-version "0.0.36"
+                   :env {:fp-app-version "0.0.37"
                          :fp-uri-prefix "/gasjot/d/"
                          :fp-db-name "fp"
                          :fp-db-server-host "localhost"


cleanup project.clj

cleanup project.clj

--- project.clj
+++ project.clj
@@ -10,26 +10,26 @@

                  [org.clojure/clojurescript "0.0-2202"]
                  [org.clojure/core.async "0.1.267.0-0d7780-alpha" :scope "provided"]
-
+
                  [kixi/bidi "1.10.3-p0-b569a50"]
-
+
                  ;; Modular
                  [juxt/modular "0.2.0"]
                  [juxt.modular/http-kit "0.2.0"]
                  [juxt.modular/bidi "0.2.1"]
                  [cylon "0.1.0" :exclusions [ring/ring-core]]
-
+
                  ;; EDN reader with location metadata - for configuration
                  [org.clojure/tools.reader "0.8.3"]
-
+
                  ;; using a patched liberator pending
                  ;; https://github.com/clojure-liberator/liberator/pull/120
                  [kixi/liberator "0.12.0-p2-413ee59"]
                  [cheshire "5.3.1"]
-
+
                  ;; Required for Cassandra (possibly only OSX)
                  [org.xerial.snappy/snappy-java "1.1.0.1"]
-
+
                  ;; ClojureScript dependencies
                  [prismatic/dommy "0.1.2"]
                  [cljs-ajax "0.2.3"]
@@ -37,7 +37,7 @@
                  [net.drib/mrhyde "0.5.3"]
                  [com.andrewmcveigh/cljs-time "0.1.3"]
                  [sablono "0.2.16"]
-
+
                  [clj-kafka "0.2.0-0.8" :exclusions [org.slf4j/slf4j-simple org.apache.zookeeper/zookeeper]]
                  [camel-snake-kebab "0.1.4"]
                  [cc.qbits/alia "2.0.0-rc1" :exclusions [com.google.guava/guava org.flatland/useful]]
@@ -68,7 +68,7 @@
                                   [org.clojure/tools.namespace "0.2.4"]
                                   ]
                    :plugins [[com.cemerick/austin "0.1.4"]] }
-
+
              :uberjar {:main kixi.hecuba.controller.main :aot [kixi.hecuba.controller.main]}}

   :exclusions [[org.clojure/clojure]


Update deps

Update deps

--- project.clj
+++ project.clj
@@ -9,16 +9,16 @@
   :hooks [leiningen.cljsbuild]

   :dependencies [[org.clojure/clojure "1.9.0"]
-                 [org.clojure/clojurescript "1.10.339"]
-                 [org.clojure/core.async "0.4.474" :exclusions [org.clojure/tools.reader]]
+                 [org.clojure/clojurescript "1.10.439"]
+                 [org.clojure/core.async "0.4.490" :exclusions [org.clojure/tools.reader]]
                  [org.clojure/test.check "0.9.0"]
-                 [org.clojure/tools.reader "1.3.0"]
+                 [org.clojure/tools.reader "1.3.2"]
                  [org.omcljs/om "1.0.0-beta4"]
                  [com.cognitect/transit-cljs "0.8.256"]
                  [com.velisco/strgen "0.1.7"]
                  [spec-provider "0.4.14"]
-                 [cljs-ajax "0.7.4"]
-                 [lein-doo "0.1.10"]  ;; <-- otherwise it won't find the doo namespaces...
+                 [cljs-ajax "0.8.0"]
+                 [lein-doo "0.1.11"]  ;; <-- otherwise it won't find the doo namespaces...
                  [devcards "0.2.6"]
                  [sablono "0.8.4"]
                  [inflections "0.13.0"]]
@@ -26,8 +26,8 @@
   :plugins [[lein-ancient "0.6.10"]
             [lein-cljsbuild "1.1.5" :exclusions [[org.clojure/clojure]]]
             [lein-codox "0.10.3"]
-            [lein-doo "0.1.10"]
-            [lein-figwheel "0.5.16"]
+            [lein-doo "0.1.11"]
+            [lein-figwheel "0.5.17"]
             [lein-kibit "0.1.6"]
             [lein-set-version "0.4.1"]]

@@ -41,9 +41,9 @@
             "build" ["do" "clean" ["cljsbuild" "once" "min"]]}

   :profiles {:dev {:dependencies [[binaryage/devtools "0.9.10"]
-                                  [figwheel-sidecar "0.5.16"]
+                                  [figwheel-sidecar "0.5.17"]
                                   [org.clojure/tools.nrepl "0.2.13"]
-                                  [cider/piggieback "0.3.9"]]
+                                  [cider/piggieback "0.3.10"]]
                    ;; need to add dev source path here to get user.clj loaded
                    :source-paths ["src" "script"]
                    :repl-options {:init (set! *print-length* 50)
@@ -75,7 +75,7 @@
                                :closure-defines {discuss.config/version ~(->> (slurp "project.clj")
                                                                               (re-seq #"\".*\"")
                                                                               (first))}
-:parallel-build       true
+                               :parallel-build       true
                                :compiler-stats       true
                                :source-map-timestamp true}}
                {:id           "test"


Release 0.3.0

Release 0.3.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject control "0.3.0-SNAPSHOT"
+(defproject control "0.3.0"
   :description "A clojure DSL for system admin and deployment with many remote machines"
   :url "https://github.com/killme2008/clojure-control"
   :author "dennis zhuang(killme2008@gmail.com)"


fix prod build

fix prod build

--- project.clj
+++ project.clj
@@ -20,6 +20,5 @@
             :externs ["libs/interact.js"]
             :pretty-print false
             :output-wrapper false
-            :language-in :ecmascript5
             :closure-warnings {:externs-validation :off
                                :non-standard-jsdoc :off}}}}})


node dependencies

node dependencies

--- project.clj
+++ project.clj
@@ -12,6 +12,7 @@
   :clean-targets [^{:protect false}
                   [:cljsbuild :builds 0 :compiler :output-to]
                   :target-path :compile-path]
+  :node-dependencies [[express "4.13.3"]]
   :cljsbuild {:builds
               [{:source-paths ["src/cljs"]
                 :compiler {:target :nodejs


update dependencies

update dependencies

--- project.clj
+++ project.clj
@@ -4,9 +4,9 @@
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.6.0"]
-                 [clj-http "1.0.1"]
+                 [clj-http "1.1.0"]
                  [enlive "1.1.5"]
-                 [org.clojure/clojurescript "0.0-3123"]]
+                 [org.clojure/clojurescript "0.0-3169"]]
   :main cljs-workcalendar.app
   :plugins [[lein-cljsbuild "1.0.5"]]
   :cljsbuild {


remove unused dependencies

remove unused dependencies

--- project.clj
+++ project.clj
@@ -12,8 +12,6 @@
                  [org.clojure/core.unify "0.5.2" :exclusions [org.clojure/clojure]]
                  [clj-time "0.10.0" :exclusions [org.clojure/clojure]]
                  [colorize "0.1.1" :exclusions [org.clojure/clojure]]
-                 [backtick "0.3.2" :exclusions [org.clojure/clojure]]
-                 [traversy "0.3.1" :exclusions [org.clojure/clojure]]
                  [org.clojure/tools.macro "0.1.5"]
                  [org.tcrawley/dynapath "0.2.3"]
                  [swiss-arrows "1.0.0" :exclusions [org.clojure/clojure]]


Bump version

Bump version

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject keechma/keechma "0.3.0"
+(defproject keechma/keechma "0.3.1"
   :description "Frontend micro framework for ClojureScript and Reagent"
   :url "http://github.com/keechma/keechma"
   :license {:name "MIT"}


bump version

bump version

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject optimus-sass "0.0.2"
+(defproject optimus-sass "0.0.3"
   :description "Sass/SCSS asset loader for Optimus"
   :url "http://github.com/DomKM/optimus-sass"
   :license {:name "Eclipse Public License"


Version 6.3.0

Version 6.3.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(def ps-version "6.3.0-SNAPSHOT")
+(def ps-version "6.3.0")

 (defn deploy-info
   [url]


Bump version to 0.9.1-SNAPSHOT.

Bump version to 0.9.1-SNAPSHOT.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojars-web "0.9.0"
+(defproject clojars-web "0.9.1-SNAPSHOT"
   :dependencies [[org.clojure/clojure "1.4.0"]
                  [org.clojure/tools.cli "0.2.1"]
                  [org.apache.maven/maven-model "3.0.4"


Bump onyx metrics

Bump onyx metrics

--- project.clj
+++ project.clj
@@ -41,7 +41,7 @@
   :java-source-paths ["src/java"]
   :dependencies [[org.clojure/clojure "1.7.0"]
 		 [org.onyxplatform/onyx "0.8.3-SNAPSHOT"]
-		 [org.onyxplatform/onyx-metrics "0.8.2.2-SNAPSHOT"]
+		 [org.onyxplatform/onyx-metrics "0.8.2.6"]
 		 [riemann-clojure-client "0.4.1"]
                  [gnuplot "0.1.0"]
 		 [cheshire "5.4.0"]])


Version 0.5.1-SNAPSHOT

Version 0.5.1-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,7 +1,7 @@
 (def tk-version "1.1.1")
 (def ks-version "1.1.0")

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


First steps exploring reitit permissions middleware.

--- project.clj
+++ project.clj
@@ -27,6 +27,7 @@
     [clojusc/trifl "0.2.0"]
     [clojusc/twig "0.3.2"]
     [com.stuartsierra/component "0.3.2"]
+    [gov.nasa.earthdata/cmr-client "0.3.0-SNAPSHOT"]
     [http-kit "2.2.0"]
     [metosin/reitit-core "0.1.1-SNAPSHOT"]
     [metosin/reitit-ring "0.1.1-SNAPSHOT"]


Story ID: 0.3.4 set version

Story ID: 0.3.4
set version

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject navis/untangled-spec "0.3.5-SNAPSHOT"
+(defproject navis/untangled-spec "0.3.4"
   :description "A Behavioral specification system for clj and cljs stacked on clojure.test"
   :url ""
   :license {:name "MIT Public License"


Version 0.13.0

Version 0.13.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject lambdacd "0.13.0-SNAPSHOT"
+(defproject lambdacd "0.13.0"
   :description "a library to create a continous delivery pipeline in code"
   :url "http://github.com/flosell/lambdacd"
   :license {:name "Apache License, version 2.0"


only make sure time > 0

only make sure time > 0

--- test/clojento/magento/t_db.clj
+++ test/clojento/magento/t_db.clj
@@ -51,10 +51,9 @@
         (meta (raw-jdbc-fetch (:db @system) "SELECT 'passed' as check" :debug true)) => (contains {:stmt "SELECT 'passed' as check"}))
   (fact "meta contains :hits"
         (meta (raw-jdbc-fetch (:db @system) "SELECT 'passed' as check" :debug true)) => (contains {:hits 1}))
-  (fact "meta contains :time"
-        ; checking for 0.01 ms <= time <= 0.99 ms
-        (meta (raw-jdbc-fetch (:db @system) "SELECT 'passed' as check" :debug true)) => (contains {:time (roughly 0.5 0.49)})
-        (meta (raw-jdbc-execute (:db @system) "CREATE TABLE new_tbl;" :debug true)) => (contains {:time (roughly 0.5 0.49)}))
+  (fact "meta contains :time > 0"
+        (meta (raw-jdbc-fetch (:db @system) "SELECT 'passed' as check" :debug true)) => (contains {:time pos?})
+        (meta (raw-jdbc-execute (:db @system) "CREATE TABLE new_tbl;" :debug true))  => (contains {:time pos?}))
   (log/info "completed tests with in-memory DB"))


Improve docstring and symbol names

Improve docstring and symbol names

--- src/play_clj/core.clj
+++ src/play_clj/core.clj
@@ -143,7 +143,6 @@
         entities))

     ; input functions
-    ; Tip: use input-processor! to run these functions manually
     (defscreen my-screen
       :on-key-down ; a key was pressed
       (fn [screen entities]
@@ -188,7 +187,7 @@
         entities))

     ; gesture functions
-    ; Tip: use gesture-detector! to configure these functions and run them manually
+    ; Tip: use gesture-detector! to configure these functions
     (defscreen my-screen
       :on-fling ; the user dragged over the screen and lifted
       (fn [screen entities]
@@ -262,7 +261,7 @@
         entities))

     ; ui input functions (for play-clj.ui)
-    ; Tip: use change-listener! and click-listener! to configure these functions and run them manually
+    ; Tip: use click-listener! to configure these functions
     (defscreen my-screen
       :on-ui-changed ; the ui entity was changed
       (fn [screen entities]
@@ -316,7 +315,7 @@
         entities))

     ; ui drag functions (for play-clj.ui)
-    ; Tip: use drag-listener! to configure these functions and run them manually
+    ; Tip: use drag-listener! to configure these functions
     (defscreen my-screen
       :on-ui-drag
       (fn [screen entities]
@@ -341,7 +340,6 @@
         entities))

     ; ui focus functions (for play-clj.ui)
-    ; Tip: use focus-listener! to run these functions manually
     (defscreen my-screen
       :on-ui-keyboard-focus-changed
       (fn [screen entities]
@@ -357,7 +355,6 @@
         entities))

     ; ui gesture functions (for play-clj.ui)
-    ; Tip: use actor-gesture-listener! to configure these functions and run them manually
     (defscreen my-screen
       :on-ui-fling ; the user dragged a finger over the screen and lifted it
       (fn [screen entities]
@@ -439,11 +436,11 @@
   `(defonce ~n (defgame* ~options)))

 (defn set-screen!
-  "Creates and displays a screen for the `game` object, using one or more
-`screen` maps in the order they were provided.
+  "Creates and displays a screen for the `game-object`, using one or more
+`screen-objects` in the order they were provided.

     (set-screen! my-game main-screen text-screen)"
-  [^Game game & screen-objects]
+  [^Game game-object & screen-objects]
   (let [add-inputs! (fn []
                       (input! :set-input-processor (InputMultiplexer.))
                       (doseq [{:keys [screen]} screen-objects]
@@ -452,14 +449,14 @@
         run-fn! (fn [k & args]
                   (doseq [screen screen-objects]
                     (apply (get screen k) args)))]
-    (.setScreen game (reify Screen
-                       (show [this] (add-inputs!) (run-fn! :show))
-                       (render [this d] (run-fn! :render d))
-                       (hide [this] (run-fn! :hide))
-                       (pause [this] (run-fn! :pause))
-                       (resize [this w h] (run-fn! :resize w h))
-                       (resume [this] (run-fn! :resume))
-                       (dispose [this])))))
+    (.setScreen game-object (reify Screen
+                              (show [this] (add-inputs!) (run-fn! :show))
+                              (render [this d] (run-fn! :render d))
+                              (hide [this] (run-fn! :hide))
+                              (pause [this] (run-fn! :pause))
+                              (resize [this w h] (run-fn! :resize w h))
+                              (resume [this] (run-fn! :resume))
+                              (dispose [this])))))

 (defn set-screen-wrapper!
   "Sets a function that wraps around all screen functions, allowing you to


Add and rename REPL functions

Add and rename REPL functions

--- src/play_clj/repl.clj
+++ src/play_clj/repl.clj
@@ -1,26 +1,45 @@
 (ns play-clj.repl
   (:require [play-clj.core :refer :all]))

-(defn entities
+(defn s
+  "Returns the screen map in `screen-object`.
+
+    (s main-screen)"
+  [screen-object]
+  (-> screen-object :screen deref))
+
+(defn s!
+  "Associates values to the screen map in `screen-object`. Returns the new
+screen map.
+
+    (s! main-screen :camera (orthographic))"
+  [screen-object & args]
+  (apply swap! (:screen screen-object) assoc args))
+
+(defn e
   "Returns the entities in `screen-object`, optionally filtered by a supplied
 function.

-    (entities main-screen :player)"
+    (e main-screen :player)"
   ([screen-object]
     (-> screen-object :entities deref))
   ([screen-object filter-fn]
-    (filter filter-fn (entities screen-object))))
+    (filter filter-fn (e screen-object))))

-(defn entities!
-  "Associates values to the entities in `screen-object` that match the supplied
-function.
+(defn e!
+  "Resets the entities in `screen-object`, or associates values to the entities
+in `screen-object` that match the supplied function. Returns the entities that
+were changed.

-    (entities! main-screen :player :health 10)"
-  [screen-object filter-fn & args]
-  (on-gl (swap! (:entities screen-object)
-                (fn [entities]
-                  (for [e entities]
-                    (if (filter-fn e)
-                      (apply assoc e args)
-                      e)))))
-  (entities screen-object filter-fn))
+    (e! main-screen [])
+    (e! main-screen :player :health 10)"
+  ([screen-object new-entities]
+    (reset! (:entities screen-object) new-entities))
+  ([screen-object filter-fn & args]
+    (swap! (:entities screen-object)
+           (fn [entities]
+             (for [e entities]
+               (if (filter-fn e)
+                 (apply assoc e args)
+                 e))))
+    (e screen-object filter-fn)))


trying more reliable test-uuid test

trying more reliable test-uuid test

--- test/datascript/test/core.cljc
+++ test/datascript/test/core.cljc
@@ -94,10 +94,11 @@
      :cljs (.getTime (js/Date.))))

 (deftest test-uuid
-  (loop []
-    (when (> (mod (now) 1000) 990) ;; sleeping over end of a second
-      (recur)))
-  (let [now-ms (now)
+  (let [now-ms (loop []
+                 (let [ts (now)]
+                   (if (> (mod ts 1000) 900) ;; sleeping over end of a second
+                     (recur)
+                     ts)))
         now    (int (/ now-ms 1000))]
     (is (= (* 1000 now) (d/squuid-time-millis (d/squuid))))
     (is (not= (d/squuid) (d/squuid)))


[#8] Inline request map to improve readability

--- test/org/akvo/resumed_test.clj
+++ test/org/akvo/resumed_test.clj
@@ -211,30 +211,28 @@

 (deftest google-cloud-load-balancer-complience
   (testing "Lack of x-forwarded-host should fallback on host header"
-    (let [req {:headers {"host"                  "www.akvo.org"
-                         "x-forwarded-proto"     "https"}
-               :uri     "/path"
-               :server-port 3000
-               :scheme :http}
-          req-2 (update req :headers dissoc "x-forwarded-proto")
-          req-3 {:headers {"host" "localhost:3030"}
-                 :uri "/path"
-                 :server-port 4000
-                 :scheme :http}
-          req-4 {:headers {"host" "some.tld"}
-                 :uri "/path"
-                 :server-port 4000
-                 :scheme :http}
-          req-5 {:headers {"host" "some.tld"}
-                 :uri "/path"
-                 :server-port 8443
-                 :scheme :https}]
-      (are [x y] (= x y)
-        "https://www.akvo.org/path" (get-location req)
-        "http://www.akvo.org:3000/path" (get-location req-2)
-        "http://localhost:3030/path" (get-location req-3)
-        "http://some.tld:4000/path" (get-location req-4)
-        "https://some.tld:8443/path" (get-location req-5)))))
+    (are [x y] (= x (get-location y))
+      "https://www.akvo.org/path" {:headers {"host" "www.akvo.org"
+                                             "x-forwarded-proto" "https"}
+                                   :uri "/path"
+                                   :server-port 3000
+                                   :scheme :http}
+      "http://www.akvo.org:3000/path" {:headers {"host" "www.akvo.org"}
+                                       :uri "/path"
+                                       :server-port 3000
+                                       :scheme :http}
+      "http://localhost:3030/path" {:headers {"host" "localhost:3030"}
+                                    :uri "/path"
+                                    :server-port 4000
+                                    :scheme :http}
+      "http://some.tld:4000/path" {:headers {"host" "some.tld"}
+                                   :uri "/path"
+                                   :server-port 4000
+                                   :scheme :http}
+      "https://some.tld:8443/path" {:headers {"host" "some.tld"}
+                                    :uri "/path"
+                                    :server-port 8443
+                                    :scheme :https})))

 (deftest check-upload-length
   (testing "Restrict the number of PATCH requests to the Upload-Length"


delaney.clj: new function (append)

delaney.clj: new function (append)

--- clojure/org/gavrog/clojure/delaney.clj
+++ clojure/org/gavrog/clojure/delaney.clj
@@ -559,6 +559,31 @@
             vs (into {} (for [[i j] ipairs] [(imap i) (into {} (spins i j))]))]
         (DSymbol. (dim ds) (count reps) ops vs)))))

+(defn append
+  ([] (dsymbol "0"))
+  ([ds] ds)
+  ([ds1 ds2]
+    (let [ds1 (dsymbol ds1)
+          ds2 (dsymbol ds2)
+          d (max (dim ds1) (dim ds2))
+          s1 (size ds1)
+          s2 (size ds2)
+          ops (into {} (for [i (range (inc d))]
+                         [i (into {} (concat (for [D (elements ds1)]
+                                               [D (s ds1 i D)])
+                                             (for [D (elements ds2)]
+                                               [(+ s1 D)
+                                                (+ s1 (s ds2 i D))])))]))
+          vs (into {} (for [i (range d)]
+                        [i (into {} (concat (for [D (elements ds1)]
+                                              [D (v ds1 i (inc i) D)])
+                                            (for [D (elements ds2)]
+                                              [(+ s1 D)
+                                               (v ds2 i (inc i) D)])))]))]
+      (DSymbol. d (+ s1 s2) ops vs)))
+  ([ds1 ds2 & xds]
+    (reduce append (append ds1 ds2) xds)))
+
 ;; === Tests

 (deftest delaney-test


Separate file reading from analysis while still being lazy.

--- src/shokunin/word.clj
+++ src/shokunin/word.clj
@@ -1,22 +1,31 @@
-(ns shokunin.words
+(ns shokunin.word
   (:require [clojure.string :refer [lower-case split-lines]]))

 (defn term-frequency
-  "Count occurrences of terms in a file."
-  [file stop-set]
-  (with-open [rdr (clojure.java.io/reader file)]
-    (let [tokenize (partial re-seq #"(?:\w[\w\-\']+)")
-          non-stop (partial remove stop-set)
-          parse    (comp frequencies non-stop tokenize lower-case)
-          tally    (map parse (line-seq rdr))
-          adder    (partial merge-with +)]
-      (reduce adder tally))))
+  "Count occurrences of terms in a sequence of string."
+  [lines stop-set]
+  (let [tokenize (partial re-seq #"(?:\w[\w\-\']+)")
+        non-stop (partial remove stop-set)
+        parse    (comp frequencies non-stop tokenize lower-case)
+        tally    (map parse lines)
+        adder    (partial merge-with +)]
+    (reduce adder tally)))

-(def stop-set (-> "resources/01/stop.txt" slurp split-lines set))
-(def freq-map (term-frequency "resources/01/declaration.txt" stop-set))
+(defn file-term-frequency
+  "Count occurrences of terms in a file.  Does not load
+   entire file into memory."
+  [term-path stop-path]
+  (with-open [file (clojure.java.io/reader term-path)]
+    (let [stop-set (-> stop-path slurp split-lines set)]
+    (term-frequency (line-seq file) stop-set))))

-(take 10 (sort-by last > freq-map))
-(take 10 (sort-by first compare freq-map))
+(defn example []
+  (let [tf (file-term-frequency "resources/01/declaration.txt"
+                                "resources/01/stop.txt")]
+    (println (take 10 (sort-by last > tf)))
+    (println (take 10 (sort-by first compare tf)))))
+
+(example)


squash prev

squash prev

--- src/sledge/server.clj
+++ src/sledge/server.clj
@@ -79,15 +79,21 @@
                           terms))
                       {}
                       fields)]
-    (search/stringize-search-map terms)))
+    (and (first terms) (search/stringize-search-map terms))))

 ;;  curl -v -XPOST -H'content-type: text/plain' --data-binary 'rhye' http://localhost:53281/tracks.json

 (defn tracks-data [req]
   (let [p (:params req)
-        query (if (= (:request-method req) :get)
-                (query-for-request-params p)
-                (slurp (:body req)))
+        filters (query-for-request-params p)
+        query (str "("
+                   (or (and (= (:request-method req) :post)
+                            (:body req)
+                            (slurp (:body req)))
+                       "TRUE")
+                   ") AND ("
+                   (or filters " TRUE ")
+                   ")")
         num-rows 50
         project (if-let [f (get p "_fields" ) ]
                   #(select-keys % (map keyword (str/split f #",")))


Switch to a better method of preloading images

The previous method created Image objects, loaded the images on page
load, and then immediately released its reference to these images. What
I was seeing was that after a while the images themselves get GC'd
(particularly "man on goal" and "block on goal", which often aren't
displayed depending on board state), and we nevertheless have a lag as
they're loaded again.

The new method, suggested by [this helpful
site](http://perishablepress.com/3-ways-preload-images-css-javascript-ajax/),
sets each image to be the background of a div, but with the background
aligned so far off to the side it would never actually show up.

Another slightly cleaner method may be to just hold the Image objects
in an atom, but this seems to work.

--- src/sojoban/core.cljs
+++ src/sojoban/core.cljs
@@ -151,6 +151,13 @@
          [:dd v]])
       (apply concat)))])

+(def preloaded-images
+  "Some divs to make sure all the images stay loaded, so you don't see lag
+  when you walk onto a goal, for instance."
+  (for [url (vals image-url)]
+    [:div {:style
+           {:background (str "url(" url ") no-repeat -9999px -9999px")}}]))
+
 (defn app-widget [data owner]
   (om/component
     (html [:div#app
@@ -163,12 +170,8 @@
               (om/build board-widget data)
               instructions-html]
              "")
-           (status-message (om/value data))])))
-
-(defn preload-images []
-  (doseq [url (vals image-url)]
-    (let [img (js/Image.)]
-      (set! (.-src img) url))))
+           (status-message (om/value data))
+           preloaded-images])))

 (events/listen js/document goog.events.EventType.KEYDOWN
                process-keydown)
@@ -203,6 +206,4 @@

 (add-watch state ::update-url-to-match-level update-url-to-match-level)

-(preload-images)
-
 (om/root state app-widget js/document.body)


[optimize] Check inputs to evaluate-softmax. (#25)

--- compute/src/think/compute/optimise.clj
+++ compute/src/think/compute/optimise.clj
@@ -218,6 +218,12 @@

 (defn evaluate-softmax
   [guesses answers]
+  (if (or (not (pos? (count guesses)))
+          (not (pos? (count answers)))
+          (not= (count guesses) (count answers)))
+    (throw (Exception. (format "evaluate-softmax: guesses [%d] and answers [%d] count must both be positive and equal."
+                               (count guesses)
+                               (count answers)))))
   (let [results-answer-seq (mapv vector
                                  (softmax-results-to-unit-vectors guesses)
                                  answers)


Minor tests reorganization on extend_test.clj file.


refresh when the timestamp changes!

refresh when the timestamp changes!

--- src-cljs/frontend/components/chat.cljs
+++ src-cljs/frontend/components/chat.cljs
@@ -140,6 +140,7 @@
                  (fn [tx-report]
                    ;; TODO: better way to check if state changed
                    (when-let [chat-datoms (seq (filter #(or (= :chat/body (:a %))
+                                                            (= :server/timestamp (:a %))
                                                             (= :document/chat-bot (:a %)))
                                                        (:tx-data tx-report)))]
                      (om/refresh! owner)))))


fix the chats moving around

fix the chats moving around

--- src-cljs/frontend/components/chat.cljs
+++ src-cljs/frontend/components/chat.cljs
@@ -33,7 +33,7 @@
                                                [(last parts)]))))))

-(defn chat-item [{:keys [chat uuid->cust]} owner {:keys [sente-id show-sender?]}]
+(defn chat-item [{:keys [chat uuid->cust show-sender?]} owner {:keys [sente-id]}]
   (reify
     om/IDisplayName (display-name [_] "Chat Item")
     om/IRender
@@ -177,11 +177,12 @@
         (html
          [:div.chat-log {:ref "chat-messages"}
           (when chat-bot
-            (om/build chat-item {:chat dummy-chat :uuid->cust {(:cust/uuid state/subscriber-bot)
-                                                               (merge
-                                                                (select-keys state/subscriber-bot [:cust/color-name :cust/uuid])
-                                                                {:cust/name (:chat-bot/name chat-bot)})}}
-                      {:opts {:show-sender? true}}))
+            (om/build chat-item {:chat dummy-chat
+                                 :uuid->cust {(:cust/uuid state/subscriber-bot)
+                                              (merge
+                                               (select-keys state/subscriber-bot [:cust/color-name :cust/uuid])
+                                               {:cust/name (:chat-bot/name chat-bot)})}
+                                 :show-sender? true}))
           (let [chat-groups (group-by #(date->bucket (:server/timestamp %)) chats)]
             (for [[time chat-group] (sort-by #(:server/timestamp (first (second %)))
                                              chat-groups)]
@@ -191,11 +192,11 @@
                       [:h2.chat-date time])
                     (for [[prev-chat chat] (partition 2 1 (concat [nil] (sort-by :server/timestamp chat-group)))]
                       (om/build chat-item {:chat chat
-                                           :uuid->cust (get-in app [:cust-data :uuid->cust])}
-                                {:key-fn #(str (:server/timestamp (:chat %)) "-" (:db/id (:chat %)))
-                                 :opts {:sente-id sente-id
-                                        :show-sender? (not= (chat-model/display-name prev-chat sente-id)
-                                                            (chat-model/display-name chat sente-id))}})))))])))))
+                                           :uuid->cust (get-in app [:cust-data :uuid->cust])
+                                           :show-sender? (not= (chat-model/display-name prev-chat sente-id)
+                                                               (chat-model/display-name chat sente-id))}
+                                {:react-key (:db/id chat)
+                                 :opts {:sente-id sente-id}})))))])))))

 (defn chat [app owner]
   (reify


Comment about useless require in todomvc

--- examples/todomvc/src/todomvc/core.cljs
+++ examples/todomvc/src/todomvc/core.cljs
@@ -4,8 +4,8 @@
             [reagent.core :as reagent]
             [re-frame.core :refer [dispatch dispatch-sync]]
             [secretary.core :as secretary]
-            [todomvc.events]
-            [todomvc.subs]
+            [todomvc.events] ;; These two are only required to make the compiler
+            [todomvc.subs]   ;; load them (see docs/Basic-App-Structure.md)
             [todomvc.views]
             [devtools.core :as devtools])
   (:import [goog History]


Update subs.cljs

Update subs.cljs

--- examples/todomvc/src/todomvc/subs.cljs
+++ examples/todomvc/src/todomvc/subs.cljs
@@ -97,7 +97,7 @@
 ;; We supplied only one function in those registrations, not two?
 ;; I'm glad you asked.
 ;; You see, when the signal-returning-fn is omitted, register-pure-sub provides a default.
-;; And it loks like this:
+;; And it looks like this:
 ;;    (fn [_ _] re-frame.db/app-db)
 ;; You can see that it returns one signal, and that signal is app-db itself.
 ;;


fixed issues with typeahead selection

fixed issues with typeahead selection

--- src/cljs/netrunner/deckbuilder.cljs
+++ src/cljs/netrunner/deckbuilder.cljs
@@ -127,7 +127,7 @@
   (.preventDefault event)
   (put! (om/get-state owner :edit-channel)
         {:qty (js/parseInt (om/get-state owner :quantity))
-         :card (first (om/get-state owner :matches))})
+         :card (nth (om/get-state owner :matches) (om/get-state owner :selected))})
   (om/set-state! owner :quantity 3)
   (om/set-state! owner :query "")
   (-> ".deckedit .lookup" js/$ .focus))
@@ -163,7 +163,8 @@
               (for [i (range (count matches))]
                 [:div {:class (if (= i (:selected state)) "selected" "")
                        :on-click (fn [e] (-> ".deckedit .qty" js/$ .focus)
-                                         (om/set-state! owner :query (.. e -target -innerHTML)))}
+                                         (om/set-state! owner :query (.. e -target -innerHTML))
+                                         (om/set-state! owner :selected i))}
                  (:title (nth matches i))])]))]]))))

 (defn deck-builder [{:keys [decks] :as cursor} owner]


Add help popovers for the CodeDeploy app inputs

Further decompose the CodeDeploy app settings into two sub-components,
one to collect the app name, the other to collect the rest of the
settings.

--- frontend/components/project_settings.cljs
+++ frontend/components/project_settings.cljs
@@ -1126,8 +1126,49 @@
             (om/build aws-keys-form project-data)]])))))

-(defn aws-codedeploy-app-settings [project-data owner]
-  (reify
+(defn aws-codedeploy-app-name [project-data owner]
+  (reify
+    om/IRender
+    (render [_]
+      (let [controls-ch (om/get-shared owner [:comms :controls])
+            input-path (fn [& ks] (apply conj state/inputs-path :aws :services :codedeploy ks))]
+        (html
+          [:div
+           [:form
+            [:input#application-name
+              {:required true, :type "text"
+               :on-change #(utils/edit-input controls-ch (conj state/inputs-path :project-settings-codedeploy-app-name) %)}]
+            [:label {:placeholder "Application Name"}]
+            [:input {:value "Add app settings",
+                     :type "submit"
+                     :on-click #(do
+                                 (put! controls-ch [:new-codedeploy-app-name-entered])
+                                 false)}]]])))))
+
+(defn aws-codedeploy-app-details [project-data owner]
+  (reify
+    om/IDidMount
+    (did-mount [_]
+      (let [project (:project project-data)
+            applications (get-in project [:aws :services :codedeploy])
+            [app-name _] (first applications)]
+        (utils/popover "#app-root-popover-hack"
+                       {:html true :delay 0 :animation false
+                        :placement "right" :title "Application Root"
+                        :content (node [:p "The directory in your repo to package up into an application revision. "
+                                           "This is relative to your repo's root, " [:code "/"] " means the repo's root "
+                                           "directory, " [:code "/app"] " means the app directory in your repo's root "
+                                           "directory."])})
+        (utils/popover "#bucket-popover-hack"
+                       {:html true :delay 0 :animation false
+                        :placement "right" :title "Revision Location: Bucket Name"
+                        :content (node [:p "The name of the S3 bucket CircleCI should store application revisions for \"" (name app-name) "\" in."])})
+        (utils/popover "#key-pattern-popover-hack"
+                       {:html true :delay 0 :animation false
+                        :placement "right" :title "Revision Location: Key Pattern"
+                        :content (node [:p "A template used to construct S3 keys for storing application revisions."
+                                           "You can use " [:a {:href "/docs/continuous-deployment-with-amazon-codedeploy#key-patterns"} "substitution variables"]
+                                           " in the Key Pattern to generate a unique key for each build."])})))
     om/IRender
     (render [_]
       (let [project (:project project-data)
@@ -1144,78 +1185,65 @@
             controls-ch (om/get-shared owner [:comms :controls])
             input-path (fn [& ks] (apply conj state/inputs-path :aws :services :codedeploy ks))]
         (html
-          (if (not (seq applications))
-            ;; No settings set, need to get the application name first
-            [:div
-             [:form
-              [:input#application-name
-                {:required true, :type "text"
-                 :on-change #(utils/edit-input controls-ch (conj state/inputs-path :project-settings-codedeploy-app-name) %)}]
-              [:label {:placeholder "Application Name"}]
-              [:input {:value "Add app settings",
-                       :type "submit"
-                       :on-click #(do
-                                   (put! controls-ch [:new-codedeploy-app-name-entered])
-                                   false)}]]]
-            ;; Once we have an application name we can accept the rest of the settings
-            [:form
-             [:legend (name app-name)]
-
-             [:div.styled-select
-               [:select {:class (when (not aws-region) "placeholder")
-                         :value (or aws-region "")
-                         ;; Updates the project cursor in order to trigger a re-render
-                         :on-change #(utils/edit-input controls-ch (conj state/project-path :aws :services :codedeploy app-name :region) %)}
-                 [:option {:value ""} "Choose AWS Region..."]
-                 [:option {:disabled "disabled"} "-----"]
-                 [:option {:value "us-east-1"} "us-east-1"]
-                 [:option {:value "us-west-2"} "us-west-2"]]
-               [:i.fa.fa-chevron-down]]
-
-             [:p "The directory in your repo to package up into an application revision. "
-                 "This is relative to your repo's root, " [:code "/"] " means the repo's root "
-                 "directory, " [:code "/app"] " means the app directory in your repo's root directory."]
-             [:input#application-root
-              {:required true, :type "text", :value (or application-root "")
-               :on-change #(utils/edit-input controls-ch (input-path app-name :application_root) %)}]
-             [:label {:placeholder "Application Root"}]
-
-             [:fieldset
-              [:h5 "Revision Location"]
-              [:p "The name of the bucket and key CircleCI should use to store application revisions for " (name app-name) ". "
-                  "You can use " [:a {:href "/docs/continuous-deployment-with-amazon-codedeploy#key-patterns"} "substitution variables"]
-                  " in the Key Pattern to generate a unique key for each build."]
-              [:input#s3-bucket
-               {:required true, :type "text", :value (or bucket "")
-                :on-change #(utils/edit-input controls-ch (input-path app-name :revision_location :bucket) %)}]
-              [:label {:placeholder "Bucket Name"}]
-
-              [:input#s3-key-prefix
-               {:required true, :type "text", :value (or key_pattern "")
-                :on-change #(utils/edit-input controls-ch (input-path app-name :revision_location :key_pattern) %)}]
-              [:label {:placeholder "Key Pattern"}]]
-
-             [:div.buttons
-               (forms/managed-button
-                [:input {:data-failed-text "Failed",
-                         :data-success-text "Saved",
-                         :data-loading-text "Saving...",
-                         :value "Save app",
-                         :type "submit"
-                         :on-click #(do
-                                      (put! controls-ch [:saved-project-settings {:project-id project-id
-                                                                                :merge-paths [[:aws :services :codedeploy]]}])
-                                      false)}])
-               (forms/managed-button
-                [:input.remove {:data-failed-text "Failed",
-                                :data-success-text "Removed",
-                                :data-loading-text "Removing...",
-                                :value "Remove app",
-                                :type "submit"
-                                :on-click #(do
-                                             (put! controls-ch [:edited-input {:path (input-path) :value nil}])
-                                             (put! controls-ch [:saved-project-settings {:project-id project-id}])
-                                             false)}])]]))))))
+         [:form
+          [:legend (name app-name)]
+
+          [:fieldset
+           [:div.styled-select
+            [:select {:class (when (not aws-region) "placeholder")
+                      :value (or aws-region "")
+                      ;; Updates the project cursor in order to trigger a re-render
+                      :on-change #(utils/edit-input controls-ch (conj state/project-path :aws :services :codedeploy app-name :region) %)}
+             [:option {:value ""} "Choose AWS Region..."]
+             [:option {:disabled "disabled"} "-----"]
+             [:option {:value "us-east-1"} "us-east-1"]
+             [:option {:value "us-west-2"} "us-west-2"]]
+            [:i.fa.fa-chevron-down]]
+
+           [:div.input-with-help
+            [:input#application-root
+             {:required true, :type "text", :value (or application-root "")
+              :on-change #(utils/edit-input controls-ch (input-path app-name :application_root) %)}]
+            [:label {:placeholder "Application Root"}]
+            [:i.fa.fa-question-circle#app-root-popover-hack {:title "Application Root"}]]]
+
+          [:fieldset
+           [:h5 "Revision Location"]
+           [:div.input-with-help
+            [:input#s3-bucket
+             {:required true, :type "text", :value (or bucket "")
+              :on-change #(utils/edit-input controls-ch (input-path app-name :revision_location :bucket) %)}]
+            [:label {:placeholder "Bucket Name"}]
+            [:i.fa.fa-question-circle#bucket-popover-hack {:title "S3 Bucket Name"}]]
+
+           [:div.input-with-help
+            [:input#s3-key-prefix
+             {:required true, :type "text", :value (or key_pattern "")
+              :on-change #(utils/edit-input controls-ch (input-path app-name :revision_location :key_pattern) %)}]
+            [:label {:placeholder "Key Pattern"}]
+            [:i.fa.fa-question-circle#key-pattern-popover-hack {:title "S3 Key Pattern"}]]]
+
+          [:div.buttons
+           (forms/managed-button
+            [:input {:data-failed-text "Failed",
+                     :data-success-text "Saved",
+                     :data-loading-text "Saving...",
+                     :value "Save app",
+                     :type "submit"
+                     :on-click #(do
+                                  (put! controls-ch [:saved-project-settings {:project-id project-id
+                                                                              :merge-paths [[:aws :services :codedeploy]]}])
+                                  false)}])
+           (forms/managed-button
+            [:input.remove {:data-failed-text "Failed",
+                            :data-success-text "Removed",
+                            :data-loading-text "Removing...",
+                            :value "Remove app",
+                            :type "submit"
+                            :on-click #(do
+                                         (put! controls-ch [:edited-input {:path (input-path) :value nil}])
+                                         (put! controls-ch [:saved-project-settings {:project-id project-id}])
+                                         false)}])]])))))

 (defn aws-codedeploy [project-data owner]
@@ -1245,7 +1273,11 @@
                  "deployment group and, optionally, deployment configuration, in each deployment "
                  "block in your " [:a {:href "/docs/configuration#deployment"} "circle.yml file"] ". "
                  "If you skip this step you will need to add all deployment settings into your circle.yml file."]
-             (om/build aws-codedeploy-app-settings project-data)]
+             (if (not (seq applications))
+               ;; No settings set, need to get the application name first
+               (om/build aws-codedeploy-app-name project-data)
+               ;; Once we have an application name we can accept the rest of the settings
+               (om/build aws-codedeploy-app-details project-data))]
             [:div.aws-codedeploy-step
              [:h4 "Step 3"]
              [:p "Add deployment settings to your "


Updated column data.

Updated column data.

--- src/cmr_edsc_stubs/data/service.clj
+++ src/cmr_edsc_stubs/data/service.clj
@@ -1,5 +1,6 @@
 (ns cmr-edsc-stubs.data.service
-  (:require [clj-time.local :as time]))
+  (:require [clj-time.coerce :as tc]
+            [clj-time.local :as time]))

 (defn create
   ([provider-id concept-id source-fn]
@@ -10,7 +11,7 @@
     (create provider-id concept-id service-name metadata
                     (str (java.util.UUID/randomUUID))))
   ([provider-id concept-id service-name metadata native-id]
-    (let [now (time/local-now)]
+    (let [now (tc/to-sql-time (time/local-now))]
       {;:id
        :concept-id concept-id
        :native-id native-id
@@ -19,7 +20,7 @@
        :revision-id 1
        :revision-date now
        :created-at now
-       :deleted false
+       :deleted 0
        :user-id "cmr-stubbed-data"
        :service-name service-name
        ;:transaction-id


No more declares.

No more declares.

--- src/com/lemondronor/turboshrimp.clj
+++ src/com/lemondronor/turboshrimp.clj
@@ -12,8 +12,6 @@
 (def navdata-port 5554)
 (def drones (atom {}))
 (def socket-timeout (atom 60000))
-(declare mdrone)
-(declare drone-init-navdata)

 (defrecord Drone
@@ -54,12 +52,6 @@
       :navdata-socket (DatagramSocket.)
       :nav-data (atom {})})))

-(defn connect! [drone]
-  (swap! drones assoc (:name drone) drone)
-  (mdrone (:name drone) :flat-trim)
-  drone)
-
-
 (defn send-at-command [name ^String data]
   (let [^InetAddress host (:host (name @drones))
         ^Long at-port (:at-port (name @drones))
@@ -76,6 +68,11 @@

 (defn drone [command-key & [w x y z]]
   (mdrone :default command-key w x y z))
+
+(defn connect! [drone]
+  (swap! drones assoc (:name drone) drone)
+  (mdrone (:name drone) :flat-trim)
+  drone)

 (defn mdrone-do-for [name seconds command-key & [w x y z]]
   (when (pos? seconds)


changed scheduling for a page

changed scheduling for a page

--- src/crawler/rich_char_extractor.clj
+++ src/crawler/rich_char_extractor.clj
@@ -104,7 +104,8 @@
                                                            '()
                                                            info)]
                                       {:xpath potential-xpath
-                                       :score potential-score
+                                       :score (/ potential-score
+                                                 (count potential-hrefs))
                                        :hrefs potential-hrefs
                                        :texts potential-texts}))
                                   xpaths-anchors-chars))]


Initialise kid binding with empty atoms

Initialise kid binding with empty atoms

--- src/cljs/hacker_agent/hacker-base.cljs
+++ src/cljs/hacker_agent/hacker-base.cljs
@@ -103,16 +103,28 @@
         child-path (conj path key)]
     (case event
       :child_added (if (= key :kids)
-                     (doseq [id val]
-                       (bind! data (conj child-path id)
-                              (id->fbref id)
-                              item-binder))
-                     (swap! data assoc-in child-path val))
-      :child_changed (if (= key :kids)
+                     (do
+                       (swap! data
+                              (fn [d]
+                                (apply update-in d child-path assoc
+                                       (reduce #(into %1 [%2 {}])
+                                               [] val))))
                        (doseq [id val]
                          (bind! data (conj child-path id)
                                 (id->fbref id)
-                                item-binder))
+                                item-binder)))
+                     (swap! data assoc-in child-path val))
+      :child_changed (if (= key :kids)
+                       (do
+                         (swap! data
+                                (fn [d]
+                                  (apply update-in d child-path assoc
+                                         (reduce #(into %1 [%2 {}])
+                                                 [] val))))
+                         (doseq [id val]
+                           (bind! data (conj child-path id)
+                                  (id->fbref id)
+                                  item-binder)))
                        (swap! data assoc-in child-path val))
       :child_removed (swap! data update-in path dissoc key)
       (.log js/console (clj->js [event key val])))) )


Added granule search by short_name and version.

--- src/cmr/search/services/parameters.clj
+++ src/cmr/search/services/parameters.clj
@@ -27,7 +27,9 @@
    :granule {:granule_ur :string
              :collection_concept_id :string
              :provider :collection-query
-             :entry_title :collection-query}})
+             :entry_title :collection-query
+             :short_name :collection-query
+             :version :collection-query}})

 (defn- param-name->type
   "Returns the query condition type based on the given concept-type and param-name."


printing deep traced tree is working!

printing deep traced tree is working!

--- src/com/billpiel/sayid/deep_trace2.clj
+++ src/com/billpiel/sayid/deep_trace2.clj
@@ -200,7 +200,7 @@

 (defn mk-tree-template
   [src-map fn-meta path parent-path & {:keys [macro?]}]
-  (let [sub-src-map (-> #spy/d path
+  (let [sub-src-map (-> path
                         path->sym
                         src-map)
         form (if macro?
@@ -208,8 +208,8 @@
                (:x sub-src-map))]
     {:parent-path parent-path
      :name (if (seq? form)
-              (first form)
-              form)
+             (first form)
+             form)
      :form form
      :macro? macro?
      :inner-path path
@@ -241,10 +241,9 @@

 (defn update-tree!
   [tree recent-trees]
-  #spy/d @recent-trees
-  (reset! #spy/d (-> tree
-                     :inner-path
-                     (@recent-trees))
+  (reset! (-> tree
+              :inner-path
+              (@recent-trees))
           tree))

 (defn conj-to-parent!
@@ -258,8 +257,7 @@
   (swap! recent-trees
          assoc
          (:inner-path @tree-atom)
-         tree-atom)
-  #spy/d @recent-trees)
+         tree-atom))

 (defn mk-recent-tree-at-inner-path
   [inner-path recent-trees]
@@ -303,9 +301,9 @@
 (defn tr-fn
   [inner-path [recent-trees src-map] template f]
   (fn [& args]
-    (let [this (-> @(produce-recent-tree-atom! #spy/d inner-path
+    (let [this (-> @(produce-recent-tree-atom! inner-path
                                                recent-trees)
-                   (merge #spy/d template)
+                   (merge template)
                    (assoc :args (vec args)
                           :arg-map (delay (zipmap (:arg-forms template)
                                                   args))
@@ -421,11 +419,6 @@

 (defn xpand-fn
   [head form src-map fn-meta path parent-path]
-  #spy/d head
-  #spy/d form
-  #spy/d path
-  #spy/d parent-path
-
   (xpand-fn-form head
                  (xpand-all form
                             src-map
@@ -488,7 +481,7 @@
         xform (xpand-form form expr-map parent-fn-meta)]
     `(let [~'$$ [(atom {}) '~expr-map]
            ~'$return ~xform]
-       (record-trace-tree ~'$$)
+       (record-trace-tree! ~'$$)
        ~'$return)))

 #(do
@@ -510,8 +503,35 @@

    (-/p (eval (xpand form3 {:name "name1" :ns "ns1"} )))

+   (let [parent {:depth 2 :path [:11 :22] :children (atom [])}]
+     (binding [trace/*trace-log-parent* parent]
+       (eval (xpand form3 {:name "name1" :ns "ns1"} )))
+     (-/p parent))
+
+   (let [parent {:depth 2
+                 :path [:11 :22]
+                 :children (atom [])
+                 :args []
+                 :name 'dummy
+                 :return nil
+                 :arg-map {}
+                 :id :22}
+         traced-fn (deep-tracer {:workspace nil
+                                 :qual-sym 'com.billpiel.sayid.deep-trace2/f1
+                                 :meta' (meta #'f1)
+                                 :ns' 'com.billpiel.sayid.deep-trace2})]
+     (binding [trace/*trace-log-parent* parent]
+       (-/p (traced-fn 23)))
+     (def p' parent)
+     (-/p parent))
+
+   ;; ffff

    (comment))
+
+(defn f1 [a] (if (= 1 2)
+               (inc a)
+               (-> a dec str keyword)))

 (defn xpand-bod
   [fn-bod parent-fn-meta]
@@ -527,86 +547,22 @@
     (cons (first form)
           bods)))

-(defn log->tree1
-  [log src-map fn-meta]
-  (loop [[[path val & tags] & tail] log
-         agg {}]
-    (if path
-      (let [path' (interleave (repeat :children) path) ;; TODO the map won't preserve order
-            sub-map (-> path
-                        path->sym
-                        src-map)
-            agg' (update-in agg path'
-                            #(merge %
-                                    {:form (:orig sub-map)
-                                     :return val
-                                     :path path
-                                     :tags tags
-                                     :src-map sub-map
-                                     :fn-meta fn-meta}))]
-        (recur tail
-               agg'))
-      (-> agg
-          (get nil)
-          (assoc :children
-                 (dissoc (:children agg)
-                         nil))))))
-
-(defn tree1->trace-tree
-  [tree parent src-map]
-  (let [{:keys [form return children tags fn-meta path]} tree
-        trace-tree (if (-> tags
-                           first
-                           #{:fn})
-                     (second tags)
-                     (assoc (trace/mk-tree :parent parent)
-                            :name (if (seq? form) (first form) form)
-                            :form form
-                            :path' path
-                            :parent-name (:name fn-meta)
-                            :ns (-> fn-meta :ns str symbol)
-                            :args []                  ;;TODO
-                            :arg-map {}               ;;TODO
-                                        ; :src-map src-map
-                            :started-at nil
-                            :ended-at nil
-                            :return return))]
-    (assoc trace-tree
-           :children
-           (mapv #(-> %
-                      second
-                      (tree1->trace-tree trace-tree
-                                         src-map))
-                 children))))
-
-#_ (defn record-trace-tree
-  [[log src-map]]
-  (swap! (:children trace/*trace-log-parent*)
-         conj
-         (-> @log
-             (log->tree1 src-map fn-meta)
-             (tree1->trace-tree trace/*trace-log-parent*
-                                src-map))))
-
-(defn record-trace-tree
-  [[log src-map]]
-  #spy/d (@log nil)
-  (def log' @log)
-#_  (loop [[head & body] log
-         tree-map {}
-         mailbox {}]
-    (if head
-      (let [path (:path head)
-            tree-tmplt (tree-tmplts path)
-            inbox (mailbox path)
-            tree (mk-tree )
-
-
-            (assoc tree-map
-                   path
-                   ()
-                   )])
-      tree-map)))
+(defn deref-children
+  [tree-atom]
+  (swap! (:children @tree-atom)
+         #(mapv deref-children %))
+  @tree-atom)
+
+(defn record-trace-tree!
+  [[tree-atom src-map]]
+  (let [children (-> (@tree-atom nil)
+                     deref-children
+                     :children
+                     deref)]
+    (doseq [child children]
+      (swap! (:children trace/*trace-log-parent*)
+             conj
+             child))))

 (defn get-fn
   [[d s f & r]]
@@ -624,14 +580,12 @@
   (let [src (-> qual-sym
                 symbol
                 util/hunt-down-source)
-        xsrc (clojure.walk/macroexpand-all src)
-        traced-form (-> src
+        traced-form (-> #spy/d src
                         macroexpand
                         get-fn
                         (xpand-fn* meta'))]
     (util/eval-in-ns (-> ns' str symbol)
                      traced-form)))
-

 (defn ^{::trace/trace-type :deep-fn} composed-tracer-fn
   [m _]


Remove post-statement fn

Remove post-statement fn

--- src/discuss/communication/main.cljs
+++ src/discuss/communication/main.cljs
@@ -2,7 +2,6 @@
   "Functions concerning the communication with the remote discussion system."
   (:require [ajax.core :refer [GET POST]]
             [goog.string :refer [htmlEscape]]
-            [discuss.config :as config]
             [discuss.utils.common :as lib]
             [discuss.references.integration :as rint]
             [discuss.communication.lib :as comlib]
@@ -49,11 +48,29 @@
   ([url body]
    (post-json url body process-url-handler {"Content-Type" "application/json"})))

-(defn- post-statement [statement reference origin add-type]
+#_(defn- post-statement [statement reference origin add-type]
   (let [app @lib/app-state
         url (get-in config/api [:add add-type])
         headers (merge {"Content-Type" "application/json"} (comlib/token-header))
         body {:statement     (htmlEscape statement)
+              :reference     (htmlEscape reference)
+              :origin        origin
+              :conclusion_id (get-conclusion-id)            ; Relevant for add-start-premise
+              :supportive    (get-in app [:discussion :is_supportive])
+              :arg_uid       (get-in app [:discussion :arg_uid]) ; For premisses for arguments
+              :attack_type   (get-in app [:discussion :attack_type])
+              :host          js/location.host
+              :path          js/location.pathname
+              :issue_id      (get-in app [:issues :uid])
+              :slug          (get-in app [:issues :slug])}]
+    (post-json url body process-url-handler headers)))
+
+(defn- post-statement [statement reference origin add-type]
+  (let [;; app @lib/app-state
+        ;; url (get-in config/api [:add add-type])
+        url (lib/get-last-api)
+        headers (merge {"Content-Type" "application/json"} (comlib/token-header))
+        body nil #_{:statement     (htmlEscape statement)
               :reference     (htmlEscape reference)
               :origin        origin
               :conclusion_id (get-conclusion-id)            ; Relevant for add-start-premise
@@ -71,7 +88,8 @@
 (defn dispatch-add-action
   "Check which action needs to be performed based on the type previously stored in the app-state."
   ([statement reference origin]
-   (let [action (get-in @lib/app-state [:layout :add-type])
+
+   #_(let [action (get-in @lib/app-state [:layout :add-type])
          statement (or (:content origin) statement)]
      (case action
        :add-start-statement (post-statement statement reference origin :add-start-statement)


+(defn morph)

+(defn morph)

--- src/babel/francais.cljc
+++ src/babel/francais.cljc
@@ -4,7 +4,14 @@
    [babel.francais.morphology :as morph :refer [fo]]
    [babel.generate :as generate]
    [babel.parse :as parse]
+   [clojure.repl :refer [doc]]
    [clojure.string :as string]))
+
+;; can't decide between 'morph' or 'fo' or something other better name.
+(defn morph [expr & {:keys [from-language show-notes]
+                     :or {from-language nil
+                          show-notes false}}]
+  (fo expr :from-language from-language :show-notes show-notes))

 (def small-model (promise))
 (defn small [] (if (realized? small-model)


enable truncation

enable truncation

--- src/babel/generate.cljc
+++ src/babel/generate.cljc
@@ -51,6 +51,7 @@

 (defn generate-all [spec model & [depth max-depth]]
   (let [depth (or depth 0)
+        truncate true
         max-depth (or max-depth max-total-depth)]
     (log/debug (str "generate-all:" depth "/" max-depth ":         " (strip-refs spec)))
     (filter not-fail?
@@ -62,7 +63,10 @@
                                  bolt-and-comps (dissoc bolt-and-comps [])]
                              (cons bolt
                                    (map (fn [path]
-                                          (assoc-in bolt path (get bolt-and-comps path)))
+                                          (let [result (assoc-in bolt path (get bolt-and-comps path))]
+                                            (if (= true truncate)
+                                              (dissoc-paths result [path])
+                                              result)))
                                         (keys bolt-and-comps)))))
                     model))
                  (mapcat (fn [each-bolt-and-comps]


more info on the upsert exception

more info on the upsert exception

--- src/er_cassandra/model/alia/upsert.clj
+++ src/er_cassandra/model/alia/upsert.clj
@@ -6,6 +6,7 @@
     [data :refer [pair]]]
    [cats.labs.manifold :refer [deferred-context]]
    [clojure.set :as set]
+   [clojure.pprint :refer [pprint]]
    [er-cassandra
     [key :as k]
     [record :as r]]
@@ -280,7 +281,10 @@
               {:message (str "this entity has foreign keys, "
                              "so requires the previous version "
                              "to upsert. either use select-upsert"
-                             "or change")})))]
+                             "or change")
+               :entity (with-out-str (pprint entity))
+               :record record
+               :opts opts})))]

     (upsert-changes*
      session


Closes the file automatically after digesting it using the IDigest protocol.

--- src/buddy/core/hash.clj
+++ src/buddy/core/hash.clj
@@ -149,7 +149,8 @@

   java.io.File
   (-digest [^java.io.File input engine]
-    (hash-stream-data (io/input-stream input) engine))
+    (with-open [is (io/input-stream input)]
+      (hash-stream-data is engine)))

   java.net.URL
   (-digest [^java.net.URL input engine]


Rework the code that reverse-engineers the Clojure function name from the Java class name

--- src/main/clojure/cascade/exception.clj
+++ src/main/clojure/cascade/exception.clj
@@ -45,12 +45,12 @@
   [class-name method-name]
   (when (contains? #{"invoke" "doInvoke"} method-name)
     (let [[namespace-name & raw-function-ids] (s2/split class-name #"\$")
-          function-ids (map #(nth (first (re-seq #"(\w+)(__\d+)?" %)) 1 nil) raw-function-ids)
+          function-ids (map #(or (nth (first (re-seq #"([\w|.|-]+)__\d+?" %)) 1 nil) %) raw-function-ids)
           function-names (map #(s2/replace % \_ \-) function-ids)]
       (if-not (empty? raw-function-ids)
         (template
           namespace-name "/" (s2/join "/" function-names)
-          :span {:class :c-omitted} [" " class-name "." method-name])))))
+          :span {:class :c-omitted} [:&nbsp class-name "." method-name])))))

 (defn transform-stack-frame
   [^StackTraceElement element]