(defproject clj-record "1.1.0"
  :description "A pseudo-port of ActiveRecord to the Clojure programming language"
  :url "http://github.com/duelinmarkers/clj-record"
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [org.clojure/java.jdbc "0.0.6"]]
  :dev-dependencies [[lein-clojars "0.6.0"]
                     [swank-clojure/swank-clojure "1.2.1"]
                     [mysql/mysql-connector-java "5.1.17"]])

(ns leiningen.reset-db
  (:require leiningen.compile))

(defn reset-db [project]
  (leiningen.compile/eval-in-project project
    '(do
      (clj-record.test-helper/reset-db))
    nil nil (require 'clj-record.test-helper)))

(defproject clj-record "1.1.1-SNAPSHOT"
  :description "A pseudo-port of ActiveRecord to the Clojure programming language"
  :url "http://github.com/duelinmarkers/clj-record"
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [org.clojure/java.jdbc "0.0.6"]]
  :dev-dependencies [[lein-clojars "0.6.0"]
                     [swank-clojure/swank-clojure "1.2.1"]
                     [mysql/mysql-connector-java "5.1.17"]])

(ns leiningen.reset-db
  (:require leiningen.compile))

(defn reset-db [project]
  (leiningen.compile/eval-in-project project
    '(do
      (clj-record.test-helper/reset-db))
    nil nil (require 'clj-record.test-helper)))

Switch back to snapshot version.

Switch back to snapshot version.


(defproject viewer "0.1.0-SNAPSHOT"
  :description "EVE Online Data Dump Viewer"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/java.jdbc "0.3.2"]
                 [postgresql "9.1-901.jdbc4"]
                 [ring/ring-jetty-adapter "1.2.1"]
                 [compojure "1.1.6"]
                 [org.clojure/data.json "0.2.4"]
                 [hiccup "1.0.4"]]
  :plugins [[lein-ring "0.8.10"]]
  :ring {:handler viewer.core/app})

(defproject viewer "0.1.0-SNAPSHOT"
  :description "EVE Online Data Dump Viewer"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.6.0-RC1"]
                 [org.clojure/java.jdbc "0.3.2"]
                 [postgresql "9.1-901.jdbc4"]
                 [ring/ring-jetty-adapter "1.2.1"]
                 [compojure "1.1.6"]
                 [org.clojure/data.json "0.2.4"]
                 [hiccup "1.0.4"]]
  :plugins [[lein-ring "0.8.10"]]
  :ring {:handler viewer.core/app})

Switch to Clojure version 1.6.0-RC1.

Switch to Clojure version 1.6.0-RC1.


(defproject xray-charlie-charlie "0.1.0-SNAPSHOT"
  :description "Clojure wrapper of MarkLogic XCC/J client API"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.8.0"]
                 [com.marklogic/marklogic-xcc "8.0.5"]
                 [org.clojure/data.json "0.2.6"]
                 [org.clojure/data.xml "0.0.8"]]
  :repositories [["MarkLogic-releases" "http://developer.marklogic.com/maven2"]])

(defproject xray-charlie-charlie "0.1.0"
  :description "Clojure wrapper of MarkLogic XCC/J client API"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.8.0"]
                 [com.marklogic/marklogic-xcc "8.0.5"]
                 [org.clojure/data.json "0.2.6"]
                 [org.clojure/data.xml "0.0.8"]]
  :repositories [["MarkLogic-releases" "http://developer.marklogic.com/maven2"]])

Bump ourselves out of SNAPSHOT to 0.1.0

Bump ourselves out of SNAPSHOT to 0.1.0


(defproject compojure "1.3.3"
  :description "A concise routing library for Ring"
  :url "https://github.com/weavejester/compojure"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/tools.macro "0.1.5"]
                 [clout "2.1.1"]
                 [medley "0.5.5"]
                 [ring/ring-core "1.3.2"]
                 [ring/ring-codec "1.0.0"]]
  :plugins [[codox "0.8.10"]]
  :codox {:src-dir-uri "http://github.com/weavejester/compojure/blob/1.3.3/"
          :src-linenum-anchor-prefix "L"}
  :profiles
  {:dev {:jvm-opts ^:replace []
         :dependencies [[ring/ring-mock "0.2.0"]
                        [criterium "0.4.3"]
                        [javax.servlet/servlet-api "2.5"]]}
   :1.6 {:dependencies [[org.clojure/clojure "1.6.0"]]}
   :1.7 {:dependencies [[org.clojure/clojure "1.7.0-beta2"]]}})

(defproject compojure "1.3.3"
  :description "A concise routing library for Ring"
  :url "https://github.com/weavejester/compojure"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/tools.macro "0.1.5"]
                 [clout "2.1.2"]
                 [medley "0.5.5"]
                 [ring/ring-core "1.3.2"]
                 [ring/ring-codec "1.0.0"]]
  :plugins [[codox "0.8.10"]]
  :codox {:src-dir-uri "http://github.com/weavejester/compojure/blob/1.3.3/"
          :src-linenum-anchor-prefix "L"}
  :profiles
  {:dev {:jvm-opts ^:replace []
         :dependencies [[ring/ring-mock "0.2.0"]
                        [criterium "0.4.3"]
                        [javax.servlet/servlet-api "2.5"]]}
   :1.6 {:dependencies [[org.clojure/clojure "1.6.0"]]}
   :1.7 {:dependencies [[org.clojure/clojure "1.7.0-beta2"]]}})

Update Clout dependency for Instaparse 1.4.0


(defproject onyx-app/lein-template "0.11.0.0"
  :description "Onyx Leiningen application template"
  :url "https://github.com/onyx-platform/onyx-template"
  :license {:name "MIT License"
            :url "http://choosealicense.com/licenses/mit/#"}
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :plugins [[lein-set-version "0.4.1"]]
  :profiles {:dev {:plugins [[lein-set-version "0.4.1"]
                             [lein-update-dependency "0.1.2"]
                             [lein-pprint "1.1.1"]]}}
  :eval-in-leiningen true)

(defproject onyx-app/lein-template "0.11.0.1-SNAPSHOT"
  :description "Onyx Leiningen application template"
  :url "https://github.com/onyx-platform/onyx-template"
  :license {:name "MIT License"
            :url "http://choosealicense.com/licenses/mit/#"}
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :plugins [[lein-set-version "0.4.1"]]
  :profiles {:dev {:plugins [[lein-set-version "0.4.1"]
                             [lein-update-dependency "0.1.2"]
                             [lein-pprint "1.1.1"]]}}
  :eval-in-leiningen true)

Prepare for next release cycle.

Prepare for next release cycle.


(defproject strava-activity-graphs "0.1.0-SNAPSHOT"
  :description "Generate statistical charts for Strava activities"
  :url "https://github.com/nicokosi/strava-activity-graphs"
  :license {:name "Creative Commons Attribution 4.0"
            :url  "https://creativecommons.org/licenses/by/4.0/"}
  :dependencies [[org.clojure/clojure "1.10.3"]
                 [incanter/incanter-core "1.9.3"]
                 [incanter/incanter-charts "1.9.3"]
                 [incanter/incanter-io "1.9.3"]
                 [org.clojure/data.json "1.0.0"]
                 [clj-http "3.12.1"]
                 [slingshot "0.12.2"]]
  :plugins [[lein-cljfmt "0.7.0"]]
  :main ^:skip-aot strava-activity-graphs.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})

(defproject strava-activity-graphs "0.1.0-SNAPSHOT"
  :description "Generate statistical charts for Strava activities"
  :url "https://github.com/nicokosi/strava-activity-graphs"
  :license {:name "Creative Commons Attribution 4.0"
            :url  "https://creativecommons.org/licenses/by/4.0/"}
  :dependencies [[org.clojure/clojure "1.10.3"]
                 [incanter/incanter-core "1.9.3"]
                 [incanter/incanter-charts "1.9.3"]
                 [incanter/incanter-io "1.9.3"]
                 [org.clojure/data.json "2.3.0"]
                 [clj-http "3.12.1"]
                 [slingshot "0.12.2"]]
  :plugins [[lein-cljfmt "0.7.0"]]
  :main ^:skip-aot strava-activity-graphs.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})

Update dependency org.clojure:data.json to v2


(defproject sqls "0.1.0-SNAPSHOT"
  :description "SQLS"
  :url "https://bitbucket.org/mpietrzak/sqls"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [
                 [org.clojure/clojure "1.6.0-beta2"]
                 [org.clojure/data.json "0.2.4"]
                 [org.clojure/java.jdbc "0.3.3"]
                 [org.clojure/tools.logging "0.2.6"]
                 [org.xerial/sqlite-jdbc "3.7.2"]
                 [seesaw "1.4.4"]
                 ]
  ; :main ^:skip-aot sqls.core
  :main sqls.core
  :java-source-paths ["src"]
  :target-path "target/%s"
  :plugins [[codox "0.6.7"]
            [lein-ancient "0.5.5"]]
  :profiles {:uberjar {:aot :all}}
  :jvm-opts ["-Xms4M" "-Xmx1G" "-XX:-PrintGC"])

(defproject sqls "0.1.0-SNAPSHOT"
  :description "SQLS"
  :url "https://bitbucket.org/mpietrzak/sqls"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [
                 [org.clojure/clojure "1.6.0"]
                 [org.clojure/data.json "0.2.4"]
                 [org.clojure/java.jdbc "0.3.3"]
                 [org.clojure/tools.logging "0.2.6"]
                 [org.xerial/sqlite-jdbc "3.7.2"]
                 [seesaw "1.4.4"]
                 ]
  ; :main ^:skip-aot sqls.core
  :main sqls.core
  :java-source-paths ["src"]
  :target-path "target/%s"
  :plugins [[codox "0.6.7"]
            [lein-ancient "0.5.5"]]
  :profiles {:uberjar {:aot :all}}
  :jvm-opts ["-Xms4M" "-Xmx1G" "-XX:-PrintGC"])

Update Clojure dependency to 1.6.0

Update Clojure dependency to 1.6.0


(defproject onyx-app/lein-template "0.12.7.0"
  :description "Onyx Leiningen application template"
  :url "https://github.com/onyx-platform/onyx-template"
  :license {:name "MIT License"
            :url "http://choosealicense.com/licenses/mit/#"}
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :plugins [[lein-set-version "0.4.1"]]
  :profiles {:dev {:plugins [[lein-set-version "0.4.1"]
                             [lein-update-dependency "0.1.2"]
                             [lein-pprint "1.1.1"]]}}
  :eval-in-leiningen true)

(defproject onyx-app/lein-template "0.12.7.1-SNAPSHOT"
  :description "Onyx Leiningen application template"
  :url "https://github.com/onyx-platform/onyx-template"
  :license {:name "MIT License"
            :url "http://choosealicense.com/licenses/mit/#"}
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :plugins [[lein-set-version "0.4.1"]]
  :profiles {:dev {:plugins [[lein-set-version "0.4.1"]
                             [lein-update-dependency "0.1.2"]
                             [lein-pprint "1.1.1"]]}}
  :eval-in-leiningen true)

Prepare for next release cycle.

Prepare for next release cycle.


(defproject org.onyxplatform/onyx-peer-http-query "0.11.0.0-SNAPSHOT"
  :description "An Onyx health and query HTTP server"
  :url "https://github.com/onyx-platform/onyx-peer-http-query"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.8.0"]
                 ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
                 [org.onyxplatform/onyx "0.11.0-20170913_201413-ge1e4ba6"]
                 [ring/ring-core "1.6.2"]
                 [org.clojure/java.jmx "0.3.4"]
                 [ring-jetty-component "0.3.1"]
                 [cheshire "5.7.0"]]
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :profiles {:dev {:dependencies [[clj-http "3.4.1"]]
                   :plugins [[lein-set-version "0.4.1"]
                             [lein-update-dependency "0.1.2"]
                             [lein-pprint "1.1.1"]]}})

(defproject org.onyxplatform/onyx-peer-http-query "0.11.0.0-SNAPSHOT"
  :description "An Onyx health and query HTTP server"
  :url "https://github.com/onyx-platform/onyx-peer-http-query"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.8.0"]
                 ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
                 [org.onyxplatform/onyx "0.11.0-alpha4"]
                 [ring/ring-core "1.6.2"]
                 [org.clojure/java.jmx "0.3.4"]
                 [ring-jetty-component "0.3.1"]
                 [cheshire "5.7.0"]]
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :profiles {:dev {:dependencies [[clj-http "3.4.1"]]
                   :plugins [[lein-set-version "0.4.1"]
                             [lein-update-dependency "0.1.2"]
                             [lein-pprint "1.1.1"]]}})

Update dependency org.onyxplatform/onyx to version 0.11.0-alpha4.

Automatic commit by lein-unison.


(defproject org.onyxplatform/onyx-datomic "0.7.3-beta7"
  :description "Onyx plugin for Datomic"
  :url "https://github.com/MichaelDrogalis/onyx-datomic"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :dependencies [[org.clojure/clojure "1.7.0"]
                 ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
                 [org.onyxplatform/onyx "0.7.3-20150902_134205-g8bdc527"]]
  :profiles {:dev {:dependencies [[midje "1.7.0"]
                                  [com.datomic/datomic-free "0.9.5153"]]
                   :plugins [[lein-midje "3.1.3"]
                             [lein-set-version "0.4.1"]
                             [lein-pprint "1.1.1"]]}
             :circle-ci {:jvm-opts ["-Xmx4g"]}})

(defproject org.onyxplatform/onyx-datomic "0.7.3-SNAPSHOT"
  :description "Onyx plugin for Datomic"
  :url "https://github.com/MichaelDrogalis/onyx-datomic"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :dependencies [[org.clojure/clojure "1.7.0"]
                 ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
                 [org.onyxplatform/onyx "0.7.3-20150902_134205-g8bdc527"]]
  :profiles {:dev {:dependencies [[midje "1.7.0"]
                                  [com.datomic/datomic-free "0.9.5153"]]
                   :plugins [[lein-midje "3.1.3"]
                             [lein-set-version "0.4.1"]
                             [lein-pprint "1.1.1"]]}
             :circle-ci {:jvm-opts ["-Xmx4g"]}})

Prepare for next release cycle.

Prepare for next release cycle.


(defproject strava-activity-graphs "0.1.0-SNAPSHOT"
  :description "Generate statistical charts for Strava activities"
  :url "https://github.com/nicokosi/strava-activity-graphs"
  :license {:name "Creative Commons Attribution 4.0"
            :url  "https://creativecommons.org/licenses/by/4.0/"}
  :dependencies [[org.clojure/clojure "1.10.1"]
                 [incanter/incanter-core "1.9.3"]
                 [incanter/incanter-charts "1.9.3"]
                 [incanter/incanter-io "1.9.3"]
                 [org.clojure/data.json "0.2.7"]
                 [clj-http "3.10.2"]
                 [slingshot "0.12.2"]]
  :plugins [[lein-cljfmt "0.6.8"]]
  :main ^:skip-aot strava-activity-graphs.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})

(defproject strava-activity-graphs "0.1.0-SNAPSHOT"
  :description "Generate statistical charts for Strava activities"
  :url "https://github.com/nicokosi/strava-activity-graphs"
  :license {:name "Creative Commons Attribution 4.0"
            :url  "https://creativecommons.org/licenses/by/4.0/"}
  :dependencies [[org.clojure/clojure "1.10.1"]
                 [incanter/incanter-core "1.9.3"]
                 [incanter/incanter-charts "1.9.3"]
                 [incanter/incanter-io "1.9.3"]
                 [org.clojure/data.json "1.0.0"]
                 [clj-http "3.10.2"]
                 [slingshot "0.12.2"]]
  :plugins [[lein-cljfmt "0.6.8"]]
  :main ^:skip-aot strava-activity-graphs.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})

Update dependency org.clojure:data.json to v1


(defproject oph/clj-parent "0.1.0"
  :url "http://example.com/FIXME"
  :license {:name "EUPL"
            :url  "http://www.osor.eu/eupl/"}
  :plugins [[lein-modules "0.3.11"]]
  :modules {:inherited {
                        :repositories        [["oph-releases" {:url "https://artifactory.oph.ware.fi/artifactory/oph-sade-release-local"
                                                               :sign-releases false
                                                               :snapshots false}]
                                              ["oph-snapshots" "https://artifactory.oph.ware.fi/artifactory/oph-sade-snapshot-local"]]}})

(defproject oph/clj-parent "0.1.0"
  :url "http://example.com/FIXME"
  :license {:name "EUPL"
            :url  "http://www.osor.eu/eupl/"}
  :plugins [[lein-modules "0.3.11"]]
  :modules {:inherited {
                        :repositories        [["releases" {:url "https://artifactory.oph.ware.fi/artifactory/oph-sade-release-local"
                                                               :sign-releases false
                                                               :snapshots false}]
                                              ["snapshots" "https://artifactory.oph.ware.fi/artifactory/oph-sade-snapshot-local"]]}})

Rename oph repositories to default names


(defproject superstring "3.0.0-SNAPSHOT"
  :description "String manipulation library for clojure and clojurescript"
  :url "http://github.com/expez/superstring"
  :license {:name "Eclipse Public License 1.0"
            :url "http://www.eclipse.org/legal/epl-v10.html"
            :year 2018
            :key "epl-1.0"}
  :plugins [[codox "0.8.11"]]
  :codox {:src-dir-uri "http://github.com/expez/superstring/blob/master/"
          :src-linenum-anchor-prefix "L"}
  :profiles {:dev {:dependencies [[org.clojure/test.check "0.7.0"]
                                  [org.clojure/clojure "1.8.0"]
                                  [org.clojure/clojurescript "1.8.51"]
                                  [com.cemerick/piggieback "0.2.1"]]
                   :repl-options {:init-ns superstring.core
                                  :nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}}})

(defproject superstring "3.0.0-SNAPSHOT"
  :description "String manipulation library for clojure and clojurescript"
  :url "http://github.com/expez/superstring"
  :license {:name "Eclipse Public License 1.0"
            :url "http://www.eclipse.org/legal/epl-v10.html"
            :year 2018
            :key "epl-1.0"}
  :plugins [[codox "0.8.11"]]
  :codox {:src-dir-uri "http://github.com/expez/superstring/blob/master/"
          :src-linenum-anchor-prefix "L"}
  :profiles {:dev {:dependencies [[org.clojure/test.check "0.7.0"]
                                  [org.clojure/clojure "1.9.0"]
                                  [org.clojure/clojurescript "1.10.339"]
                                  [com.cemerick/piggieback "0.2.1"]]
                   :repl-options {:init-ns superstring.core
                                  :nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}}})

Bump clj and cljs versions

Bump clj and cljs versions


(defproject org.onyxplatform/onyx-metrics "0.8.0.1"
  :description "Instrument Onyx workflows"
  :url "https://github.com/MichaelDrogalis/onyx"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [interval-metrics "1.0.0"]
                 [stylefruits/gniazdo "0.4.0"]]
  :java-opts ^:replace ["-server" "-Xmx3g"]
  :global-vars  {*warn-on-reflection* true
                 *assert* false
                 *unchecked-math* :warn-on-boxed}
  :profiles {:dev {:dependencies [^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
                                  [org.onyxplatform/onyx "0.8.0.1"]
                                  [riemann-clojure-client "0.4.1"]]
                   :plugins [[lein-set-version "0.4.1"]
                             [lein-update-dependency "0.1.2"]
                             [lein-pprint "1.1.1"]]}})

(defproject org.onyxplatform/onyx-metrics "0.8.0.2-SNAPSHOT"
  :description "Instrument Onyx workflows"
  :url "https://github.com/MichaelDrogalis/onyx"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :repositories {"snapshots" {:url "https://clojars.org/repo"
                              :username :env
                              :password :env
                              :sign-releases false}
                 "releases" {:url "https://clojars.org/repo"
                             :username :env
                             :password :env
                             :sign-releases false}}
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [interval-metrics "1.0.0"]
                 [stylefruits/gniazdo "0.4.0"]]
  :java-opts ^:replace ["-server" "-Xmx3g"]
  :global-vars  {*warn-on-reflection* true
                 *assert* false
                 *unchecked-math* :warn-on-boxed}
  :profiles {:dev {:dependencies [^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
                                  [org.onyxplatform/onyx "0.8.0.1"]
                                  [riemann-clojure-client "0.4.1"]]
                   :plugins [[lein-set-version "0.4.1"]
                             [lein-update-dependency "0.1.2"]
                             [lein-pprint "1.1.1"]]}})

Prepare for next release cycle.

Prepare for next release cycle.


(defproject org.flatland/useful "0.11.1"
  :description "A collection of generally-useful Clojure utility functions"
  :license {:name "Eclipse Public License - v 1.0"
            :url "http://www.eclipse.org/legal/epl-v10.html"
            :distribution :repo}
  :url "https://github.com/flatland/useful"
  :dependencies [[org.clojure/clojure "1.5.0"]
                 [org.clojure/tools.macro "0.1.1"]
                 [org.clojure/tools.reader "0.7.2"]]
  :aliases {"testall" ["with-profile" "dev,default:dev,1.3,default:dev,1.4,default" "test"]}
  :profiles {:1.4 {:dependencies [[org.clojure/clojure "1.4.0"]]}
             :1.3 {:dependencies [[org.clojure/clojure "1.3.0"]]}}
  :plugins [[codox "0.8.0"]])

(defproject org.flatland/useful "0.11.1"
  :description "A collection of generally-useful Clojure utility functions"
  :license {:name "Eclipse Public License - v 1.0"
            :url "http://www.eclipse.org/legal/epl-v10.html"
            :distribution :repo}
  :url "https://github.com/flatland/useful"
  :dependencies [[org.clojure/clojure "1.5.0"]
                 [org.clojure/tools.macro "0.1.1"]
                 [org.clojure/tools.reader "0.7.2"]]
  :aliases {"testall" ["with-profile" "dev,default:dev,1.3,default:dev,1.4,default" "test"]}
  :profiles {:1.4 {:dependencies [[org.clojure/clojure "1.4.0"]]}
             :1.3 {:dependencies [[org.clojure/clojure "1.3.0"]]}}
  :plugins [[codox "0.8.0"]]
  :codox {:src-dir-uri "http://github.com/flatland/useful/blob/develop/"
          :src-linenum-anchor-prefix "L"})

Put links to source in the generated docs.


(defproject cascalog/carbonite "1.0.1"
  :description "Write Clojure data to and from bytes using Kryo."
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [com.googlecode/kryo "1.04"]]
  :dev-dependencies [[swank-clojure "1.3.3"]]
  :aot [carbonite.JavaBridge]
  :warn-on-reflection true)

(defproject cascalog/carbonite "1.0.2"
  :description "Write Clojure data to and from bytes using Kryo."
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [com.googlecode/kryo "1.04"]]
  :dev-dependencies [[swank-clojure "1.3.3"]]
  :aot [carbonite.JavaBridge]
  :warn-on-reflection true)

Bump to 1.0.2 for cascalog.

Bump to 1.0.2 for cascalog.


{:user
  {:plugins
    [[lein-midje "3.1.3"]
     [com.palletops/pallet-lein "0.6.0-beta.9"]
     [lein-marginalia "0.7.1"]
     [lein-difftest "2.0.0"]
     [cider/cider-nrepl "0.6.0"]
     [lein-ancient "0.6.7"]
     ]
   :dependencies
    [[alembic "0.2.0"]]
   }
}

{:user
  {:plugins
    [[lein-midje "3.2"]
     [lein-marginalia "0.8.0"]
     [lein-ancient "0.6.8"]]}}

Update plugins and remove unused ones

Update plugins and remove unused ones


(ns circle.backend.build.inference.gems-map)

(def gem-package-map
  ;; this is a map of rubygems to the ubuntu packages necessary for this gem to install. Incomplete.
  {"memcached" #{"libmemcached-dev" "libsasl2-dev"}
   "cdamian-geoip_city" #{"libgeoip-dev"}
   "capybara-webkit" #{"libqtwebkit-dev"}
   "pdfkit "#{"wkhtmltopdf"}})

(def blacklisted-gems
  ;; gems that should be removed from the user's gemfile when running
  #{"rb-fsevent" "growl_notify" "autotest-fsevent"})

(def database-yml-gems
  ;; if using any of these gems, they'll need a database.yml. We will
  ;; generate a database.yml for them.

  ["activerecord" "dm-rails"])

(def gem-adapter-map
  {"pg" "postgresql"
   "do_postgres" "postgresql"
   "sqlite3" "sqlite3"
   "mysql" "mysql"
   "mysql2" "mysql2"
   "do_mysql" "mysql"})

(ns circle.backend.build.inference.gems-map)

(def gem-package-map
  ;; this is a map of rubygems to the ubuntu packages necessary for this gem to install. Incomplete.
  {"memcached" #{"libmemcached-dev" "libsasl2-dev"}
   "cdamian-geoip_city" #{"libgeoip-dev"}
   "capybara-webkit" #{"libqtwebkit-dev"}
   "pdfkit "#{"wkhtmltopdf"}})

(def blacklisted-gems
  ;; gems that should be removed from the user's gemfile when running
  #{"rb-fsevent" "growl_notify" "autotest-fsevent"})

(def database-yml-gems
  ;; if using any of these gems, they'll need a database.yml. We will
  ;; generate a database.yml for them.

  ["activerecord" "dm-rails"])

(def gem-adapter-map
  {"pg" "postgresql"
   "do_postgres" "postgresql"
   "sqlite3" "sqlite3"
   "mysql" "mysql"
   "mysql2" "mysql2"
   "do_mysql" "mysql"
   "jberkel-mysql-ruby" "mysql"})

Add support for yet another mysql adapter. Fixes a problem with soundcloud


;; This Source Code Form is subject to the terms of the Mozilla Public
;; License, v. 2.0. If a copy of the MPL was not distributed with this
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
;;
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>

(ns uxbox.frontend.core)

(defmulti -handler
  (comp (juxt :type :dest) second vector))

;; This Source Code Form is subject to the terms of the Mozilla Public
;; License, v. 2.0. If a copy of the MPL was not distributed with this
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
;;
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>

(ns uxbox.frontend.core
  (:require [catacumba.impl.handlers :as cih]
            [catacumba.serializers :as csz])
  (:import ratpack.handling.Context
           ratpack.http.Response
           ratpack.http.MutableHeaders))

(deftype Rsp [data]
  cih/ISend
  (-send [_ ctx]
    (let [^Response response (.getResponse ^Context ctx)
          ^MutableHeaders headers (.getHeaders response)]
      (.set headers "content-type" "application/transit+json")
      (cih/-send (csz/encode data :transit+json) ctx))))

(defn rsp
  "A shortcut for create a response instance."
  [data]
  (Rsp. data))

Add rsp type that properly implements catacumba protocols.

This is a compatibility layer for future support of
content negotiation on catacumba.


(ns uxbox.core
  (:require [beicon.core :as rx]
            [cats.labs.lens :as l]
            [uxbox.state :as st]
            [uxbox.router :as rt]
            [uxbox.rstore :as rs]
            [uxbox.ui :as ui]
            [uxbox.data.load :as dl]))

(enable-console-print!)

(defn main
  "Initialize the storage subsystem."
  []
  (let [lens (l/select-keys [:pages-by-id
                             :shapes-by-id
                             :colors-by-id
                             :projects-by-id])
        stream (->> (l/focus-atom lens st/state)
                    (rx/from-atom)
                    (rx/debounce 1000)
                    (rx/tap #(println "[save]")))]
    (rx/on-value stream #(dl/persist-state %))))

(defonce +setup+
  (do
    (println "bootstrap")

    (st/init)
    (rt/init)
    (ui/init)

    (rs/emit! (dl/load-data))
    (main)))

(ns uxbox.core
  (:require [beicon.core :as rx]
            [cats.labs.lens :as l]
            [uxbox.state :as st]
            [uxbox.router :as rt]
            [uxbox.rstore :as rs]
            [uxbox.ui :as ui]
            [uxbox.data.load :as dl]))

(enable-console-print!)

(defn main
  "Initialize the storage subsystem."
  []
  (let [lens (l/select-keys [:pages-by-id
                             :shapes-by-id
                             :colors-by-id
                             :projects-by-id])
        stream (->> (l/focus-atom lens st/state)
                    (rx/from-atom)
                    (rx/dedupe)
                    (rx/debounce 1000)
                    (rx/tap #(println "[save]")))]
    (rx/on-value stream #(dl/persist-state %))))

(defonce +setup+
  (do
    (println "bootstrap")

    (st/init)
    (rt/init)
    (ui/init)

    (rs/emit! (dl/load-data))
    (main)))

Add dedupe on state persistence stream.

Add dedupe on state persistence stream.


(ns pz-discover.util
  (:require [clojure.tools.logging :as log]
            [zookeeper :as zk]
            [pz-discover.models.services :as sm]))

(defn setup-zk-env! [client chroot]
  (let [names-node (format "%s/%s" chroot "names")
        types-node (format "%s/%s" chroot "types")]
    (when-not (zk/exists client chroot)
      (zk/create client chroot :persistent? true))
    (when-not (zk/exists client names-node)
      (zk/create client names-node :persistent? true))
    (when-not (zk/exists client types-node)
      (zk/create client types-node :persistent? true))))

(defn register-kafka! [client kafka-config]
  (let [kafka-data {:type "infrastructure"
                    :brokers (get-in kafka-config [:producer "bootstrap.servers"])}]
    (sm/register-by-name client "kafka" kafka-data)))

(defn register-zookeeper! [client zookeeper-config]
  (let [zk-data (assoc zookeeper-config :type "infrastructure")]
    (sm/register-by-name client "zookeeper" zk-data)))

(ns pz-discover.util
  (:require [clojure.tools.logging :as log]
            [zookeeper :as zk]
            [pz-discover.models.services :as sm]))

(defn setup-zk-env! [client chroot]
  (let [names-node (format "%s/%s" chroot "names")
        types-node (format "%s/%s" chroot "types")]
    (when-not (zk/exists client chroot)
      (zk/create client chroot :persistent? true))
    (when-not (zk/exists client names-node)
      (zk/create client names-node :persistent? true))
    (when-not (zk/exists client types-node)
      (zk/create client types-node :persistent? true))))

(defn register-kafka! [client kafka-config]
  (let [kafka-data {:type "infrastructure"
                    :host (get-in kafka-config [:producer "bootstrap.servers"])}]
    (when-not (sm/register-by-name client "kafka" kafka-data)
      (sm/update-by-name client "kafka" kafka-data))))

(defn register-zookeeper! [client zookeeper-config]
  (let [zk-normalized {:host (format "%s:%s%s"
                                     (:host zookeeper-config)
                                     (:port zookeeper-config)
                                     (:chroot zookeeper-config))}
        zk-data (assoc zk-normalized :type "infrastructure")]
    (when-not (sm/register-by-name client "zookeeper" zk-data)
      (sm/update-by-name client "zookeeper" zk-data))))

Change format of infrastructure data, update if already registered.


(ns frontend.intercom
  (:require [frontend.utils :as utils :include-macros true]))

(defn intercom-jquery []
  (aget js/window "intercomJQuery"))

(defn intercom-v1-new-message [jq message]
  (.click (jq "#IntercomTab"))
  (when-not (.is (jq "#IntercomNewMessageContainer") ":visible")
    (.click (jq "[href=IntercomNewMessageContainer]")))
  (when-not (.is (jq "#newMessageBody") ":visible")
    (throw "didn't find intercom v1 widget"))
  (.focus (jq "#newMessageBody"))
  (when message
    (.text (jq "#newMessageBody") (str message "\n\n"))))

(defn intercom-v2-new-message []
  (js/Intercom "show"))

(defn raise-dialog [ch & [message]]
  (try
    (let [jq (intercom-jquery)]
      (intercom-v1-new-message jq message))
    (catch :default e
      (try
        (intercom-v2-new-message)
        (catch :default e
          (utils/notify-error ch "Uh-oh, our Help system isn't available. Please email us instead, at sayhi@circleci.com")
          (utils/merror e)))))
  (utils/notify-error ch "Uh-oh, our Help system isn't available. Please email us instead, at sayhi@circleci.com"))

(defn user-link []
  (let [path (.. js/window -location -pathname)
        re (js/RegExp. "/gh/([^/]+/[^/]+)")]
    (when-let [match (.match path re)]
      (str "https://www.intercom.io/apps/vnk4oztr/users"
           "?utf8=%E2%9C%93"
           "&filters%5B0%5D%5Battr%5D=custom_data.pr-followed"
           "&filters%5B0%5D%5Bcomparison%5D=contains&filters%5B0%5D%5Bvalue%5D="
           (second path)))))

(ns frontend.intercom
  (:require [frontend.utils :as utils :include-macros true]))

(defn raise-dialog [ch & [message]]
  (try
    (js/Intercom "show")
    (catch :default e
      (utils/notify-error ch "Uh-oh, our Help system isn't available. Please email us instead, at sayhi@circleci.com")
      (utils/merror e))))

(defn user-link []
  (let [path (.. js/window -location -pathname)
        re (js/RegExp. "/gh/([^/]+/[^/]+)")]
    (when-let [match (.match path re)]
      (str "https://www.intercom.io/apps/vnk4oztr/users"
           "?utf8=%E2%9C%93"
           "&filters%5B0%5D%5Battr%5D=custom_data.pr-followed"
           "&filters%5B0%5D%5Bcomparison%5D=contains&filters%5B0%5D%5Bvalue%5D="
           (second path)))))

Remove references to old widget

Remove references to old widget


{:user {:dependencies [[clj-stacktrace "0.2.5"]
                       [org.clojure/tools.trace "0.7.6"]
                       [org.clojure/tools.namespace "0.2.4"]
                       [redl "0.1.0"]
                       [speclj-tmux "1.0.0"]
                       [spyscope "0.1.3"]
                       [slamhound "1.3.3"]]
        :plugins [[lein-difftest "1.3.7"]
                  [lein-exec "0.3.0"]
                  [org.bodil/lein-noderepl "0.1.10"]
                  [lein-clojars "0.9.1"]
                  [lein-pprint "1.1.1"]
                  [lein-ring "0.8.0"]
                  [lein-cljsbuild "0.3.2"]
                  [lein-deps-tree "0.1.2"]
                  [lein-marginalia "0.7.1"]]
        :repl-options {:timeout 120000}
        :injections [(require '[redl core complete])
                     (require 'spyscope.core)
                     (require 'clojure.tools.namespace)
                     (let [orig (ns-resolve (doto 'clojure.stacktrace require)
                                            'print-cause-trace)
                           new (ns-resolve (doto 'clj-stacktrace.repl require)
                                           'pst)]
                       (alter-var-root orig (constantly @new)))]
        :vimclojure-opts {:repl true}}}

{:user {:dependencies [[clj-stacktrace "0.2.5"]
                       [org.clojure/tools.trace "0.7.6"]
                       [org.clojure/tools.namespace "0.2.4"]
                       [redl "0.1.0"]
                       [speclj-tmux "1.0.0"]
                       [spyscope "0.1.3"]
                       [slamhound "1.3.3"]]
        :plugins [[lein-difftest "1.3.7"]
                  [lein-exec "0.3.0"]
                  [org.bodil/lein-noderepl "0.1.10"]
                  [quickie "0.2.1"]
                  [lein-clojars "0.9.1"]
                  [lein-pprint "1.1.1"]
                  [lein-ring "0.8.0"]
                  [lein-cljsbuild "0.3.2"]
                  [lein-deps-tree "0.1.2"]
                  [lein-marginalia "0.7.1"]]
        :repl-options {:timeout 120000}
        :injections [(require '[redl core complete])
                     (require 'spyscope.core)
                     (require 'clojure.tools.namespace)
                     (let [orig (ns-resolve (doto 'clojure.stacktrace require)
                                            'print-cause-trace)
                           new (ns-resolve (doto 'clj-stacktrace.repl require)
                                           'pst)]
                       (alter-var-root orig (constantly @new)))]
        :vimclojure-opts {:repl true}}}

Add quickie test runner to plugins.

Add quickie test runner to plugins.


(defproject domain "0.1.0-SNAPSHOT"
  :description "CV + RTB"
  :url "http://example.com/OMGLOL"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [ring/ring-jetty-adapter "1.4.0"]
                 [ring/ring-defaults "0.1.5"]
                 [ring/ring-json "0.4.0"]
                 [compojure "1.4.0"]
                 [clj-http "2.0.0"]
                 [org.clojure/core.async "0.2.374"]
                 [org.clojure/data.json "0.2.6"]
                 [ring-cors "0.1.7"]]
  :plugins [[lein-ring "0.9.7"]]
  :ring {:handler domain.core/app
         :nrepl {:start? true
                 :port 3001}}
  :jvm-opts ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"]
  :aot [domain.core])

(defproject domain "0.1.0-SNAPSHOT"
  :description "CV + RTB"
  :url "http://example.com/OMGLOL"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [ring/ring-jetty-adapter "1.4.0"]
                 [ring/ring-defaults "0.1.5"]
                 [ring/ring-json "0.4.0"]
                 [compojure "1.4.0"]
                 [clj-http "2.0.0"]
                 [org.clojure/core.async "0.2.374"]
                 [org.clojure/data.json "0.2.6"]
                 [ring-cors "0.1.7"]]
  :plugins [[lein-ring "0.9.7"]]
  :ring {:handler domain.core/app
         :nrepl {:start? true :port 3001}}
  :profiles {:dev {:jvm-opts ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"]}}
  :aot [domain.core])

Move JVM debug only to dev profile

Move JVM debug only to dev profile


(ns wlmmap.map
  (:require [mrhyde.extend-js]
            [blade :refer [L]]
            [cljs.core.async :refer [chan <! >!]]
            [shoreleave.remotes.http-rpc :refer [remote-callback]])
  (:require-macros [cljs.core.async.macros :refer [go]]))

(blade/bootstrap)

(def mymap (-> L .-mapbox (.map "map" "examples.map-uci7ul8p")
      (.setView [45 3.215] 5)))

(def markers (L/MarkerClusterGroup.))

(let [ch (chan)]
  (go (while true
        (let [a (<! ch)]
          (let [lat (first (first a))
                lng (last (first a))
                title (last a)
                icon ((get-in L [:mapbox :marker :icon])
                      {:marker-symbol "post" :marker-color "0044FF"})
                marker (-> L (.marker (L/LatLng. lat lng) {:icon icon :title title}))]
            (.bindPopup marker title)
            (.addLayer markers marker))
          (.addLayer mymap markers))))
  (remote-callback
   :get-markers []
   #(doseq [a %] (go (>! ch a)))))

;; FIXME: get language
;; (js/alert (.-language js/navigator))

(ns wlmmap.map
  (:require [mrhyde.extend-js]
            [blade :refer [L]]
            [cljs.core.async :refer [chan <! >! timeout]]
            [shoreleave.remotes.http-rpc :refer [remote-callback]])
  (:require-macros [cljs.core.async.macros :refer [go]]))

(blade/bootstrap)

(def mymap (-> L .-mapbox (.map "map" "examples.map-uci7ul8p")
               (.setView [45 3.215] 5)))

(def markers (L/MarkerClusterGroup.))

(let [ch (chan)]
  (go (while true
        (let [a (<! ch)]
          (let [lat (first (first a))
                lng (last (first a))
                title (last a)
                icon ((get-in L [:mapbox :marker :icon])
                      {:marker-symbol "" :marker-color "0044FF"})
                marker (-> L (.marker (L/LatLng. lat lng)
                                      {:icon icon}))]
            (.bindPopup marker title)
            (.addLayer markers marker)))))
  (remote-callback :get-markers []
                   #(go (doseq [a %]
                          (<! (timeout 1))
                          (>! ch a)))))

(.addLayer mymap markers)

;; FIXME: get language
;; (js/alert (.-language js/navigator))

Add a timeout when loading markers.

Add a timeout when loading markers.

It works fine with chromium, but there is still something wrong
with recent version of Firefox.


(ns braid.ui.styles.body)

(def body
  [:body
   {:margin 0
    :padding 0
    :font-family "\"Open Sans\", Helvetica, Arial, sans-serif"
    :font-size "12px"
    :background "#eee"}
   [:textarea :input
    {:font-family "inherit"}]])

(ns braid.ui.styles.body)

(def body
  [:body
   {:margin 0
    :padding 0
    :font-family "\"Open Sans\", Helvetica, Arial, sans-serif"
    :font-size "12px"
    :background "#eee"}
   [:textarea :input
    {:font-family "inherit"
     :font-size "1em"}]])

Fix inconsistent textarea font-size on Firefox


(ns test.leindroid.sample.main
  (:use [neko.activity :only [defactivity do-ui set-content-view!]]
        [neko.notify :only [toast]]
        [neko.ui :only [defui by-id]]
        [neko.application :only [defapplication]]))

(declare ^android.app.Activity a
         ^android.widget.EditText user-input)

;; This line defines the Application class and automatically
;; initializies neko and nREPL.
(defapplication test.leindroid.sample.Application)

(defn notify-from-edit [_]
  (toast (str "Your input: " (.getText user-input))
         :long))

(defactivity test.leindroid.sample.MainActivity
  :def a
  :create
  (fn [this bundle]
    (do-ui
     (set-content-view! a
      (defui [:linear-layout {:orientation :vertical
                              :layout-width :fill
                              :layout-height :wrap}
              [:edit {:def user-input
                      :layout-width :fill}]
              [:button {:text "Touch me"
                        :on-click notify-from-edit}]])))))

(ns test.leindroid.sample.main
  (:use [neko.activity :only [defactivity set-content-view!]]
        [neko.notify :only [toast]]
        [neko.ui :only [defui]]
        [neko.threading :only [on-ui]]
        [neko.application :only [defapplication]]))

(declare ^android.app.Activity a
         ^android.widget.EditText user-input)

;; This line defines the Application class and automatically
;; initializies neko and nREPL.
(defapplication test.leindroid.sample.Application)

(defn notify-from-edit [_]
  (toast (str "Your input: " (.getText user-input))
         :long))

(defactivity test.leindroid.sample.MainActivity
  :def a
  :create
  (fn [this bundle]
    (on-ui
     (set-content-view! a
      (defui [:linear-layout {:orientation :vertical
                              :layout-width :fill
                              :layout-height :wrap}
              [:edit {:def user-input
                      :layout-width :fill}]
              [:button {:text "Touch me"
                        :on-click notify-from-edit}]])))))

Update sample project for changes in neko

The do-ui macro was moved to the neko.threading namespace and renamed to
on-ui.


(ns pfrt.core)

(defprotocol Lifecycle
  (init [_ system] "Initialize method")
  (start [_ system] "Start service")
  (stop [_ system] "Stop service"))

(ns pfrt.core
  (:require [swiss.arrows :refer [-<>]]))

(defprotocol IComponentLifecycle
  (init [_ system] "Initialize method")
  (start [_ system] "Start service")
  (stop [_ system] "Stop service"))

(defprotocol ISystemLifecycle
  (init [_] "Initialize method")
  (start [_] "Start service")
  (stop [_] "Stop service"))

(defrecord System [components]
  ISystemLifecycle
  (init [this]
    (-<> this (reduce #(init %1 %2) <> components)))
  (start [this]
    (-<> this (reduce #(start %1 %2) <> components)))
  (stop [this]
    (-<> this (reduce #(stop %1 %2) <> components))))

Add concise system record class.

Add concise system record class.


(ns teach-by-friends.shared.components.row
  (:require [teach-by-friends.shared.ui :as ui]
            [clojure.string :refer [capitalize]]))

(defn row [data press-handler]
  (let [data-to-clj (js->clj data :keywordize-keys true)]
    [ui/touchable-opacity {:style    {:border-bottom-width 1
                                      :border-color        "rgba(0,0,0,.1)"
                                      :padding-top         20
                                      :padding-bottom      20
                                      :padding-left        30}
                           :on-press (partial press-handler data-to-clj)}
     [ui/text {:style {:font-size 30 :color "white"}} (capitalize (:title data-to-clj))]]))

(ns teach-by-friends.shared.components.row
  (:require [teach-by-friends.shared.ui :as ui]
            [clojure.string :refer [capitalize]]))

(defn row [data press-handler]
  (let [data-to-clj (js->clj data :keywordize-keys true)]
    [ui/touchable-opacity {:style    {:position "relative"
                                      :height 100}
                           :on-press (partial press-handler data-to-clj)}
     [ui/image {:source {:uri (:cover data-to-clj)}
                :resize-mode "cover"
                :style {:width (ui/get-device-width)
                        :height 100}}]
     [ui/linear-gradient {:colors ["rgba(0,0,0,0.6)" "rgba(0,0,0,0)"]
                          :start  [0.0 0.5] :end [1.0 0.5]
                          :style  {:width (ui/get-device-width)
                                   :height 100
                                   :position "absolute"
                                   :top 0}}]
     [ui/text {:style {:position "absolute"
                       :font-size 14
                       :color "white"
                       :left 16
                       :bottom 10}}
      (capitalize (:title data-to-clj))]]))

Use cover image in serials list

Use cover image in serials list


; vi: ft=clojure

(set-env!
  :source-paths #{"src", "test"}
  :resource-paths #{"resources"}
  :dependencies '[[org.clojure/clojure "1.8.0"]
                  [org.clojure/data.csv "0.1.3"]
                  [incanter "1.9.0"]
                  [adzerk/boot-test "1.2.0" :scope "test"]])

(require '[adzerk.boot-test :refer [test]])

(task-options!
    aot {:all true}
    pom {:project 'tf-idf
         :version "0.0.0"}
    jar {:main 'analyze-data.core})

(deftask build []
  (comp (aot) (pom) (uber) (jar) (target)))

; vi: ft=clojure

(set-env!
  :source-paths #{"src", "test"}
  :resource-paths #{"resources"}
  :dependencies '[[org.clojure/clojure "1.8.0"]
                  [org.clojure/data.csv "0.1.3"]
                  [metosin/boot-alt-test "0.3.1" :scope "test"]
                  [net.mikera/core.matrix "0.58.0"]
                  [net.mikera/vectorz-clj "0.46.0"]])

(require '[metosin.boot-alt-test :refer [alt-test]])

(task-options!
    aot {:all true}
    pom {:project 'tf-idf
         :version "0.0.0"}
    jar {:main 'analyze-data.core})

(deftask build []
  (comp (aot) (pom) (uber) (jar) (target)))

Add core.matrix and vectorz-clj, and switch to boot-alt-test.


(ns kixi.hecuba.weather
  (:require [kixi.hecuba.weather.metofficeapi :as ma]))

(ns kixi.hecuba.weather
  (:require [kixi.hecuba.weather.metoffice-api :as ma]))

Update namespace name in :require.

Update namespace name in :require.


;; https://github.com/technomancy/leiningen/blob/stable/doc/PROFILES.md
{:user {:plugins [[lein-pprint    "1.3.2"
                   lein-ancient   "0.7.0"
                   lein-cloverage "1.2.2"]]
        :dependencies [[alembic   "0.3.2"]
                       [clj-kondo "RELEASE"]
                       [antq      "RELEASE"]]
        :aliases {"clj-kondo" ["run" "-m" "clj-kondo.main"]
                  "outdated"  ["run" "-m" "antq.core"]}}}

;; https://github.com/technomancy/leiningen/blob/stable/doc/PROFILES.md
{:user {:plugins [[lein-pprint "1.3.2"
                   lein-ancient "0.7.0"
                   lein-cloverage "1.2.2"]]
        :dependencies [[alembic "0.3.2"]
                       [clj-kondo "RELEASE"]
                       [antq "RELEASE"]
                       [vvvvalvalval/scope-capture "0.3.2"]]
        :injections [(require 'sc.api)]
        :aliases {"clj-kondo" ["run" "-m" "clj-kondo.main"]
                  "outdated"  ["run" "-m" "antq.core"]}}}

Add configuration for scope-capture for Clojure


(ns ashiba.controller
  (:require [cljs.core.async :refer [put!]]))

(defprotocol IController
  (params [this route])
  (start [this params db])
  (stop [this params db])
  (execute [this command-name] [this command-name args])
  (handler [this app-db in-chan out-chan])
  (send-command [this command-name] [this command-name args])
  (is-running? [this]))

(extend-type default
  IController
  (params [_ route] route)
  (start [_ params db] db)
  (stop [_ params db] db)
  (handler [_ _ _ _])
  (execute
    ([this command-name]
     (execute this command-name nil))
    ([this command-name args]
     (put! (:in-chan this) [command-name args])))
  (send-command
    ([this command-name]
     (send-command this command-name nil))
    ([this command-name args]
     (let [out-chan (:out-chan this)]
       (put! out-chan [command-name args])
       this)))
  (is-running? [this]
    (= this ((:running this)))))

(ns ashiba.controller
  (:require [cljs.core.async :refer [put!]]))

(defprotocol IController
  (params [this route])
  (start [this params db])
  (stop [this params db])
  (execute [this command-name] [this command-name args])
  (handler [this app-db-atom in-chan out-chan])
  (send-command [this command-name] [this command-name args])
  (is-running? [this]))

(extend-type default
  IController
  (params [_ route] route)
  (start [_ params db] db)
  (stop [_ params db] db)
  (handler [_ _ _ _])
  (execute
    ([this command-name]
     (execute this command-name nil))
    ([this command-name args]
     (put! (:in-chan this) [command-name args])))
  (send-command
    ([this command-name]
     (send-command this command-name nil))
    ([this command-name args]
     (let [out-chan (:out-chan this)]
       (put! out-chan [command-name args])
       this)))
  (is-running? [this]
    (= this ((:running this)))))

Make it clear that handler receives atom instead of value


(ns enduro-session.core-test
  (:require [clojure.test :refer :all]
            [enduro-session.core :refer :all]))

(deftest a-test
  (testing "FIXME, I fail."
    (is (= 0 1))))

(ns enduro-session.core-test
  (:require [clojure.test :refer :all]
            [enduro-session.core :refer :all]))

(deftest a-test
  (testing "FIXME, I fail."
    (is (= 1 1))))

Fix leiningen boilerplate test failure

Fix leiningen boilerplate test failure


(ns lt.objs.platform
  (:require [lt.object :as object]
            [lt.util.dom :as dom])
  (:require-macros [lt.macros :refer [behavior]]))

(def atom-shell true)

(def clipboard (js/require "clipboard"))
(def shell (js/require "shell"))

(defn get-data-path []
  (.getDataPath (.require (js/require "remote") "app")))

(defn normalize [plat]
  (condp = plat
    "win32" :windows
    "linux" :linux
    "darwin" :mac))

(defn open [path]
  (.openItem shell path))

(defn open-url [path]
  (.openExternal shell path))

(defn show-item [path]
  (.showItemInFolder shell path))

(defn copy
  "Copies given text to platform's clipboard"
  [text]
  (.writeText clipboard text))

(defn paste
  "Returns text of last copy to platform's clipboard"
  []
  (.readText clipboard))

(def platform (normalize (.-platform js/process)))

(defn mac? []
  (= platform :mac))

(defn win? []
  (= platform :windows))

(defn linux? []
  (= platform :linux))

(ns lt.objs.platform
  (:require [lt.object :as object]
            [lt.util.dom :as dom])
  (:require-macros [lt.macros :refer [behavior]]))

(def atom-shell true)

(def fs (js/require "fs"))
(def clipboard (js/require "clipboard"))
(def shell (js/require "shell"))

(defn get-data-path []
  (.getDataPath (.require (js/require "remote") "app")))

(defn normalize [plat]
  (condp = plat
    "win32" :windows
    "linux" :linux
    "darwin" :mac))

(defn open-url [path]
  (.openExternal shell path))

(defn open
  "If the given path exists, open it with the desktop's default manner.
  Otherwise, open it as an external protocol e.g. a url."
  [path]
  (if (.existsSync fs path)
    (.openItem shell path)
    (open-url path)))

(defn show-item [path]
  (.showItemInFolder shell path))

(defn copy
  "Copies given text to platform's clipboard"
  [text]
  (.writeText clipboard text))

(defn paste
  "Returns text of last copy to platform's clipboard"
  []
  (.readText clipboard))

(def platform (normalize (.-platform js/process)))

(defn mac? []
  (= platform :mac))

(defn win? []
  (= platform :windows))

(defn linux? []
  (= platform :linux))

Update open to be backwards compatible for urls

A number of plugins rely on platform/open to open urls -
https://github.com/search?p=3&q=objs.platform+open+language%3Aclojure&ref=searchresults&type=Code&utf8=%E2%9C%93.
Also couldn't use files in platform for exists check since that created
a circular dependency


{
 :name "mailp2",
 :path "",
 :func (fn [recipient subject intro result-maps]
         (cond
           (pg/eoi? result-maps) (pg/done)

           (every? map? result-maps)
           (let [base (->> result-maps first :value second fs/dirname)
                 msgs (for [retmap result-maps]
                        (let [name (retmap :name)
                              [bams csv] (retmap :value)
                              bams (map fs/basename bams)
                              csv (fs/basename csv)
                              exit (retmap :exit)
                              err (retmap :err)]
                          (if (= exit :success)
                            [exit csv]
                            [exit err [bams csv]])))
                 overall (reduce (fn[R x]
                                   (cond (= x R :success) R
                                         (= x R :fail) R
                                         :else :mixed))
                                 (map first msgs))
                 msg (->> msgs
                          (cons (str "Base '" base "'"))
                          (cons (str "Overall " overall))
                          (cons intro)
                          (map str) (str/join "\n"))]
             (pg/send-msg [recipient] subject msg))

           :else
           (let [msg (->> result-maps (cons intro) (map str) (str/join "\n"))]
             (pg/send-msg [recipient] subject msg))))

 :description "Mailer function node for phase2/gen-feature-counts. recipient is user account that requested the associated job this node is final pt of DAG, subject is type of job, msg is job finish details."
}

{
 :name "mailp2",
 :path "",
 :func (fn [recipient subject intro result-maps]
         (cond
           (pg/eoi? result-maps) (pg/done)

           (every? map? result-maps)
           (let [base (->> result-maps first :value second fs/dirname)
                 msgs (for [retmap result-maps]
                        (let [name (retmap :name)
                              [bams csv] (retmap :value)
                              bams (if (coll? bams)
                                     (map fs/basename bams)
                                     (fs/basename bams))
                              csv (if (coll? bams)
                                    (map fs/basename csv)
                                    (fs/basename csv))
                              exit (retmap :exit)
                              err (retmap :err)]
                          (if (= exit :success)
                            [exit csv]
                            [exit err [bams csv]])))
                 overall (reduce (fn[R x]
                                   (cond (= x R :success) R
                                         (= x R :fail) R
                                         :else :mixed))
                                 (map first msgs))
                 msg (->> msgs
                          (cons (str "Base '" base "'"))
                          (cons (str "Overall " overall))
                          (cons intro)
                          (map str) (str/join "\n"))]
             (pg/send-msg [recipient] subject msg))

           :else
           (let [msg (->> result-maps (cons intro) (map str) (str/join "\n"))]
             (pg/send-msg [recipient] subject msg))))

 :description "Mailer function node for phase2/gen-feature-counts. recipient is user account that requested the associated job this node is final pt of DAG, subject is type of job, msg is job finish details."
}

Test for coll? on input values

Test for coll? on input values


(ns clj-record.test.model.config)

(comment
(def db {:classname "org.apache.derby.jdbc.EmbeddedDriver"
         :subprotocol "derby"
         :subname "/tmp/clj-record.test.db"
         :create true})
)

(def db {:classname "org.postgresql.Driver"
         :subprotocol "postgresql"
         :subname "//localhost:5433/coffeemug"
         :user "enter-user-name-here"
         :password ""})

(ns clj-record.test.model.config)

(def db {:classname "org.apache.derby.jdbc.EmbeddedDriver"
         :subprotocol "derby"
         :subname "/tmp/clj-record.test.db"
         :create true})

(comment
(def db {:classname "org.postgresql.Driver"
         :subprotocol "postgresql"
         :subname "//localhost:5433/coffeemug"
         :user "enter-user-name-here"
         :password ""})
)

Switch back to using Derby in tests.

Switch back to using Derby in tests.


(ns cavm.query.expression
  (:require [clojure.edn :as edn])
  (:refer-clojure :exclude  [eval]))

(def eval)

(defn lambdafn [node scope]
  (let [[_ argnames body] node]
    (fn [& args]
      (eval body (cons (zipmap argnames args) scope)))))

(defn iffn [node scope]
  (let [[_ test then else] node]
    (cond
      (eval test scope) (eval then scope)
      :else (eval else scope))))

(def specials
  {'fn lambdafn
   'quote (fn [n s] (second n))
   'if iffn })

(def specialfns (set (vals specials)))

(defn fn-node [node scope]
  (let [func (eval (first node) scope)]
    (cond
      (contains? specialfns func) (func node scope)
      :else (apply func (map #(eval % scope) (rest node))))))

(defn eval [node scope]
  (cond
    (symbol? node) ((first (filter #(contains? % node) scope)) node)
    (list? node) (fn-node node scope)
    (instance? Number node) (double node)
    :else node))

(defn expression [exp & globals]
  (eval (edn/read-string exp) (cons specials globals)))

(ns cavm.query.expression
  (:require [clojure.edn :as edn])
  (:require [honeysql.types :as hsqltypes])
  (:refer-clojure :exclude  [eval]))

(def eval)

(defn lambdafn [node scope]
  (let [[_ argnames body] node]
    (fn [& args]
      (eval body (cons (zipmap argnames args) scope)))))

(defn iffn [node scope]
  (let [[_ test then else] node]
    (cond
      (eval test scope) (eval then scope)
      :else (eval else scope))))

(def specials
  {'fn lambdafn
   'quote (fn [n s] (second n))
   'if iffn })

(def specialfns (set (vals specials)))

(defn fn-node [node scope]
  (let [func (eval (first node) scope)]
    (cond
      (contains? specialfns func) (func node scope)
      :else (apply func (map #(eval % scope) (rest node))))))

(defn eval [node scope]
  (cond
    (symbol? node) ((first (filter #(contains? % node) scope)) node)
    (list? node) (fn-node node scope)
    (instance? Number node) (double node)
    :else node))

(defn expression [exp & globals]
  (eval (edn/read-string {:readers {'sql/call hsqltypes/read-sql-call}} exp) (cons specials globals)))

Enable honeysql handlers in web API.

Enable honeysql handlers in web API.


(def orig (first *command-line-args*))

(def input (seq (char-array (first *command-line-args*))))

(defn palindrome? [s] (= s (reverse s)))

(def occurrences-map (frequencies input))

(def evens-map (filter (fn [[_, v]] (even? v)) occurrences-map))

(def odds-map (filter (fn [[_, v]] (odd? v)) occurrences-map))

(if (palindrome? input)
  (printf "%s is a palindrome%n" orig)
  (if (> (count (keys odds-map)) 1)
    (printf "%s cannot be made into a palindrome%n" orig)
    (println "dingo"))
)

(def orig (first *command-line-args*))
(def input (seq (char-array (first *command-line-args*))))
(defn palindrome? [s] (= s (reverse s)))
(def occurrences-map (frequencies input))
(def evens-map (filter (fn [[_, v]] (even? v)) occurrences-map))
(def odds-map (filter (fn [[_, v]] (odd? v)) occurrences-map))

(defn string-from-map [k, v] (apply str (take (quot v 2) (repeat k))))

(defn get-single [k, _] k)

; build full string with (apply str 1 2 3)
; iterate through pairs with (doseq [[k, v] map-name] ())
; final print = (printf "A palindromic form of %s is %s%n" orig (build-string s-evens s-odds single))

(if (palindrome? input)
  (printf "%s is a palindrome%n" orig)
  (if (> (count (keys odds-map)) 1)
    (printf "%s cannot be made into a palindrome%n" orig)
    (printf "A palindromic form of %s is %s%n" orig orig)
  )
)

Sort of getting somewhere on Clojure part 3


(ns immutant.web-test
  (:require [clojure.test :refer :all]
            [immutant.web :refer :all]
            [testing.web  :refer [get-body hello handler]]
            [testing.hello.service :as pedestal]))

(def url "http://localhost:8080/")

(deftest run-should-var-quote
  (run hello)
  (is (= "hello" (get-body url)))
  (with-redefs [hello (handler "howdy")]
    (is (= "howdy" (get-body url)))))

(deftest mount-unquoted-handler
  (mount (server) hello)
  (is (= "hello") (get-body url))
  (with-redefs [hello (handler "hi")]
    (is (= "hello" (get-body url)))))

(deftest mount-quoted-handler
  (mount (server) #'hello)
  (is (= "hello") (get-body url))
  (with-redefs [hello (handler "hi")]
    (is (= "hi" (get-body url)))))

(deftest mount-pedestal-service
  (mount-servlet (server) pedestal/servlet)
  (is (= "Hello World!" (get-body url))))

(ns immutant.web-test
  (:require [clojure.test :refer :all]
            [immutant.web :refer :all]
            [testing.web  :refer [get-body hello handler]]
            [testing.hello.service :as pedestal])
  (import clojure.lang.ExceptionInfo))

(def url "http://localhost:8080/")

(deftest run-should-var-quote
  (run hello)
  (is (= "hello" (get-body url)))
  (with-redefs [hello (handler "howdy")]
    (is (= "howdy" (get-body url)))))

(deftest mount-unquoted-handler
  (mount (server) hello)
  (is (= "hello") (get-body url))
  (with-redefs [hello (handler "hi")]
    (is (= "hello" (get-body url)))))

(deftest mount-quoted-handler
  (mount (server) #'hello)
  (is (= "hello") (get-body url))
  (with-redefs [hello (handler "hi")]
    (is (= "hi" (get-body url)))))

(deftest mount-pedestal-service
  (mount-servlet (server) pedestal/servlet)
  (is (= "Hello World!" (get-body url))))

(deftest unmount-yields-404
  (run hello)
  (is (= "hello" (get-body url)))
  (unmount)
  (let [result (is (thrown? ExceptionInfo (get-body url)))]
    (is (= 404 (-> result ex-data :object :status)))))

(deftest mount-should-call-init
  (let [p (promise)]
    (run hello :init #(deliver p 'init))
    (is (= 'init @p))))

(deftest unmount-should-call-destroy
  (let [p (promise)]
    (run hello :destroy #(deliver p 'destroy))
    (is (not (realized? p)))
    (unmount)
    (is (= 'destroy @p))))

Test for unmount, init and destroy

Test for unmount, init and destroy


(defproject noir-app "0.1.0-SNAPSHOT"
            :description "FIXME: write this!"
            :dependencies [[org.clojure/clojure "1.3.0"]
                           [noir "1.2.1"]]
            :main noir-app.server)

(defproject noir-app "0.1.0-SNAPSHOT"
            :description "FIXME: write this!"
            :dependencies [[org.clojure/clojure "1.3.0"]
                           [noir "1.3.0-alpha5"]]
            :main noir-app.server)

Upgrade Noir to use the Hiccup middleware to properly deal with a context path.

Style still messed up due to static path in css from jar, however.


(ns lazytest.testable)

(defprotocol Testable
  (get-tests [this]
"Returns a seq of RunnableTest objects. Processes the :focus metadata flag.
 Default implementation recurses on all Vars in a namespace, unless
 that namespace has :get-tests metadata."))

(defn focused?
  "True if x has :focus metadata set to true."
  [x]
  (boolean (:focused (meta x))))

(defn filter-focused
  "If any items in sequence s are focused, return them; else return s."
  [s]
  (or (seq (filter focused? s)) s))

(extend-protocol Testable
  clojure.lang.Namespace
  (get-tests [this-ns]
    (if-let [f (:get-tests (meta this-ns))]
      (do (assert (fn? f)) (f))
      (filter-focused
       (mapcat get-tests (vals (ns-interns this-ns))))))

  clojure.lang.Var
  (get-tests [this-var]
    (when (bound? this-var)
      (let [value (var-get this-var)]
	(when (extends? Testable (type value))
	  (filter-focused
	   (get-tests value)))))))

(ns lazytest.testable)

(defprotocol Testable
  (get-tests [this]
"Returns a seq of RunnableTest objects. Processes the :focus metadata flag.
 Default implementation recurses on all Vars in a namespace, unless
 that namespace has :get-tests metadata."))

(defn focused?
  "True if x has :focus metadata set to true."
  [x]
  (boolean (:focused (meta x))))

(defn filter-focused
  "If any items in sequence s are focused, return them; else return s."
  [s]
  (or (seq (filter focused? s)) s))

(extend-protocol Testable
  clojure.lang.Namespace
  (get-tests [this-ns]
    (if-let [f (:get-tests (meta this-ns))]
      (do (assert (fn? f)) (f))
      (filter-focused
       (mapcat get-tests (vals (ns-interns this-ns))))))

  clojure.lang.Var
  (get-tests [this-var]
    (if-let [f (:get-tests (meta this-var))]
      (do (assert (fn? f)) (f))
      (when (bound? this-var)
	(let [value (var-get this-var)]
	  (when (extends? Testable (type value))
	    (filter-focused
	     (get-tests value))))))))

Add support for :get-tests metadata on Vars


(ns tenor.entities)

(defrecord Note [note-value pitch-letter octave])

(defn make-note [notation]
  (let [notation-re #"^(1|2|4|8|16)([A-G])([#b]?)([1-9])$"
        components (re-matches notation-re notation)]
    (if components
      (->Note
        (Integer. (nth components 1))
        (str (nth components 2) (nth components 3))
        (Integer. (nth components 4)))
      "Invalid notation")))

(defn time-signature [beat-count & [sig]]
  (cond
    (> beat-count 3)
    (let [beats (rand-nth [2 3 4])
          sig (concat (or sig '()) (range 1 (inc beats)))]
      (time-signature (- beat-count beats) sig))
    (and (<= beat-count 3) (> beat-count 0))
    (let [sig (concat (or sig '()) (range 1 (inc beat-count)))]
      (time-signature 0 sig))
    :else sig))

(ns tenor.entities)

(defrecord Note [note-value pitch-letter octave])

(defn make-note [notation]
  (let [notation-re #"^(1|2|4|8|16)([A-G])([#b]?)([1-9])$"
        components (re-matches notation-re notation)]
    (if components
      (->Note
        (Integer. (nth components 1))
        (str (nth components 2) (nth components 3))
        (Integer. (nth components 4)))
      (throw (Exception. "Invalid notation")))))

(defn time-signature [beat-count & [sig]]
  (cond
    (> beat-count 3)
    (let [beats (rand-nth [2 3 4])
          sig (concat (or sig '()) (range 1 (inc beats)))]
      (time-signature (- beat-count beats) sig))
    (and (<= beat-count 3) (> beat-count 0))
    (let [sig (concat (or sig '()) (range 1 (inc beat-count)))]
      (time-signature 0 sig))
    :else sig))

Use exception instead of string

Use exception instead of string


(ns whitman.core
  (:require [whitman.config :as config])
  (:gen-class))

(defn exit [code msg]
  (binding [*out* *err*]
    (do (println msg)
        (System/exit code))))

(defn -main [& args]
  (if (< (count args) 1)
      (exit 1 "No configuration file specified")
      (let [cfg (-> (nth args 0)
                    config/read-config)
            user-agent (get cfg "user-agent")]
        (println cfg))))

(ns whitman.core
  (:require [whitman.config :as config])
  (:gen-class))

(defn exit [code msg]
  (binding [*out* *err*]
    (do (println msg)
        (System/exit code))))

(defn -main [& args]
  (if (< (count args) 1)
      (exit 1 "No configuration file specified")
      (-> (nth args 0)
          config/read-config
          println)))

Use -> to simply main function...again

Use -> to simply main function...again


(ns puppetlabs.cthun.meshing.hazelcast-test
  (require [clojure.test :refer :all]
           [puppetlabs.cthun.meshing.hazelcast :refer :all]))

(deftest broker-for-endpoint-test
  (with-redefs [flatten-location-map (fn [_] [{:broker "bill" :endpoint "cth://localhost/agent"}
                                              {:broker "ted"  :endpoint "cth://localhost/agent"}
                                              {:broker "bill" :endpoint "cth://localhost/controller"}])]
    (testing "it finds the controller"
      (is (= "bill" (broker-for-endpoint nil "cth://localhost/controller"))))
    (testing "it finds the agent"
      (is (= "bill" (broker-for-endpoint nil "cth://localhost/agent"))))
    (testing "it won't find something absent"
      (is (not (broker-for-endpoint nil "cth://localhost/no-suchagent"))))))

Add partial testing to the hazelcast mesh


{:user
 {:plugins [[lein-vanity "0.2.0"]
            [jonase/eastwood "0.0.2"]
            [cider/cider-nrepl "0.7.0-SNAPSHOT"]
            ;[lein-ritz "0.7.0"]
            [com.palletops/pallet-lein "0.8.0-alpha.1"]]
  :dependencies [;[ritz/ritz-nrepl-middleware "0.7.0"]
                 [org.clojure/tools.trace "0.7.6"]
                 [slamhound "1.5.0"]]
  ;; :repl-options {:nrepl-middleware
  ;;                [ritz.nrepl.middleware.javadoc/wrap-javadoc
  ;;                 ritz.nrepl.middleware.simple-complete/wrap-simple-complete]}
  :aliases {"slamhound" ["run" "-m" "slam.hound"]}}}

{:user
 {:plugins [[lein-vanity "0.2.0"]
            [jonase/eastwood "0.1.2"]
            [cider/cider-nrepl "0.7.0-SNAPSHOT"]
            [com.palletops/pallet-lein "0.8.0-alpha.1"]]
  :dependencies [[slamhound "1.5.0"]]
  :aliases {"slamhound" ["run" "-m" "slam.hound"]}}}

Drop ritz and upgrade eastwood

Drop ritz and upgrade eastwood


(ns hu.ssh.github-changelog.dependencies.bundler
  (:require
    [clojure.string :refer [split-lines]]
    [clojure.java.io :refer [reader]]))

(defn- get-specs [reader]
  (->> (doall (line-seq reader))
       (drop-while #(not= % "  specs:"))
       (drop 1)
       (take-while seq)))

(defn- parse-spec [spec]
  {:name (second spec) :version (nth spec 2)})

(defn- parse-specs [specs]
  (->> (map #(re-matches #"^\s{4}(\S+) \((.*)\)$" %) specs)
       (remove empty?)
       (map parse-spec)))

(defn parse [file]
  (with-open [rdr (reader file)]
    (parse-specs (get-specs rdr))))

(ns hu.ssh.github-changelog.dependencies.bundler
  (:require
    [clojure.string :refer [split-lines]]
    [clojure.java.io :as io]))

(defn- get-specs [reader]
  (->> (doall (line-seq reader))
       (drop-while #(not= % "  specs:"))
       (drop 1)
       (take-while seq)))

(defn- parse-spec [spec]
  {:name (second spec) :version (nth spec 2)})

(defn- parse-specs [specs]
  (->> (map #(re-matches #"^\s{4}(\S+) \((.*)\)$" %) specs)
       (remove empty?)
       (map parse-spec)))

(defn parse [file]
  (with-open [reader (io/reader file)]
    (parse-specs (get-specs reader))))

Rename reader variable to reader

Rename reader variable to reader


(ns engulf.core
  (:gen-class)
  (:require [engulf.benchmark :as benchmark]
            [noir.server :as nr-server])
  (:use aleph.http
        noir.core
        lamina.core))

(defn start-webserver [args]
  (nr-server/load-views "src/engulf/views")

  (let [mode (keyword (or (first args) :prod))
          port (Integer. (or (System/getenv "PORT") "3000"))
          noir-handler (nr-server/gen-handler {:mode mode})]
      (start-http-server
        (wrap-ring-handler noir-handler)
        {:port port :websocket true})))

(defn -main [& args]
  (start-webserver args)
  (println "Engulf Started!"))

(ns engulf.core
  (:gen-class)
  (:require [engulf.benchmark :as benchmark]
            engulf.views.benchmarker
            engulf.views.common
            engulf.views.index
            [noir.server :as nr-server])
  (:use aleph.http
        noir.core
        lamina.core))

(defn start-webserver [args]
  (let [mode (keyword (or (first args) :prod))
          port (Integer. (or (System/getenv "PORT") "3000"))
          noir-handler (nr-server/gen-handler {:mode mode})]
      (start-http-server
        (wrap-ring-handler noir-handler)
        {:port port :websocket true})))

(defn -main [& args]
  (start-webserver args)
  (println "Engulf Started!"))

Use requires to include views for uberjar


(ns user
  (:use
    clojure.repl
    io.aviso.repl
    speclj.config))

(install-pretty-exceptions)

(alter-var-root #'default-config assoc :color true :reporters ["documentation"])

(ns user
  (:use
    clojure.repl
    io.aviso.repl
    speclj.config)
  (:require
    ;; If not present, then test suite fails loading schema-validation with a ClassNotFound on EnumSchema
    ;; Leaky abstractions ...
    schema.core))

(install-pretty-exceptions)

(alter-var-root #'default-config assoc :color true :reporters ["documentation"])

Load schema.core early, to ensure that class EnumSchema exists


(ns cljs-workers.core
  (:require [cljs.core.async :refer [chan]])
  (:require-macros [cljs.core.async.macros :refer [go]]))

(defn supported?
  []
  (-> js/Worker
      undefined?
      not))

(defn create-one
  [script]
  (js/Worker. script))

(defn create-pool
  ([]
   (pool 5))

  ([count]
   (pool count "js/compiled/workers.js"))

  ([count script]
   (let [workers (chan count)]
     (go
       (dotimes [_ count]
         (>! workers (create-one script))))
     workers)))

(defn- do-request!
  [worker {:keys [handler arguments transfer] :as request}]
  (let [message
        (-> {:handler handler, :arguments arguments}
            clj->js)

        transfer
        (->> transfer
             (select-keys arguments)
             vals)]

    (if (seq transfer)
      (.postMessage worker message (clj->js transfer))
      (.postMessage worker message))))

(defn- handle-response!
  [event]
  (-> (.-data event)
      (js->clj :keywordize-keys true)))

(defn do-with-worker!
  ([worker request]
   (do-with-worker! worker request nil))

  ([worker {:keys [handler arguments transfer] :as request} fun]
   (when fun
     (->> (comp fun handle-response!)
          (aset worker "onmessage")))
   (try
     (do-request! worker request)
     (catch js/Object e
       (when fun
         (fun {:state :error, :error e}))))))

Call handler with one worker

Call handler with one worker


(ns timetracker.models
  (:require [monger.core :as mg]
            [monger.collection :as mc]
            [monger.operators :refer :all])
  (:import [org.bson.types ObjectId]
           [com.mongodb DB WriteConcern]))

(defn now [] (new java.util.Date))

(defn create [task]
  (println (str "Added " task " at " (now) ))
  (let [conn (mg/connect)
        db   (mg/get-db conn "tasktracker")
        coll "tasks"]
        (mc/insert db coll {:task task, :time (now), :project_id "N/A"})))

(defn find_all []
  (let [conn (mg/connect)
        db   (mg/get-db conn "tasktracker")
        coll "tasks"]
        (mc/find-maps db coll )))

(defn process []
   (println "start post process ...")
   (let [conn (mg/connect)
        db   (mg/get-db conn "tasktracker")
        coll "tasks"]
        (mc/update db coll {} {$set {:project_id "Processed"}} {:multi true})))

(ns timetracker.models
  (:refer-clojure :exclude [sort find])
  (:require [monger.core :as mg]
            [monger.collection :as mc]
            [monger.operators :refer :all]
            [monger.query :refer :all])
  (:import [org.bson.types ObjectId]
           [com.mongodb DB WriteConcern]))

(defn now [] (new java.util.Date))

(defn create [task]
  (println (str "Added " task " at " (now) ))
  (let [conn (mg/connect)
        db   (mg/get-db conn "tasktracker")
        coll "tasks"]
        (mc/insert db coll {:task task, :time (now), :project_id "N/A"})))

(defn find_all []
  (let [conn (mg/connect)
        db   (mg/get-db conn "tasktracker")
        coll "tasks"]
   (with-collection db coll
        (find {})
         (fields [:task :time :project_id])
         (sort (array-map :time 1)))))

(defn process []
   (println "start post process ...")
   (let [conn (mg/connect)
        db   (mg/get-db conn "tasktracker")
        coll "tasks"]
        (mc/update db coll {} {$set {:project_id "Processed"}} {:multi true})))

Sort the documents oldest to newest when queried


(ns open-company.lib.email
  (:require [amazonica.aws.sqs :as sqs]
            [taoensso.timbre :as timbre]
            [schema.core :as schema]
            [open-company.config :as c]))

(def EmailTrigger
  {:to schema/Str
   :subject schema/Str
   :note schema/Str
   :reply-to (schema/maybe schema/Str)
   :company-slug schema/Str
   :snapshot {schema/Keyword schema/Any}})

(defn ctx->trigger [post-data {company :company user :user su :stakeholder-update}]
  {:pre [
    (string? (:to post-data))
    (string? (:subject post-data))
    (string? (:note post-data))
    (map? company)
    (map? user)
    (map? su)]}
  {:to (:to post-data)
   :subject (:subject post-data)
   :note (:note post-data)
   :reply-to (:email user)
   :company-slug (:slug company)
   :snapshot su})

(defn send-trigger! [trigger]
  (timbre/info "Request to send msg to " c/aws-sqs-email-queue "\n" (dissoc trigger :snapshot))
  (schema/validate EmailTrigger trigger)
  (timbre/info "Sending")
  (sqs/send-message
   {:access-key c/aws-access-key-id
    :secret-key c/aws-secret-access-key}
   c/aws-sqs-email-queue
   trigger))

(ns open-company.lib.email
  (:require [amazonica.aws.sqs :as sqs]
            [taoensso.timbre :as timbre]
            [schema.core :as schema]
            [open-company.config :as c]))

(def EmailTrigger
  {:to [schema/Str]
   :subject schema/Str
   :note schema/Str
   :reply-to (schema/maybe schema/Str)
   :company-slug schema/Str
   :snapshot {schema/Keyword schema/Any}})

(defn ctx->trigger [post-data {company :company user :user su :stakeholder-update}]
  {:pre [
    (sequential? (:to post-data))
    (string? (:subject post-data))
    (string? (:note post-data))
    (map? company)
    (map? user)
    (map? su)]}
  {:to (:to post-data)
   :subject (:subject post-data)
   :note (:note post-data)
   :reply-to (:email user)
   :company-slug (:slug company)
   :snapshot su})

(defn send-trigger! [trigger]
  (timbre/info "Request to send msg to " c/aws-sqs-email-queue "\n" (dissoc trigger :snapshot))
  (schema/validate EmailTrigger trigger)
  (timbre/info "Sending")
  (sqs/send-message
   {:access-key c/aws-access-key-id
    :secret-key c/aws-secret-access-key}
   c/aws-sqs-email-queue
   trigger))

Update to field to be sequence rather than comma delimitted.


(ns obb-rules-api.reply
  (:require [compojure.handler :as handler]
            [clojure.data.json :as json]
            [obb-rules.result :as result]
            [obb-rules-api.parser :as parser]
            [compojure.route :as route]))

(defn- make-response
  "Builds a response"
  [status-code obj]
  {:status status-code
   :headers {"Content-Type" "text/json; charset=utf-8"}
   :body (parser/dump obj)})

(defn ok
  "Returns HTTP 200 response"
  [obj]
  (make-response 200 obj))

(defn exception
  "Returns an exception"
  [exception]
  (make-response 500 {:exception (.getMessage exception)}))

(defn not-found
  "Returns HTTP 404 response"
  []
  (make-response 404 {:error "Resource not found"}))

(defn precondition-failed
  "Returns HTTP 412 response"
  [error-description]
  (make-response 412 {:error error-description}))

(defn result
  "Returns based on the given result"
  [result]
  (if (result/succeeded? result)
    (ok result)
    (make-response 412 result)))

(ns obb-rules-api.reply
  (:require [compojure.handler :as handler]
            [clojure.data.json :as json]
            [obb-rules.result :as result]
            [obb-rules-api.parser :as parser]
            [compojure.route :as route]))

(defn- make-response
  "Builds a response"
  [status-code obj]
  {:status status-code
   :headers {"Content-Type" "application/json; charset=utf-8"}
   :body (parser/dump obj)})

(defn ok
  "Returns HTTP 200 response"
  [obj]
  (make-response 200 obj))

(defn exception
  "Returns an exception"
  [exception]
  (make-response 500 {:exception (.getMessage exception)}))

(defn not-found
  "Returns HTTP 404 response"
  []
  (make-response 404 {:error "Resource not found"}))

(defn precondition-failed
  "Returns HTTP 412 response"
  [error-description]
  (make-response 412 {:error error-description}))

(defn result
  "Returns based on the given result"
  [result]
  (if (result/succeeded? result)
    (ok result)
    (make-response 412 result)))

Change response content type to application/json


(def start-t (System/currentTimeMillis))

(defsensor sine {:poll-interval (seconds 10)}
  (Math/sin (/ (- (System/currentTimeMillis) start-t) 60000.0)))

(defsensor cosine {:poll-interval (seconds 10)}
  (Math/cos (/ (- (System/currentTimeMillis) start-t) 60000.0)))

(defsensor cosine-2 {:poll-interval (seconds 5)}
  (Math/cos (/ (- (System/currentTimeMillis) start-t) 30000.0)))

(def start-t (System/currentTimeMillis))

(defsensor sine {:poll-interval (seconds 10)}
  (Math/sin (/ (- (System/currentTimeMillis) start-t) (minutes 1))))

(defsensor cosine {:poll-interval (seconds 10)}
  (Math/cos (/ (- (System/currentTimeMillis) start-t) (minutes 1))))

(defsensor steps-ascending {:poll-interval (seconds 5)}
  (mod (/ (- (System/currentTimeMillis) start-t) (minutes 2))
       3))

Remove the cosine-2 test series and replace with a sawtooth series for identiying sign issues.


(ns cglossa.models.core
  (:require [datomic.api :as d]
            [datomic-schema.schema :refer [part schema fields]]))

(def db-uri "datomic:free://localhost:4334/glossa")

(defn dbparts []
  [(part "glossa")])

(defn dbschema []
  [(schema corpus
           (fields
             [name :string]
             [short-name :string :unique-identity]
             [metadata-categories :ref :many]))

   (schema metadata-category
           (fields
             [short-nane :string]
             [widget-type :enum [:list :range]]
             [values :ref :many "One or more text-values, bool-values or numeric-values"]
             [text-value :string]
             [bool-value :boolean]
             [numeric-value :long]))

   (schema search
           (fields
             [corpus :ref :one]
             [queries :string :many]))])

(defn current-db []
  (d/db (d/connect db-uri)))

(defn find-by
  "Finds the first entity with the given value for the given Datomic attribute
  (e.g. :person/name) in the given (or by default the current) database."
  ([attr value]
   (find-by attr value (current-db)))
  ([attr value db]
   (let [ids (d/q '[:find ?e :in $ ?a ?v :where [?e ?a ?v]] db attr value)]
     (d/entity db (ffirst ids)))))

(ns cglossa.models.core
  (:require [datomic.api :as d]
            [datomic-schema.schema :refer [part schema fields]]))

(def db-uri "datomic:free://localhost:4334/glossa")

(defn dbparts []
  [(part "glossa")])

(defn dbschema []
  [(schema corpus
           (fields
             [name :string]
             [short-name :string :unique-identity]
             [metadata-categories :ref :many]))

   (schema metadata-category
           (fields
             [short-nane :string]
             [name :string]
             [widget-type :enum [:list :range]]
             [values :ref :many "One or more text-values, bool-values or numeric-values"]
             [text-value :string]
             [bool-value :boolean]
             [numeric-value :long]))

   (schema search
           (fields
             [corpus :ref :one]
             [queries :string :many]))])

(defn current-db []
  (d/db (d/connect db-uri)))

(defn find-by
  "Finds the first entity with the given value for the given Datomic attribute
  (e.g. :person/name) in the given (or by default the current) database."
  ([attr value]
   (find-by attr value (current-db)))
  ([attr value db]
   (let [ids (d/q '[:find ?e :in $ ?a ?v :where [?e ?a ?v]] db attr value)]
     (d/entity db (ffirst ids)))))

Add name attribute to metadata categories


(defproject buddy/buddy-hashers "0.4.2"
  :description "A collection of secure password hashers for Clojure"
  :url "https://github.com/funcool/buddy-hashers"
  :license {:name "Apache 2.0"
            :url "http://www.apache.org/licenses/LICENSE-2.0"}
  :dependencies [[org.clojure/clojure "1.6.0"]
                 [buddy/buddy-core "0.5.0"]
                 [clojurewerkz/scrypt "1.2.0"]]
  :source-paths ["src/clojure"]
  :java-source-paths ["src/java"]
  :javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"]
  :test-paths ["test"])

(defproject buddy/buddy-hashers "0.4.2"
  :description "A collection of secure password hashers for Clojure"
  :url "https://github.com/funcool/buddy-hashers"
  :license {:name "Apache 2.0"
            :url "http://www.apache.org/licenses/LICENSE-2.0"}
  :dependencies [[org.clojure/clojure "1.6.0" :scope "provided"]
                 [buddy/buddy-core "0.5.0"]
                 [clojurewerkz/scrypt "1.2.0"]]
  :source-paths ["src/clojure"]
  :java-source-paths ["src/java"]
  :javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"]
  :test-paths ["test"]
  :profiles {:dev {:plugins [[lein-ancient "0.6.7"]]}})

Add lein-ancient plugin and set "provided" scope for clojure.


(ns braid.base.conf
  (:require
   [braid.base.conf-extra :refer [ports-config]]
   [braid.core.hooks :as hooks]
   [mount.core :as mount :refer [defstate]]))

(defonce config-vars
  (hooks/register! (atom []) [keyword?]))

(defstate config
  :start
  (merge ;; temp defaults
    ;; TODO don't special case these here
    ;; ports should come from config
    {:db-url "datomic:mem://braid"
     :api-domain (str "localhost:" (:port (mount/args)))
     :site-url (str "http://localhost:" (:port (mount/args)))
     :hmac-secret "secret"}
    @ports-config ; overrides api-domain & site url when port is automatically found
    (select-keys (mount/args) @config-vars)))

(ns braid.base.conf
  (:require
   [braid.base.conf-extra :refer [ports-config]]
   [braid.core.hooks :as hooks]
   [mount.core :as mount :refer [defstate]]))

(defonce config-vars
  (hooks/register! (atom []) [keyword?]))

(defstate config
  :start
  (merge ;; temp defaults
    ;; TODO don't special case these here
    ;; ports should come from config
    {:db-url "datomic:mem://braid"
     :api-domain (str "localhost:" (inc (:port (mount/args))))
     :site-url (str "http://localhost:" (:port (mount/args)))
     :hmac-secret "secret"}
    @ports-config ; overrides api-domain & site url when port is automatically found
    (select-keys (mount/args) @config-vars)))

Fix api port number after removing mobile server


(set-env!
 :source-paths #{"src/main/java" "src/test/java"}
 :dependencies '[[radicalzephyr/boot-junit "0.1.0-SNAPSHOT" :scope "test"]])

(def +version+ "0.1.0")

(require '[radicalzephyr.boot-junit :refer [junit]])

(task-options!
 pom {:project 'http-server
      :version +version+
      :description "A Java HTTP server."
      :url "https://github.com/RadicalZephyr/http-server"
      :scm {:url "https://github.com/RadicalZephyr/http-server.git"}
      :licens {"MIT" "http://opensource.org/licenses/MIT"}}
 jar {:file "server.jar"}
 junit {:packages '#{net.zephyrizing.http_server}})

(deftask test
  "Compile and run my jUnit tests."
  []
  (comp (javac)
        (junit)))

(deftask build
  "Build my http server."
  []
  (comp (javac)
        (pom)
        (jar)))

(set-env!
 :source-paths #{"src/main/java" "src/test/java"}
 :dependencies '[[radicalzephyr/boot-junit "0.1.0" :scope "test"]])

(def +version+ "0.1.0")

(require '[radicalzephyr.boot-junit :refer [junit]])

(task-options!
 pom {:project 'http-server
      :version +version+
      :description "A Java HTTP server."
      :url "https://github.com/RadicalZephyr/http-server"
      :scm {:url "https://github.com/RadicalZephyr/http-server.git"}
      :licens {"MIT" "http://opensource.org/licenses/MIT"}}
 jar {:file "server.jar"}
 junit {:packages '#{net.zephyrizing.http_server}})

(deftask test
  "Compile and run my jUnit tests."
  []
  (comp (javac)
        (junit)))

(deftask build
  "Build my http server."
  []
  (comp (javac)
        (pom)
        (jar)))

Use the 0.1.0 release of boot-junit

Use the 0.1.0 release of boot-junit


(set-env!
  :source-paths #{"src" "src-java"}
  :resource-paths #{"resources"}
  :dependencies '[[org.clojure/test.check "0.9.0" :scope "test"]
                  ; project deps
                  [org.clojure/clojure "1.9.0-alpha7"]
                  [leiningen "2.6.1" :exclusions [leiningen.search]]
                  [ring "1.4.0"]
                  [clojail "1.0.6"]])

(task-options!
  pom {:project 'nightcode
       :version "2.0.0-SNAPSHOT"}
  aot {:namespace '#{net.sekao.nightcode.core
                     net.sekao.nightcode.controller
                     net.sekao.nightcode.lein}}
  jar {:main 'net.sekao.nightcode.core
       :manifest {"Description" "An IDE for Clojure and ClojureScript"
                  "Url" "https://github.com/oakes/Nightcode"}})

(deftask run []
  (comp
    (javac)
    (aot)
    (with-pre-wrap fileset
      (require '[net.sekao.nightcode.core :refer [dev-main]])
      ((resolve 'dev-main))
      fileset)))

(deftask run-repl []
  (comp
    (javac)
    (aot)
    (repl :init-ns 'net.sekao.nightcode.core)))

(deftask build []
  (comp (javac) (aot) (pom) (uber) (jar) (target)))

(set-env!
  :source-paths #{"src" "src-java"}
  :resource-paths #{"resources"}
  :dependencies '[[org.clojure/test.check "0.9.0" :scope "test"]
                  ; project deps
                  [org.clojure/clojure "1.9.0-alpha7"]
                  [leiningen "2.6.1" :exclusions [leiningen.search]]
                  [ring "1.4.0"]
                  [clojail "1.0.6"]])

(task-options!
  pom {:project 'nightcode
       :version "2.0.0-SNAPSHOT"}
  aot {:namespace '#{net.sekao.nightcode.core
                     net.sekao.nightcode.lein}}
  jar {:main 'net.sekao.nightcode.core
       :manifest {"Description" "An IDE for Clojure and ClojureScript"
                  "Url" "https://github.com/oakes/Nightcode"}})

(deftask run []
  (comp
    (javac)
    (aot)
    (with-pre-wrap fileset
      (require '[net.sekao.nightcode.core :refer [dev-main]])
      ((resolve 'dev-main))
      fileset)))

(deftask run-repl []
  (comp
    (javac)
    (aot)
    (repl :init-ns 'net.sekao.nightcode.core)))

(deftask build []
  (comp (javac) (aot) (pom) (uber) (jar) (target)))

Remove controller ns from namespace list


(ns radicalzephyr.boot-junit
  {:boot/export-tasks true}
  (:require '[[boot.core :as core]])
  (:import org.junit.runner.JUnitCore))

(deftask junit
  "Run the jUnit test runner."
  []
  (with-pre-wrap fileset
    (let [result (JUnitCore/runClasses
                  (into-array [#_ (magic goes here to find all test classes)]))]
      (when (> (.getFailureCount result) 0)
        (throw (ex-info "There were some test failures." {:result result}))))
    fileset))

(ns radicalzephyr.boot-junit
  {:boot/export-tasks true}
  (:require '[[boot.core :as core]])
  (:import org.junit.runner.JUnitCore))

(deftask junit
  "Run the jUnit test runner."
  [p packages PACKAGE #{sym} "The set of Java packages to run tests in."]
  (with-pre-wrap fileset
    (let [result (JUnitCore/runClasses
                  (into-array [#_ (magic goes here to find all test classes)]))]
      (when (> (.getFailureCount result) 0)
        (throw (ex-info "There were some test failures." {:result result}))))
    fileset))

Add a packages set parameter to the task

I'm going to follow the lead of adzerk's clojure.test runner and require
the user to specify where to run tests from. The nice thing here is that
they can just specify their base package and then we'll do reflection to
find all of the tests.


(set-env!
 :source-paths #{"src"}
 :resource-paths #{"src"}
 :dependencies '[[org.clojure/clojure         "1.6.0"  :scope "provided"]
                 [boot/core                   "2.1.0"  :scope "provided"]
                 [junit                       "4.12"   :scope "test"]
                 [org.reflections/reflections "0.9.10" :scope "test"]
                 [org.glassfish/javax.servlet "3.0"    :scope "test"]
                 [radicalzephyr/clansi        "1.2.0"  :scope "test"]])

(require '[radicalzephyr.boot-junit :refer [junit]])

(def +version+ "0.1.0")

(task-options!
 pom  {:project     'radicalzephyr/boot-junit
       :version     +version+
       :description "Run some jUnit tests in boot!"
       :url         "https://github.com/radicalzephyr/boot-junit"
       :scm         {:url "https://github.com/radicalzephyr/boot-junit"}
       :license     {"Eclipse Public License"
                     "http://www.eclipse.org/legal/epl-v10.html"}}
 junit {:packages '#{radicalzephyr.boot_junit.test}})

(set-env!
 :source-paths #{"src"}
 :resource-paths #{"src"}
 :dependencies '[[org.clojure/clojure         "1.6.0"  :scope "provided"]
                 [boot/core                   "2.1.0"  :scope "provided"]
                 [junit                       "4.12"  ]
                 [org.reflections/reflections "0.9.10"]
                 [org.glassfish/javax.servlet "3.0"   ]
                 [radicalzephyr/clansi        "1.2.0" ]])

(require '[radicalzephyr.boot-junit :refer [junit]])

(def +version+ "0.1.0")

(task-options!
 pom  {:project     'radicalzephyr/boot-junit
       :version     +version+
       :description "Run some jUnit tests in boot!"
       :url         "https://github.com/radicalzephyr/boot-junit"
       :scm         {:url "https://github.com/radicalzephyr/boot-junit"}
       :license     {"Eclipse Public License"
                     "http://www.eclipse.org/legal/epl-v10.html"}}
 junit {:packages '#{radicalzephyr.boot_junit.test}})

Remove test scoping on dependencies

Remove test scoping on dependencies

They're not actually test scope on the boot task since that should
boot-junit should itself be test scoped.