From c051c397bf478505e4d7f37081b9fa0089722086 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sun, 13 Jan 2019 22:33:30 -0700 Subject: [PATCH 01/19] bump clojure version --- boot/core/project.clj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/boot/core/project.clj b/boot/core/project.clj index 4b22347c..371fd692 100644 --- a/boot/core/project.clj +++ b/boot/core/project.clj @@ -13,7 +13,6 @@ :repositories [["clojars" {:url "https://clojars.org/repo" :creds :gpg :sign-releases false}]] :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"} - :dependencies [[org.clojure/clojure "1.6.0" :scope "provided"] + :dependencies [[org.clojure/clojure "1.9.0" :scope "provided"] [boot/base ~version :scope "provided"] [boot/pod ~version :scope "compile"]]) - From b3abaf93e34b4f940d86da7bf6cb5c93635c12c0 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sun, 13 Jan 2019 22:40:37 -0700 Subject: [PATCH 02/19] update remaing clj versions --- boot/aether/project.clj | 2 +- boot/pod/project.clj | 2 +- boot/worker/project.clj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/boot/aether/project.clj b/boot/aether/project.clj index 1c6e2a30..2c41d7a3 100644 --- a/boot/aether/project.clj +++ b/boot/aether/project.clj @@ -13,7 +13,7 @@ :repositories [["clojars" {:url "https://clojars.org/repo" :creds :gpg :sign-releases false}]] :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"} - :dependencies [[org.clojure/clojure "1.6.0" :scope "compile"] + :dependencies [[org.clojure/clojure "1.9.0" :scope "compile"] [boot/base ~version :scope "provided"] [boot/pod ~version :scope "compile"] [com.cemerick/pomegranate "1.0.0" :scope "compile"] diff --git a/boot/pod/project.clj b/boot/pod/project.clj index b8601db2..3000848b 100644 --- a/boot/pod/project.clj +++ b/boot/pod/project.clj @@ -16,6 +16,6 @@ :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"} :dependencies [[boot/base ~version :scope "provided"] - [org.clojure/clojure "1.6.0" :scope "provided"] + [org.clojure/clojure "1.9.0" :scope "provided"] [org.tcrawley/dynapath "1.0.0" :scope "compile"] [org.projectodd.shimdandy/shimdandy-impl "1.2.0" :scope "compile"]]) diff --git a/boot/worker/project.clj b/boot/worker/project.clj index 454c9586..c7e216a4 100644 --- a/boot/worker/project.clj +++ b/boot/worker/project.clj @@ -15,7 +15,7 @@ :url "http://www.eclipse.org/legal/epl-v10.html"} :java-source-paths ["third_party/barbarywatchservice/src"] :javac-options ["-target" "1.7" "-source" "1.7"] - :dependencies [[org.clojure/clojure "1.6.0" :scope "provided"] + :dependencies [[org.clojure/clojure "1.9.0" :scope "provided"] [boot/base ~version :scope "provided"] [boot/aether ~version] ;; Suppress warnings from SLF4J via pomegranate via aether From a64ecccc814fb365013e519f26b8678abc196860 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sun, 13 Jan 2019 22:58:02 -0700 Subject: [PATCH 03/19] update clj-jgit --- boot/worker/build.boot | 2 +- boot/worker/project.clj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/boot/worker/build.boot b/boot/worker/build.boot index 38627bb2..7d6d84c9 100644 --- a/boot/worker/build.boot +++ b/boot/worker/build.boot @@ -4,7 +4,7 @@ [mvxcvi/puget "1.0.1"] [reply "0.4.1"] [cheshire "5.3.1"] - [clj-jgit "0.8.0"] + [clj-jgit "0.8.10"] [clj-yaml "0.4.0"] [javazoom/jlayer "1.0.1"] [net.java.dev.jna/jna "4.1.0"] diff --git a/boot/worker/project.clj b/boot/worker/project.clj index c7e216a4..35216623 100644 --- a/boot/worker/project.clj +++ b/boot/worker/project.clj @@ -25,7 +25,7 @@ [mvxcvi/puget "1.0.1"] [reply "0.4.1"] [cheshire "5.6.0"] - [clj-jgit "0.8.0"] + [clj-jgit "0.8.10"] [clj-yaml "0.4.0"] [javazoom/jlayer "1.0.1"] [net.java.dev.jna/jna "4.1.0"] From 8116a50b710664ec05633d5c57d178d6e355f021 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Tue, 15 Jan 2019 21:31:42 -0700 Subject: [PATCH 04/19] wip --- boot/pod/src/boot/util/spec.clj | 8 ++++ boot/pod/test/boot/util_test.clj | 40 ++++++++++--------- boot/tasks/build.boot | 3 ++ .../src/boot/task/built_in.clj | 0 version.properties | 2 +- 5 files changed, 34 insertions(+), 19 deletions(-) create mode 100644 boot/pod/src/boot/util/spec.clj create mode 100644 boot/tasks/build.boot rename boot/{core => tasks}/src/boot/task/built_in.clj (100%) diff --git a/boot/pod/src/boot/util/spec.clj b/boot/pod/src/boot/util/spec.clj new file mode 100644 index 00000000..2309c9af --- /dev/null +++ b/boot/pod/src/boot/util/spec.clj @@ -0,0 +1,8 @@ +(ns boot.util.spec + (:require + [clojure.spec.alpha :as s] + [boot.util :as util])) + +(s/fdef util/dep-as-map + :args (s/coll-of any?) + :ret map?) diff --git a/boot/pod/test/boot/util_test.clj b/boot/pod/test/boot/util_test.clj index 90646476..ff6144e5 100644 --- a/boot/pod/test/boot/util_test.clj +++ b/boot/pod/test/boot/util_test.clj @@ -1,16 +1,20 @@ (ns boot.util-test (:require [clojure.test :refer :all] - [boot.util :as util :refer :all])) + [clojure.spec.alpha :as spec] + [clojure.spec.test.alpha :as stest] + [boot.util :as util :refer :all] + [boot.util.spec])) (deftest dep-mgt-functions - + + (stest/check 'util/dep-as-map) (let [project 'com.example/project version "1.2.3" scope "test" exclusions [['com.example/excl1 :extension "jar"] 'com.example/excl2]] - + (testing "simple dep-as-map conversions" (are [input expected] (= expected (dep-as-map input)) @@ -23,22 +27,22 @@ {:project nil :version nil :scope "compile"} - + [project] {:project project :version nil :scope "compile"} - + [project version] {:project project :version version :scope "compile"} - + [project version :scope scope] {:project project :version version :scope scope} - + [project version :scope scope :exclusions exclusions] {:project project :version version @@ -58,28 +62,28 @@ {:project project :version nil :scope scope})) - - (testing "simple map-as-dep conversions" + + (testing "simple map-as-dep conversions" (are [input expected] (= expected (map-as-dep input)) {} [] - + {:project project :version nil :scope "compile"} [project] - + {:project project :version version :scope "compile"} [project version] - + {:project project :version version :scope scope} [project version :scope scope] - + {:project project :version version :exclusions exclusions} @@ -98,21 +102,21 @@ [project :scope scope])) (testing "roundtripping deps" - + (are [input] (= input (dep-as-map (map-as-dep input))) - + {:project project :version nil :scope "compile"} - + {:project project :version version :scope "compile"} - + {:project project :version version :scope scope} - + {:project project :version version :scope scope diff --git a/boot/tasks/build.boot b/boot/tasks/build.boot new file mode 100644 index 00000000..a8061f21 --- /dev/null +++ b/boot/tasks/build.boot @@ -0,0 +1,3 @@ +(set-env! + :source-paths #{"src" "test"} + :dependencies '[[org.clojure/clojure "1.9.0"]]) diff --git a/boot/core/src/boot/task/built_in.clj b/boot/tasks/src/boot/task/built_in.clj similarity index 100% rename from boot/core/src/boot/task/built_in.clj rename to boot/tasks/src/boot/task/built_in.clj diff --git a/version.properties b/version.properties index ece21668..cd92d6b0 100644 --- a/version.properties +++ b/version.properties @@ -1 +1 @@ -version=2.8.2 +version=3.0.0-SNAPSHOT From 88f9e34c18cd8d89668989e92596c271dac51f52 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Tue, 15 Jan 2019 22:01:49 -0700 Subject: [PATCH 05/19] move task tests --- boot/core/build.boot | 1 - boot/tasks/build.boot | 5 +++-- boot/{core/test/boot => tasks/test}/task/built_in_test.clj | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename boot/{core/test/boot => tasks/test}/task/built_in_test.clj (100%) diff --git a/boot/core/build.boot b/boot/core/build.boot index 65c7dc8a..491a7ca9 100644 --- a/boot/core/build.boot +++ b/boot/core/build.boot @@ -7,7 +7,6 @@ (require '[boot.test :refer [runtests test-report test-exit]] '[metosin.boot-alt-test :refer [alt-test]] - 'boot.task.built-in-test 'boot.test-test) (import boot.App) diff --git a/boot/tasks/build.boot b/boot/tasks/build.boot index a8061f21..21d95bc6 100644 --- a/boot/tasks/build.boot +++ b/boot/tasks/build.boot @@ -1,3 +1,4 @@ (set-env! - :source-paths #{"src" "test"} - :dependencies '[[org.clojure/clojure "1.9.0"]]) + :source-paths #{"test"} + :resource-paths #{"src"} + :dependencies '[[org.clojure/clojure "1.9.0"]]) diff --git a/boot/core/test/boot/task/built_in_test.clj b/boot/tasks/test/task/built_in_test.clj similarity index 100% rename from boot/core/test/boot/task/built_in_test.clj rename to boot/tasks/test/task/built_in_test.clj From 52d47c34b9744ebcd60863d98ac5b6520a8236e7 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Thu, 17 Jan 2019 19:29:14 -0700 Subject: [PATCH 06/19] v3-snapshot split built-in tasks, disable testing, remove help task from core, bump clojure --- Makefile | 2 +- boot.properties | 1 + boot/core/boot.properties | 1 + boot/core/build.boot | 43 +++++++++++++++-------------- boot/core/src/boot/main.clj | 6 ++-- boot/core/src/boot/task_helpers.clj | 4 +-- boot/pod/test/boot/util_test.clj | 12 ++++---- boot/tasks/build.boot | 2 +- boot/worker/build.boot | 2 +- docker/openjdk.dockerfile | 17 ++++++++++++ 10 files changed, 55 insertions(+), 35 deletions(-) create mode 100644 boot.properties create mode 100644 boot/core/boot.properties create mode 100644 docker/openjdk.dockerfile diff --git a/Makefile b/Makefile index ee6b9c52..1ac86757 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,7 @@ bin/lein: mkdirs chmod 755 bin/lein bin/boot: mkdirs - curl -fsSLo bin/boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh + wget -O bin/boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh chmod 755 bin/boot deps: bin/lein bin/boot diff --git a/boot.properties b/boot.properties new file mode 100644 index 00000000..89264136 --- /dev/null +++ b/boot.properties @@ -0,0 +1 @@ +BOOT_VERSION=3.0.0-SNAPSHOT diff --git a/boot/core/boot.properties b/boot/core/boot.properties new file mode 100644 index 00000000..581d32c1 --- /dev/null +++ b/boot/core/boot.properties @@ -0,0 +1 @@ +BOOT_CLOJURE_VERSION=1.9.0 diff --git a/boot/core/build.boot b/boot/core/build.boot index 491a7ca9..dd74da5a 100644 --- a/boot/core/build.boot +++ b/boot/core/build.boot @@ -1,28 +1,29 @@ (set-env! - :source-paths #{"src" "test"} - :dependencies '[[org.clojure/tools.reader "1.0.0-alpha2"] - [metosin/boot-alt-test "0.3.2" :scope "test"]]) + :source-paths #{"src"} ;"test"} + :dependencies '[[org.clojure/clojure "1.9.0"]]) + ;[org.clojure/tools.reader "1.0.0-alpha2"]]) + ;[metosin/boot-alt-test "0.3.2" :scope "test"]]) -(ns-unmap 'boot.user 'test) +;(ns-unmap 'boot.user 'test) -(require '[boot.test :refer [runtests test-report test-exit]] - '[metosin.boot-alt-test :refer [alt-test]] - 'boot.test-test) +;(require '[boot.test :refer [runtests test-report test-exit]] +; '[metosin.boot-alt-test :refer [alt-test]]) + ;'boot.test-test) -(import boot.App) +;(import boot.App) -(deftask integration-test [] - (comp - (runtests) - (test-report) - (test-exit))) +;(deftask integration-test [] +; (comp +; (runtests) +; (test-report) +; (test-exit)) -(deftask unit-test [] - (alt-test :test-matcher #"boot\.cli-test")) +;(deftask unit-test [] +; (alt-test :test-matcher #"boot\.cli-test")) -(deftask test [] - (comp - (with-pass-thru [fs] - (boot.util/info "Testing against version %s\n" (App/config "BOOT_VERSION"))) - (unit-test) - (integration-test))) +;(deftask test [] + ;(comp +; (with-pass-thru [fs] +; (boot.util/info "Testing against version %s\n" (App/config "BOOT_VERSION")) +; (unit-test) +; (integration-test)) diff --git a/boot/core/src/boot/main.clj b/boot/core/src/boot/main.clj index cddb8e79..110759e3 100644 --- a/boot/core/src/boot/main.clj +++ b/boot/core/src/boot/main.clj @@ -89,7 +89,7 @@ (with-out-str (pp/write form :dispatch pp/code-dispatch))))) (defn emit [boot? argv userscript localscript bootscript import-ns inits] - (let [boot-use '[boot.core boot.util boot.task.built-in]] + (let [boot-use '[boot.core boot.util]] ;boot.task.built-in]] (str (string/join "\n\n" @@ -103,8 +103,8 @@ (pr-boot-form `(let [boot?# ~boot?] (if-not boot?# - (when-let [main# (resolve 'boot.user/-main)] (main# ~@argv)) - (core/boot ~@(or (seq argv) ["boot.task.built-in/help"])))))])) + (when-let [main# (resolve 'boot.user/-main)] (main# ~@argv)))))])) + ;(core/boot ~@(or (seq argv) ["boot.task.built-in/help"])))))])) "\n"))) (defn shebang? [arg] diff --git a/boot/core/src/boot/task_helpers.clj b/boot/core/src/boot/task_helpers.clj index 8498c047..d70e180d 100644 --- a/boot/core/src/boot/task_helpers.clj +++ b/boot/core/src/boot/task_helpers.clj @@ -18,8 +18,8 @@ (defn- tasks-table [tasks] (let [get-task #(-> % :name str) get-desc #(-> % :doc first-line) - built-in {nil (get tasks 'boot.task.built-in)}] - (->> (dissoc tasks 'boot.task.built-in) + built-in {nil nil}] ;(get tasks 'boot.task.built-in)}] + (->> tasks ;(dissoc tasks 'boot.task.built-in) (concat built-in) (interpose nil) (mapcat (fn [[_ xs]] (or xs [{:name "" :doc ""}]))) (mapv (fn [x] ["" (get-task x) (get-desc x)]))))) diff --git a/boot/pod/test/boot/util_test.clj b/boot/pod/test/boot/util_test.clj index ff6144e5..af027258 100644 --- a/boot/pod/test/boot/util_test.clj +++ b/boot/pod/test/boot/util_test.clj @@ -132,10 +132,10 @@ ;; checks that optional version with option works {:project project :version nil - :scope scope})) + :scope scope})))) - (testing "check unusual arguments" - (is (thrown? Exception (dep-as-map {}))) - (is (= [] (map-as-dep nil))) - (is (= [] (map-as-dep []))) - (is (thrown? Exception (map-as-dep 3)))))) + ;(testing "check unusual arguments" + ;(is (thrown? Exception (dep-as-map {}))) + ;(is (= [] (map-as-dep nil))) + ;(is (= [] (map-as-dep [])))))) + ;(is (thrown? Exception (map-as-dep 3)))))) diff --git a/boot/tasks/build.boot b/boot/tasks/build.boot index 21d95bc6..74f3c70c 100644 --- a/boot/tasks/build.boot +++ b/boot/tasks/build.boot @@ -1,4 +1,4 @@ (set-env! - :source-paths #{"test"} + ;:source-paths #{"test"} :resource-paths #{"src"} :dependencies '[[org.clojure/clojure "1.9.0"]]) diff --git a/boot/worker/build.boot b/boot/worker/build.boot index 7d6d84c9..3848e66e 100644 --- a/boot/worker/build.boot +++ b/boot/worker/build.boot @@ -1,5 +1,5 @@ (set-env! - :source-paths #{"src" "test"} + :source-paths #{"src"} ;"test"} :dependencies '[[net.cgrand/parsley "0.9.3" :exclusions [org.clojure/clojure]] [mvxcvi/puget "1.0.1"] [reply "0.4.1"] diff --git a/docker/openjdk.dockerfile b/docker/openjdk.dockerfile new file mode 100644 index 00000000..1f7e32db --- /dev/null +++ b/docker/openjdk.dockerfile @@ -0,0 +1,17 @@ +FROM openjdk:8-alpine AS openjdk + +RUN apk add wget git make bash + +FROM openjdk AS boot + +RUN wget -O /usr/local/bin/boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh + +RUN chmod 755 /usr/local/bin/boot + +COPY . /usr/boot-clj/ + +WORKDIR /usr/boot-clj + +RUN make deps + +RUN make install From 796473be04b6c3f4b528a2ad5e669cf69ea9fdc6 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Thu, 17 Jan 2019 20:09:37 -0700 Subject: [PATCH 07/19] Update README.md --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 436bb019..651c8c16 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,4 @@ - - Boot Logo - - -# Boot +

boot-clj

[![Build Status](https://travis-ci.org/boot-clj/boot.svg?branch=master)](https://travis-ci.org/boot-clj/boot) [![Stories in Ready][waffle-badge]][waffle-board] @@ -173,7 +169,7 @@ boot -r src -d me.raynes/conch:0.8.0 -- pom -p my-project -v 0.1.0 -- jar -M Foo ``` What we did here was we built a pipeline on the command line and ran it to -build our project. +build our project. * We specified the resource directory (files that will end up in the jar) via boot's `-r` option. * We added the `conch` dependency via boot's `-d` option. @@ -204,7 +200,7 @@ First we'll set some global boot options–we'll set the source directory and ad the `conch` dependency to the build environment: ```clojure -boot.user=> (set-env! +boot.user=> (set-env! #_=> :resource-paths #{"src"} #_=> :dependencies '[[me.raynes/conch "0.8.0"]]) ``` From 271bdb40535ed4458144f55d4bae3e17d4539cc1 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Thu, 17 Jan 2019 20:11:40 -0700 Subject: [PATCH 08/19] Create boot-clj.png --- .github/boot-clj.png | Bin 0 -> 182599 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/boot-clj.png diff --git a/.github/boot-clj.png b/.github/boot-clj.png new file mode 100644 index 0000000000000000000000000000000000000000..516ac50bf5f65b566e92359e20fbc921ad3c3659 GIT binary patch literal 182599 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 z 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 Date: Sat, 19 Jan 2019 17:59:38 -0700 Subject: [PATCH 09/19] Revert "v3-snapshot" This reverts commit 52d47c34b9744ebcd60863d98ac5b6520a8236e7. --- Makefile | 2 +- boot.properties | 1 - boot/core/boot.properties | 1 - boot/core/build.boot | 43 ++++++++++++++--------------- boot/core/src/boot/main.clj | 6 ++-- boot/core/src/boot/task_helpers.clj | 4 +-- boot/pod/test/boot/util_test.clj | 12 ++++---- boot/tasks/build.boot | 2 +- boot/worker/build.boot | 2 +- docker/openjdk.dockerfile | 17 ------------ 10 files changed, 35 insertions(+), 55 deletions(-) delete mode 100644 boot.properties delete mode 100644 boot/core/boot.properties delete mode 100644 docker/openjdk.dockerfile diff --git a/Makefile b/Makefile index 1ac86757..ee6b9c52 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,7 @@ bin/lein: mkdirs chmod 755 bin/lein bin/boot: mkdirs - wget -O bin/boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh + curl -fsSLo bin/boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh chmod 755 bin/boot deps: bin/lein bin/boot diff --git a/boot.properties b/boot.properties deleted file mode 100644 index 89264136..00000000 --- a/boot.properties +++ /dev/null @@ -1 +0,0 @@ -BOOT_VERSION=3.0.0-SNAPSHOT diff --git a/boot/core/boot.properties b/boot/core/boot.properties deleted file mode 100644 index 581d32c1..00000000 --- a/boot/core/boot.properties +++ /dev/null @@ -1 +0,0 @@ -BOOT_CLOJURE_VERSION=1.9.0 diff --git a/boot/core/build.boot b/boot/core/build.boot index dd74da5a..491a7ca9 100644 --- a/boot/core/build.boot +++ b/boot/core/build.boot @@ -1,29 +1,28 @@ (set-env! - :source-paths #{"src"} ;"test"} - :dependencies '[[org.clojure/clojure "1.9.0"]]) - ;[org.clojure/tools.reader "1.0.0-alpha2"]]) - ;[metosin/boot-alt-test "0.3.2" :scope "test"]]) + :source-paths #{"src" "test"} + :dependencies '[[org.clojure/tools.reader "1.0.0-alpha2"] + [metosin/boot-alt-test "0.3.2" :scope "test"]]) -;(ns-unmap 'boot.user 'test) +(ns-unmap 'boot.user 'test) -;(require '[boot.test :refer [runtests test-report test-exit]] -; '[metosin.boot-alt-test :refer [alt-test]]) - ;'boot.test-test) +(require '[boot.test :refer [runtests test-report test-exit]] + '[metosin.boot-alt-test :refer [alt-test]] + 'boot.test-test) -;(import boot.App) +(import boot.App) -;(deftask integration-test [] -; (comp -; (runtests) -; (test-report) -; (test-exit)) +(deftask integration-test [] + (comp + (runtests) + (test-report) + (test-exit))) -;(deftask unit-test [] -; (alt-test :test-matcher #"boot\.cli-test")) +(deftask unit-test [] + (alt-test :test-matcher #"boot\.cli-test")) -;(deftask test [] - ;(comp -; (with-pass-thru [fs] -; (boot.util/info "Testing against version %s\n" (App/config "BOOT_VERSION")) -; (unit-test) -; (integration-test)) +(deftask test [] + (comp + (with-pass-thru [fs] + (boot.util/info "Testing against version %s\n" (App/config "BOOT_VERSION"))) + (unit-test) + (integration-test))) diff --git a/boot/core/src/boot/main.clj b/boot/core/src/boot/main.clj index 110759e3..cddb8e79 100644 --- a/boot/core/src/boot/main.clj +++ b/boot/core/src/boot/main.clj @@ -89,7 +89,7 @@ (with-out-str (pp/write form :dispatch pp/code-dispatch))))) (defn emit [boot? argv userscript localscript bootscript import-ns inits] - (let [boot-use '[boot.core boot.util]] ;boot.task.built-in]] + (let [boot-use '[boot.core boot.util boot.task.built-in]] (str (string/join "\n\n" @@ -103,8 +103,8 @@ (pr-boot-form `(let [boot?# ~boot?] (if-not boot?# - (when-let [main# (resolve 'boot.user/-main)] (main# ~@argv)))))])) - ;(core/boot ~@(or (seq argv) ["boot.task.built-in/help"])))))])) + (when-let [main# (resolve 'boot.user/-main)] (main# ~@argv)) + (core/boot ~@(or (seq argv) ["boot.task.built-in/help"])))))])) "\n"))) (defn shebang? [arg] diff --git a/boot/core/src/boot/task_helpers.clj b/boot/core/src/boot/task_helpers.clj index d70e180d..8498c047 100644 --- a/boot/core/src/boot/task_helpers.clj +++ b/boot/core/src/boot/task_helpers.clj @@ -18,8 +18,8 @@ (defn- tasks-table [tasks] (let [get-task #(-> % :name str) get-desc #(-> % :doc first-line) - built-in {nil nil}] ;(get tasks 'boot.task.built-in)}] - (->> tasks ;(dissoc tasks 'boot.task.built-in) + built-in {nil (get tasks 'boot.task.built-in)}] + (->> (dissoc tasks 'boot.task.built-in) (concat built-in) (interpose nil) (mapcat (fn [[_ xs]] (or xs [{:name "" :doc ""}]))) (mapv (fn [x] ["" (get-task x) (get-desc x)]))))) diff --git a/boot/pod/test/boot/util_test.clj b/boot/pod/test/boot/util_test.clj index af027258..ff6144e5 100644 --- a/boot/pod/test/boot/util_test.clj +++ b/boot/pod/test/boot/util_test.clj @@ -132,10 +132,10 @@ ;; checks that optional version with option works {:project project :version nil - :scope scope})))) + :scope scope})) - ;(testing "check unusual arguments" - ;(is (thrown? Exception (dep-as-map {}))) - ;(is (= [] (map-as-dep nil))) - ;(is (= [] (map-as-dep [])))))) - ;(is (thrown? Exception (map-as-dep 3)))))) + (testing "check unusual arguments" + (is (thrown? Exception (dep-as-map {}))) + (is (= [] (map-as-dep nil))) + (is (= [] (map-as-dep []))) + (is (thrown? Exception (map-as-dep 3)))))) diff --git a/boot/tasks/build.boot b/boot/tasks/build.boot index 74f3c70c..21d95bc6 100644 --- a/boot/tasks/build.boot +++ b/boot/tasks/build.boot @@ -1,4 +1,4 @@ (set-env! - ;:source-paths #{"test"} + :source-paths #{"test"} :resource-paths #{"src"} :dependencies '[[org.clojure/clojure "1.9.0"]]) diff --git a/boot/worker/build.boot b/boot/worker/build.boot index 3848e66e..7d6d84c9 100644 --- a/boot/worker/build.boot +++ b/boot/worker/build.boot @@ -1,5 +1,5 @@ (set-env! - :source-paths #{"src"} ;"test"} + :source-paths #{"src" "test"} :dependencies '[[net.cgrand/parsley "0.9.3" :exclusions [org.clojure/clojure]] [mvxcvi/puget "1.0.1"] [reply "0.4.1"] diff --git a/docker/openjdk.dockerfile b/docker/openjdk.dockerfile deleted file mode 100644 index 1f7e32db..00000000 --- a/docker/openjdk.dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM openjdk:8-alpine AS openjdk - -RUN apk add wget git make bash - -FROM openjdk AS boot - -RUN wget -O /usr/local/bin/boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh - -RUN chmod 755 /usr/local/bin/boot - -COPY . /usr/boot-clj/ - -WORKDIR /usr/boot-clj - -RUN make deps - -RUN make install From 3a654dbed59e91aa070e96b82a50ac557e0b2a63 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sun, 20 Jan 2019 10:41:49 -0700 Subject: [PATCH 10/19] it's working again --- .gitignore | 2 +- Makefile | 6 +- boot.properties | 1 + boot/base/pom.xml | 98 ++++++++++++++++++++++++ boot/core/src/boot/help.clj | 52 +++++++++++++ boot/core/src/boot/main.clj | 4 +- boot/tasks/project.clj | 19 +++++ boot/tasks/src/boot/task/built_in.clj | 46 ----------- docker/boot.dockerfile | 105 ++++++++++++++++++++++++++ docker/boot2.dockerfile | 59 +++++++++++++++ docker/clojure.dockerfile | 13 ++++ docker/openjdk.dockerfile | 6 ++ docker/tools.dockerfile | 14 ++++ 13 files changed, 373 insertions(+), 52 deletions(-) create mode 100644 boot.properties create mode 100644 boot/base/pom.xml create mode 100644 boot/core/src/boot/help.clj create mode 100644 boot/tasks/project.clj create mode 100644 docker/boot.dockerfile create mode 100644 docker/boot2.dockerfile create mode 100644 docker/clojure.dockerfile create mode 100644 docker/openjdk.dockerfile create mode 100644 docker/tools.dockerfile diff --git a/.gitignore b/.gitignore index c70ce52a..2d372135 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,7 @@ *.jar *.war -pom.xml +#pom.xml pom.xml.asc ### NREPL ###################################################################### diff --git a/Makefile b/Makefile index ee6b9c52..bc7567a1 100644 --- a/Makefile +++ b/Makefile @@ -44,9 +44,6 @@ bin/boot: mkdirs deps: bin/lein bin/boot -$(bootjar): $(verfile) boot/boot/project.clj - (cd boot/boot && lein install) - boot/base/pom.xml: $(verfile) boot/base/pom.in.xml (cd boot/base && cat pom.in.xml |sed 's/__VERSION__/$(version)/' > pom.xml) @@ -70,6 +67,9 @@ $(corejar): $(verfile) boot/core/project.clj $(shell find boot/core/src) $(baseuber): boot/base/pom.xml $(shell find boot/base/src/main) (cd boot/base && mvn -q assembly:assembly -DdescriptorId=jar-with-dependencies) +$(bootjar): $(verfile) boot/boot/project.clj + (cd boot/boot && lein install) + .installed: mkdirs $(basejar) $(alljars) cp $(baseuber) $(distjar) # FIXME: this is just for testing -- remove before release diff --git a/boot.properties b/boot.properties new file mode 100644 index 00000000..f7026cba --- /dev/null +++ b/boot.properties @@ -0,0 +1 @@ +BOOT_AS_ROOT=yes diff --git a/boot/base/pom.xml b/boot/base/pom.xml new file mode 100644 index 00000000..543ba7ad --- /dev/null +++ b/boot/base/pom.xml @@ -0,0 +1,98 @@ + + 4.0.0 + boot + base + jar + 3.0.0-SNAPSHOT + base + https://github.com/boot-clj/boot + Boot Java application loader and class. + + scm:git:git://github.com/boot-clj/boot.git + scm:git:ssh://git@github.com/boot-clj/boot.git + HEAD + https://github.com/boot-clj/boot.git + + + + Eclipse Public License 1.0 + http://opensource.org/licenses/eclipse-1.0.php + repo + + + + + sonatype + https://oss.sonatype.org/content/repositories/releases/ + + + sonatype-snaps + https://oss.sonatype.org/content/repositories/snapshots/ + + + clojars + https://repo.clojars.org/ + + + maven-central + http://repo1.maven.org/maven2/ + + + + UTF-8 + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + + boot.App + + + + + + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + + + + + + + src/main/resources + true + + **/*.properties + + + + src/main/resources + false + + **/*.properties + + + + + + + org.projectodd.shimdandy + shimdandy-api + 1.2.0 + + + junit + junit + 3.8.1 + test + + + diff --git a/boot/core/src/boot/help.clj b/boot/core/src/boot/help.clj new file mode 100644 index 00000000..c2d30554 --- /dev/null +++ b/boot/core/src/boot/help.clj @@ -0,0 +1,52 @@ +(ns boot.help + (:require [boot.core :as core] + [boot.main :as main] + [boot.task-helpers :as helpers] + [boot.from.table.core :as table] + [clojure.string :as string])) + + +(core/deftask help + "Print usage info and list available tasks." + [] + (core/with-pass-thru [_] + (let [tasks (#'helpers/available-tasks 'boot.user) + opts (->> main/cli-opts (mapv (fn [[x y z]] ["" (str x " " y) z]))) + envs [["" "BOOT_AS_ROOT" "Set to 'yes' to allow boot to run as root."] + ["" "BOOT_CERTIFICATES" "Specify certificate file paths."] + ["" "BOOT_CLOJARS_REPO" "Specify the url for the 'clojars' Maven repo."] + ["" "BOOT_CLOJARS_MIRROR" "Specify the mirror url for the 'clojars' Maven repo."] + ["" "BOOT_CLOJURE_VERSION" "The version of Clojure boot will provide (1.8.0)."] + ["" "BOOT_CLOJURE_NAME" "The artifact name of Clojure boot will provide (org.clojure/clojure)."] + ["" "BOOT_COLOR" "Set to 'no' to turn colorized output off."] + ["" "BOOT_FILE" "Build script name (build.boot)."] + ["" "BOOT_GPG_COMMAND" "System gpg command (gpg)."] + ["" "BOOT_HOME" "Directory where boot stores global state (~/.boot)."] + ["" "BOOT_WATCHERS_DISABLE" "Set to 'yes' to turn off inotify/FSEvents watches."] + ["" "BOOT_JAVA_COMMAND" "Specify the Java executable (java)."] + ["" "BOOT_JVM_OPTIONS" "Specify JVM options (Unix/Linux/OSX only)."] + ["" "BOOT_LOCAL_REPO" "The local Maven repo path (~/.m2/repository)."] + ["" "BOOT_MAVEN_CENTRAL_REPO" "Specify the url for the 'maven-central' Maven repo."] + ["" "BOOT_MAVEN_CENTRAL_MIRROR" "Specify the mirror url for the 'maven-central' Maven repo."] + ["" "BOOT_VERSION" "Specify the version of boot core to use."] + ["" "BOOT_WARN_DEPRECATED" "Set to 'no' to suppress deprecation warnings."]] + files [["" "./boot.properties" "Specify boot options for this project."] + ["" "./profile.boot" "A script to run after the global profile.boot but before the build script."] + ["" "BOOT_HOME/boot.properties" "Specify global boot options."] + ["" "BOOT_HOME/profile.boot" "A script to run before running the build script."]] + br #(conj % ["" "" ""])] + (printf "\n%s\n" + (-> [["" ""] ["Usage:" "boot OPTS TASK_OPTS TASK_OPTS ..."]] + (table/table :style :none) + with-out-str)) + (printf "%s\n\nDo `boot -h` to see usage info and TASK_OPTS for .\n" + (->> (-> [["" "" ""]] + (into (#'helpers/set-title opts "OPTS:")) (br) + (into (#'helpers/set-title (#'helpers/tasks-table tasks) "Tasks:")) (br) + (into (#'helpers/set-title envs "Env:")) (br) + (into (#'helpers/set-title files "Files:")) + (table/table :style :none) + with-out-str + (string/split #"\n")) + (map string/trimr) + (string/join "\n")))))) diff --git a/boot/core/src/boot/main.clj b/boot/core/src/boot/main.clj index cddb8e79..70efdaf3 100644 --- a/boot/core/src/boot/main.clj +++ b/boot/core/src/boot/main.clj @@ -89,7 +89,7 @@ (with-out-str (pp/write form :dispatch pp/code-dispatch))))) (defn emit [boot? argv userscript localscript bootscript import-ns inits] - (let [boot-use '[boot.core boot.util boot.task.built-in]] + (let [boot-use '[boot.core boot.util boot.help]] (str (string/join "\n\n" @@ -104,7 +104,7 @@ `(let [boot?# ~boot?] (if-not boot?# (when-let [main# (resolve 'boot.user/-main)] (main# ~@argv)) - (core/boot ~@(or (seq argv) ["boot.task.built-in/help"])))))])) + (core/boot ~@(or (seq argv) ["boot.help/help"])))))])) "\n"))) (defn shebang? [arg] diff --git a/boot/tasks/project.clj b/boot/tasks/project.clj new file mode 100644 index 00000000..7432c738 --- /dev/null +++ b/boot/tasks/project.clj @@ -0,0 +1,19 @@ +(import [java.util Properties]) +(require '[clojure.java.io :as io]) +(def propsfile "../../version.properties") +(def version (-> (doto (Properties.) (.load (io/input-stream propsfile))) + (.getProperty "version"))) + +(defproject boot/tasks version + :aot [#"^(?!boot\.repl-server).*$"] + :jar-exclusions [#"^clojure/core/"] + :description "Boot tasks module–this includes built-in tasks." + :url "https://github.com/boot-clj/boot" + :scm {:url "https://github.com/boot-clj/boot.git" :dir "../../"} + :repositories [["clojars" {:url "https://clojars.org/repo" :creds :gpg :sign-releases false}]] + :license {:name "Eclipse Public License" + :url "http://www.eclipse.org/legal/epl-v10.html"} + :dependencies [[boot/base ~version :scope "provided"] + [boot/core ~version :scope "provided"] + [boot/pod ~version :scope "provided"] + [org.clojure/clojure "1.9.0" :scope "provided"]]) diff --git a/boot/tasks/src/boot/task/built_in.clj b/boot/tasks/src/boot/task/built_in.clj index ed6c7108..26ce6e1f 100644 --- a/boot/tasks/src/boot/task/built_in.clj +++ b/boot/tasks/src/boot/task/built_in.clj @@ -28,52 +28,6 @@ [javax.tools ToolProvider DiagnosticCollector Diagnostic$Kind])) ;; Tasks ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(core/deftask help - "Print usage info and list available tasks." - [] - (core/with-pass-thru [_] - (let [tasks (#'helpers/available-tasks 'boot.user) - opts (->> main/cli-opts (mapv (fn [[x y z]] ["" (str x " " y) z]))) - envs [["" "BOOT_AS_ROOT" "Set to 'yes' to allow boot to run as root."] - ["" "BOOT_CERTIFICATES" "Specify certificate file paths."] - ["" "BOOT_CLOJARS_REPO" "Specify the url for the 'clojars' Maven repo."] - ["" "BOOT_CLOJARS_MIRROR" "Specify the mirror url for the 'clojars' Maven repo."] - ["" "BOOT_CLOJURE_VERSION" "The version of Clojure boot will provide (1.8.0)."] - ["" "BOOT_CLOJURE_NAME" "The artifact name of Clojure boot will provide (org.clojure/clojure)."] - ["" "BOOT_COLOR" "Set to 'no' to turn colorized output off."] - ["" "BOOT_FILE" "Build script name (build.boot)."] - ["" "BOOT_GPG_COMMAND" "System gpg command (gpg)."] - ["" "BOOT_HOME" "Directory where boot stores global state (~/.boot)."] - ["" "BOOT_WATCHERS_DISABLE" "Set to 'yes' to turn off inotify/FSEvents watches."] - ["" "BOOT_JAVA_COMMAND" "Specify the Java executable (java)."] - ["" "BOOT_JVM_OPTIONS" "Specify JVM options (Unix/Linux/OSX only)."] - ["" "BOOT_LOCAL_REPO" "The local Maven repo path (~/.m2/repository)."] - ["" "BOOT_MAVEN_CENTRAL_REPO" "Specify the url for the 'maven-central' Maven repo."] - ["" "BOOT_MAVEN_CENTRAL_MIRROR" "Specify the mirror url for the 'maven-central' Maven repo."] - ["" "BOOT_VERSION" "Specify the version of boot core to use."] - ["" "BOOT_WARN_DEPRECATED" "Set to 'no' to suppress deprecation warnings."]] - files [["" "./boot.properties" "Specify boot options for this project."] - ["" "./profile.boot" "A script to run after the global profile.boot but before the build script."] - ["" "BOOT_HOME/boot.properties" "Specify global boot options."] - ["" "BOOT_HOME/profile.boot" "A script to run before running the build script."]] - br #(conj % ["" "" ""])] - (printf "\n%s\n" - (-> [["" ""] ["Usage:" "boot OPTS TASK_OPTS TASK_OPTS ..."]] - (table/table :style :none) - with-out-str)) - (printf "%s\n\nDo `boot -h` to see usage info and TASK_OPTS for .\n" - (->> (-> [["" "" ""]] - (into (#'helpers/set-title opts "OPTS:")) (br) - (into (#'helpers/set-title (#'helpers/tasks-table tasks) "Tasks:")) (br) - (into (#'helpers/set-title envs "Env:")) (br) - (into (#'helpers/set-title files "Files:")) - (table/table :style :none) - with-out-str - (string/split #"\n")) - (map string/trimr) - (string/join "\n")))))) - (core/deftask ^{:deprecated "2.6.0"} checkout "Checkout dependencies task. DEPRECATED. (Use -c, --checkouts Boot option.) diff --git a/docker/boot.dockerfile b/docker/boot.dockerfile new file mode 100644 index 00000000..aa40d909 --- /dev/null +++ b/docker/boot.dockerfile @@ -0,0 +1,105 @@ +# base boot image +FROM boot-clj/tools:latest as boot + +# clojure arguments +ARG CLOJURE=1.10 +ENV VERSION=3.0.0-SNAPSHOT +# + +# copy src +COPY . /usr/boot-clj/ +# + +# boot root +WORKDIR /usr/boot-clj + +RUN echo VERSION=${VERSION} >> version.properties +# + +# boot base +WORKDIR /usr/boot-clj/boot/base + +RUN echo VERSION=${VERSION} >> version.properties + +#RUN clojure -A:${CLOJURE}:test -Spom + +#RUN cat pom.in.xml | sed 's/__VERSION__/$(version)/' > pom.xml + +RUN mvn install +# + +# boot pod +WORKDIR /usr/boot-clj/boot/pod + +RUN echo VERSION=${VERSION} >> version.properties + +#RUN clojure -A:${CLOJURE} -Spom + +RUN lein install +# + +# boot aether +WORKDIR /usr/boot-clj/boot/aether + +RUN echo VERSION=${VERSION} >> version.properties + +#RUN clojure -A:${CLOJURE} -Spom + +RUN lein install + +RUN lein uberjar + +RUN cp target/aether-${VERSION}-standalone.jar ../base/src/main/resources/aether.uber.jar +# + +# boot worker +WORKDIR /usr/boot-clj/boot/worker + +RUN echo VERSION=${VERSION} >> version.properties + +#RUN clojure -A:${CLOJURE} -Spom + +RUN lein install +# + +# boot core +WORKDIR /usr/boot-clj/boot/core + +RUN echo VERSION=${VERSION} >> version.properties + +#RUN clojure -A:${CLOJURE} -Spom + +RUN lein install +# + +# boot tasks +WORKDIR /usr/boot-clj/boot/tasks + +RUN echo VERSION=${VERSION} >> version.properties + +#RUN clojure -A:${CLOJURE} -Spom + +RUN lein install +# + +# boot uberjar +WORKDIR /usr/boot-clj/boot/base + +RUN mvn assembly:assembly -DdescriptorId=jar-with-dependencies +# + +# install boot locally +RUN mkdir -p ~/.boot/cache/bin/${VERSION} + +RUN cp target/base-${VERSION}.jar ~/.boot/cache/bin/${VERSION}/boot.jar +# + +# dont run as root +#WORKDIR /usr/boot-clj + +#RUN addgroup -g 1000 -S boot + +#RUN adduser -u 1000 -S boot -G boot + +#USER boot +# diff --git a/docker/boot2.dockerfile b/docker/boot2.dockerfile new file mode 100644 index 00000000..52c208ae --- /dev/null +++ b/docker/boot2.dockerfile @@ -0,0 +1,59 @@ +# base boot image +FROM boot-clj/tools:latest as boot + +ARG VERSION=3.0.0-SNAPSHOT + +RUN mkdir -p /usr/boot-clj + +COPY . /usr/boot-clj + +# base +WORKDIR /usr/boot-clj/boot/base + +RUN mvn -q install + +# pod +WORKDIR /usr/boot-clj/boot/pod + +RUN lein install + +# aether +WORKDIR /usr/boot-clj/boot/aether + +RUN lein install + +RUN lein uberjar + +RUN cp target/aether-3.0.0-SNAPSHOT-standalone.jar /usr/boot-clj/boot/base/src/main/resources/aether.uber.jar + +# worker +WORKDIR /usr/boot-clj/boot/worker + +RUN lein install + +# core +WORKDIR /usr/boot-clj/boot/core + +RUN lein install + +# tasks +WORKDIR /usr/boot-clj/boot/tasks + +RUN lein install + +# base uber +WORKDIR /usr/boot-clj/boot/base + +RUN mvn -q assembly:assembly -DdescriptorId=jar-with-dependencies + +# boot jar +WORKDIR /usr/boot-clj/boot/boot + +RUN lein install + +# final artifact +WORKDIR /usr/boot-clj/ + +RUN mkdir -p ~/.boot/cache/bin/3.0.0-SNAPSHOT + +RUN cp boot/base/target/base-3.0.0-SNAPSHOT-jar-with-dependencies.jar ~/.boot/cache/bin/3.0.0-SNAPSHOT/boot.jar diff --git a/docker/clojure.dockerfile b/docker/clojure.dockerfile new file mode 100644 index 00000000..c56b8af1 --- /dev/null +++ b/docker/clojure.dockerfile @@ -0,0 +1,13 @@ +# base openjdk image +FROM boot-clj/openjdk:8-alpine + +# clojure version +ARG CLOJURE_VERSION=1.10.0.411 + +# install clojure +RUN wget -O install-cljs.sh https://download.clojure.org/install/linux-install-${CLOJURE_VERSION}.sh + +RUN chmod +x install-cljs.sh + +RUN ./install-cljs.sh +# diff --git a/docker/openjdk.dockerfile b/docker/openjdk.dockerfile new file mode 100644 index 00000000..d819e6b1 --- /dev/null +++ b/docker/openjdk.dockerfile @@ -0,0 +1,6 @@ +# base openjdk image +FROM openjdk:8-alpine + +# install build tools +RUN apk add build-base curl maven bash +# diff --git a/docker/tools.dockerfile b/docker/tools.dockerfile new file mode 100644 index 00000000..4e2d44a5 --- /dev/null +++ b/docker/tools.dockerfile @@ -0,0 +1,14 @@ +# base boot image +FROM boot-clj/clojure:1.10.0 + +# install leiningen +RUN wget -O /usr/local/bin/lein https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein + +RUN chmod 755 /usr/local/bin/lein +# + +# install latest boot +RUN wget -O /usr/local/bin/boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh + +RUN chmod 755 /usr/local/bin/boot +# From bed349c67618b2d86e28c6e8f0b3464c14064761 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sun, 20 Jan 2019 10:58:19 -0700 Subject: [PATCH 11/19] Update .travis.yml --- .travis.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9b0a1fb4..e2e0cd67 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,11 +7,13 @@ jdk: - openjdk12 - openjdk13 -install: make deps -script: make test +services: + - docker -cache: - directories: - - $HOME/.m2 - - $HOME/.boot/cache - - $HOME/bin +before_install: + - docker build -t boot-clj/openjdk:8-alpine -f ./docker/openjdk.dockerfile . + - docker build -t boot-clj/clojure:1.10.0 -f ./docker/clojure.dockerfile . + - docker build -t boot-clj/tools:latest -f ./docker/tools.dockerfile . + +install: docker build -t boot-clj/boot:latest -f ./docker/boot2.dockerfile . +script: docker run -t boot-clj/boot:latest java -jar ~/.boot/cache/bin/3.0.0-SNAPSHOT/boot.jar From e9ccd1ca1da502517518f8f019dc6e5d50976173 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sun, 20 Jan 2019 11:37:25 -0700 Subject: [PATCH 12/19] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e2e0cd67..2430ad17 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,4 +16,4 @@ before_install: - docker build -t boot-clj/tools:latest -f ./docker/tools.dockerfile . install: docker build -t boot-clj/boot:latest -f ./docker/boot2.dockerfile . -script: docker run -t boot-clj/boot:latest java -jar ~/.boot/cache/bin/3.0.0-SNAPSHOT/boot.jar +script: docker run -t boot-clj/boot:latest cd ~/.boot/cache/bin/3.0.0-SNAPSHOT/ && ls -a From 083d9e82364bb02482316779299ba6836c027f6c Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Tue, 22 Jan 2019 18:11:50 -0700 Subject: [PATCH 13/19] update images --- docker/boot2.dockerfile => Dockerfile | 0 docker/boot.dockerfile | 105 -------------------------- docker/clojure.dockerfile | 13 ---- docker/openjdk.dockerfile | 6 -- docker/tools.dockerfile | 14 ---- 5 files changed, 138 deletions(-) rename docker/boot2.dockerfile => Dockerfile (100%) delete mode 100644 docker/boot.dockerfile delete mode 100644 docker/clojure.dockerfile delete mode 100644 docker/openjdk.dockerfile delete mode 100644 docker/tools.dockerfile diff --git a/docker/boot2.dockerfile b/Dockerfile similarity index 100% rename from docker/boot2.dockerfile rename to Dockerfile diff --git a/docker/boot.dockerfile b/docker/boot.dockerfile deleted file mode 100644 index aa40d909..00000000 --- a/docker/boot.dockerfile +++ /dev/null @@ -1,105 +0,0 @@ -# base boot image -FROM boot-clj/tools:latest as boot - -# clojure arguments -ARG CLOJURE=1.10 -ENV VERSION=3.0.0-SNAPSHOT -# - -# copy src -COPY . /usr/boot-clj/ -# - -# boot root -WORKDIR /usr/boot-clj - -RUN echo VERSION=${VERSION} >> version.properties -# - -# boot base -WORKDIR /usr/boot-clj/boot/base - -RUN echo VERSION=${VERSION} >> version.properties - -#RUN clojure -A:${CLOJURE}:test -Spom - -#RUN cat pom.in.xml | sed 's/__VERSION__/$(version)/' > pom.xml - -RUN mvn install -# - -# boot pod -WORKDIR /usr/boot-clj/boot/pod - -RUN echo VERSION=${VERSION} >> version.properties - -#RUN clojure -A:${CLOJURE} -Spom - -RUN lein install -# - -# boot aether -WORKDIR /usr/boot-clj/boot/aether - -RUN echo VERSION=${VERSION} >> version.properties - -#RUN clojure -A:${CLOJURE} -Spom - -RUN lein install - -RUN lein uberjar - -RUN cp target/aether-${VERSION}-standalone.jar ../base/src/main/resources/aether.uber.jar -# - -# boot worker -WORKDIR /usr/boot-clj/boot/worker - -RUN echo VERSION=${VERSION} >> version.properties - -#RUN clojure -A:${CLOJURE} -Spom - -RUN lein install -# - -# boot core -WORKDIR /usr/boot-clj/boot/core - -RUN echo VERSION=${VERSION} >> version.properties - -#RUN clojure -A:${CLOJURE} -Spom - -RUN lein install -# - -# boot tasks -WORKDIR /usr/boot-clj/boot/tasks - -RUN echo VERSION=${VERSION} >> version.properties - -#RUN clojure -A:${CLOJURE} -Spom - -RUN lein install -# - -# boot uberjar -WORKDIR /usr/boot-clj/boot/base - -RUN mvn assembly:assembly -DdescriptorId=jar-with-dependencies -# - -# install boot locally -RUN mkdir -p ~/.boot/cache/bin/${VERSION} - -RUN cp target/base-${VERSION}.jar ~/.boot/cache/bin/${VERSION}/boot.jar -# - -# dont run as root -#WORKDIR /usr/boot-clj - -#RUN addgroup -g 1000 -S boot - -#RUN adduser -u 1000 -S boot -G boot - -#USER boot -# diff --git a/docker/clojure.dockerfile b/docker/clojure.dockerfile deleted file mode 100644 index c56b8af1..00000000 --- a/docker/clojure.dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -# base openjdk image -FROM boot-clj/openjdk:8-alpine - -# clojure version -ARG CLOJURE_VERSION=1.10.0.411 - -# install clojure -RUN wget -O install-cljs.sh https://download.clojure.org/install/linux-install-${CLOJURE_VERSION}.sh - -RUN chmod +x install-cljs.sh - -RUN ./install-cljs.sh -# diff --git a/docker/openjdk.dockerfile b/docker/openjdk.dockerfile deleted file mode 100644 index d819e6b1..00000000 --- a/docker/openjdk.dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -# base openjdk image -FROM openjdk:8-alpine - -# install build tools -RUN apk add build-base curl maven bash -# diff --git a/docker/tools.dockerfile b/docker/tools.dockerfile deleted file mode 100644 index 4e2d44a5..00000000 --- a/docker/tools.dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -# base boot image -FROM boot-clj/clojure:1.10.0 - -# install leiningen -RUN wget -O /usr/local/bin/lein https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein - -RUN chmod 755 /usr/local/bin/lein -# - -# install latest boot -RUN wget -O /usr/local/bin/boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh - -RUN chmod 755 /usr/local/bin/boot -# From 60388807b26db500fe44e1f45ba7bc4c72069357 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Tue, 22 Jan 2019 18:12:22 -0700 Subject: [PATCH 14/19] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 52c208ae..502f9f72 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # base boot image -FROM boot-clj/tools:latest as boot +FROM bootclj/tooling as tools ARG VERSION=3.0.0-SNAPSHOT From c8efdf28e8006c533285c5ab78b99ad641c148e9 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sat, 26 Jan 2019 19:43:14 -0700 Subject: [PATCH 15/19] Update .travis.yml --- .travis.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2430ad17..0dd92593 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,10 +10,5 @@ jdk: services: - docker -before_install: - - docker build -t boot-clj/openjdk:8-alpine -f ./docker/openjdk.dockerfile . - - docker build -t boot-clj/clojure:1.10.0 -f ./docker/clojure.dockerfile . - - docker build -t boot-clj/tools:latest -f ./docker/tools.dockerfile . - -install: docker build -t boot-clj/boot:latest -f ./docker/boot2.dockerfile . -script: docker run -t boot-clj/boot:latest cd ~/.boot/cache/bin/3.0.0-SNAPSHOT/ && ls -a +install: docker build -t bootclj/boot:latest -f <(curl https://raw.githubusercontent.com/boot-clj/docker-boot/master/boot/3/Dockerfile) . +script: docker run -t bootclj/boot:latest cd ~/.boot/cache/bin/3.0.0-SNAPSHOT/ && ls -a From 0f14ff1acf541e43333f73cb830bb05793365b30 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sat, 26 Jan 2019 20:16:39 -0700 Subject: [PATCH 16/19] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0dd92593..1a1856b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,5 @@ jdk: services: - docker -install: docker build -t bootclj/boot:latest -f <(curl https://raw.githubusercontent.com/boot-clj/docker-boot/master/boot/3/Dockerfile) . +install: curl https://raw.githubusercontent.com/boot-clj/docker-boot/master/boot/3/Dockerfile | docker build -t bootclj/boot:latest -f - . script: docker run -t bootclj/boot:latest cd ~/.boot/cache/bin/3.0.0-SNAPSHOT/ && ls -a From 0ddc31bb9f2d35bb169fc586ce92b576b359a66b Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sat, 26 Jan 2019 22:28:40 -0700 Subject: [PATCH 17/19] update Dockerfile --- Dockerfile | 6 +-- boot/base/pom.in.xml | 98 ------------------------------------------- boot/base/pom.xml | 98 ------------------------------------------- boot/base/project.clj | 20 +++++++++ 4 files changed, 23 insertions(+), 199 deletions(-) delete mode 100644 boot/base/pom.in.xml delete mode 100644 boot/base/pom.xml create mode 100644 boot/base/project.clj diff --git a/Dockerfile b/Dockerfile index 502f9f72..e153f60d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ COPY . /usr/boot-clj # base WORKDIR /usr/boot-clj/boot/base -RUN mvn -q install +RUN lein install # pod WORKDIR /usr/boot-clj/boot/pod @@ -44,7 +44,7 @@ RUN lein install # base uber WORKDIR /usr/boot-clj/boot/base -RUN mvn -q assembly:assembly -DdescriptorId=jar-with-dependencies +RUN lein uberjar # boot jar WORKDIR /usr/boot-clj/boot/boot @@ -56,4 +56,4 @@ WORKDIR /usr/boot-clj/ RUN mkdir -p ~/.boot/cache/bin/3.0.0-SNAPSHOT -RUN cp boot/base/target/base-3.0.0-SNAPSHOT-jar-with-dependencies.jar ~/.boot/cache/bin/3.0.0-SNAPSHOT/boot.jar +RUN cp boot/base/target/base-3.0.0-SNAPSHOT-standalone.jar ~/.boot/cache/bin/3.0.0-SNAPSHOT/boot.jar diff --git a/boot/base/pom.in.xml b/boot/base/pom.in.xml deleted file mode 100644 index 75bdfd1f..00000000 --- a/boot/base/pom.in.xml +++ /dev/null @@ -1,98 +0,0 @@ - - 4.0.0 - boot - base - jar - __VERSION__ - base - https://github.com/boot-clj/boot - Boot Java application loader and class. - - scm:git:git://github.com/boot-clj/boot.git - scm:git:ssh://git@github.com/boot-clj/boot.git - HEAD - https://github.com/boot-clj/boot.git - - - - Eclipse Public License 1.0 - http://opensource.org/licenses/eclipse-1.0.php - repo - - - - - sonatype - https://oss.sonatype.org/content/repositories/releases/ - - - sonatype-snaps - https://oss.sonatype.org/content/repositories/snapshots/ - - - clojars - https://repo.clojars.org/ - - - maven-central - http://repo1.maven.org/maven2/ - - - - UTF-8 - - - - - org.apache.maven.plugins - maven-assembly-plugin - - - - boot.App - - - - - - maven-compiler-plugin - 3.1 - - 1.7 - 1.7 - - - - - - - src/main/resources - true - - **/*.properties - - - - src/main/resources - false - - **/*.properties - - - - - - - org.projectodd.shimdandy - shimdandy-api - 1.2.0 - - - junit - junit - 3.8.1 - test - - - diff --git a/boot/base/pom.xml b/boot/base/pom.xml deleted file mode 100644 index 543ba7ad..00000000 --- a/boot/base/pom.xml +++ /dev/null @@ -1,98 +0,0 @@ - - 4.0.0 - boot - base - jar - 3.0.0-SNAPSHOT - base - https://github.com/boot-clj/boot - Boot Java application loader and class. - - scm:git:git://github.com/boot-clj/boot.git - scm:git:ssh://git@github.com/boot-clj/boot.git - HEAD - https://github.com/boot-clj/boot.git - - - - Eclipse Public License 1.0 - http://opensource.org/licenses/eclipse-1.0.php - repo - - - - - sonatype - https://oss.sonatype.org/content/repositories/releases/ - - - sonatype-snaps - https://oss.sonatype.org/content/repositories/snapshots/ - - - clojars - https://repo.clojars.org/ - - - maven-central - http://repo1.maven.org/maven2/ - - - - UTF-8 - - - - - org.apache.maven.plugins - maven-assembly-plugin - - - - boot.App - - - - - - maven-compiler-plugin - 3.1 - - 1.7 - 1.7 - - - - - - - src/main/resources - true - - **/*.properties - - - - src/main/resources - false - - **/*.properties - - - - - - - org.projectodd.shimdandy - shimdandy-api - 1.2.0 - - - junit - junit - 3.8.1 - test - - - diff --git a/boot/base/project.clj b/boot/base/project.clj new file mode 100644 index 00000000..2cc8a49d --- /dev/null +++ b/boot/base/project.clj @@ -0,0 +1,20 @@ +(import [java.util Properties]) +(require '[clojure.java.io :as io]) +(def propsfile "../../version.properties") +(def version (-> (doto (Properties.) (.load (io/input-stream propsfile))) + (.getProperty "version"))) + +(defproject boot/base version + :aot [#"^(?!boot\.repl-server).*$"] + :jar-exclusions [#"^clojure/core/"] + :java-source-paths ["src/main/java"] + :description "Boot base module–this is the classloader shim." + :url "https://github.com/boot-clj/boot" + :scm {:url "https://github.com/boot-clj/boot.git" :dir "../../"} + :repositories [["clojars" {:url "https://clojars.org/repo" :creds :gpg :sign-releases false}] + ["sonatype" {:url "https://oss.sonatype.org/content/repositories/releases"}] + ["sonatype-snaps" {:url "https://oss.sonatype.org/content/repositories/snapshots"}]] + :license {:name "Eclipse Public License" + :url "http://www.eclipse.org/legal/epl-v10.html"} + :dependencies [[org.projectodd.shimdandy/shimdandy-api "1.2.1" :scope "compile"] + [junit/junit "3.8.1" :scope "test"]]) From 1a5463066d1defb8deaf135f636a979824599809 Mon Sep 17 00:00:00 2001 From: Matthew Ratzke Date: Sat, 26 Jan 2019 22:30:13 -0700 Subject: [PATCH 18/19] Delete Dockerfile --- Dockerfile | 59 ------------------------------------------------------ 1 file changed, 59 deletions(-) delete mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index e153f60d..00000000 --- a/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -# base boot image -FROM bootclj/tooling as tools - -ARG VERSION=3.0.0-SNAPSHOT - -RUN mkdir -p /usr/boot-clj - -COPY . /usr/boot-clj - -# base -WORKDIR /usr/boot-clj/boot/base - -RUN lein install - -# pod -WORKDIR /usr/boot-clj/boot/pod - -RUN lein install - -# aether -WORKDIR /usr/boot-clj/boot/aether - -RUN lein install - -RUN lein uberjar - -RUN cp target/aether-3.0.0-SNAPSHOT-standalone.jar /usr/boot-clj/boot/base/src/main/resources/aether.uber.jar - -# worker -WORKDIR /usr/boot-clj/boot/worker - -RUN lein install - -# core -WORKDIR /usr/boot-clj/boot/core - -RUN lein install - -# tasks -WORKDIR /usr/boot-clj/boot/tasks - -RUN lein install - -# base uber -WORKDIR /usr/boot-clj/boot/base - -RUN lein uberjar - -# boot jar -WORKDIR /usr/boot-clj/boot/boot - -RUN lein install - -# final artifact -WORKDIR /usr/boot-clj/ - -RUN mkdir -p ~/.boot/cache/bin/3.0.0-SNAPSHOT - -RUN cp boot/base/target/base-3.0.0-SNAPSHOT-standalone.jar ~/.boot/cache/bin/3.0.0-SNAPSHOT/boot.jar From b15eac6fa0a57c088442d221e2092ac4c6b1e0af Mon Sep 17 00:00:00 2001 From: Geoff Shannon Date: Sun, 27 Oct 2019 00:12:06 -0700 Subject: [PATCH 19/19] Fix Makefile for boot/base having switched from maven to lein --- Makefile | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index bc7567a1..4aeaa863 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ aetheruber = aether.uber.jar workerjar = boot/worker/target/worker-$(version).jar corejar = boot/core/target/core-$(version).jar basejar = boot/base/target/base-$(version).jar -baseuber = boot/base/target/base-$(version)-jar-with-dependencies.jar +baseuber = boot/base/target/base-$(version)-standalone.jar alljars = $(podjar) $(aetherjar) $(workerjar) $(corejar) $(baseuber) $(bootjar) java_version = $(shell java -version 2>&1 | awk -F '"' '/version/ {print $$2}' |awk -F. '{print $$1 "." $$2}') @@ -23,7 +23,7 @@ help: @echo "Usage: make {help|deps|install|deploy|test|clean}" 1>&2 && false clean: - (cd boot/base && mvn -q clean && rm -f src/main/resources/$(aetheruber)) + (cd boot/base && lein clean && rm -f src/main/resources/$(aetheruber)) (cd boot/core && lein clean) (cd boot/aether && lein clean) (cd boot/pod && lein clean) @@ -44,11 +44,8 @@ bin/boot: mkdirs deps: bin/lein bin/boot -boot/base/pom.xml: $(verfile) boot/base/pom.in.xml - (cd boot/base && cat pom.in.xml |sed 's/__VERSION__/$(version)/' > pom.xml) - -$(basejar): boot/base/pom.xml $(shell find boot/base/src/main/java) - (cd boot/base && mvn -q install) +$(basejar): $(verfile) boot/base/project.clj $(shell find boot/base/src/main/java) + (cd boot/base && lein install) $(podjar): $(verfile) boot/pod/project.clj $(shell find boot/pod/src) (cd boot/pod && lein install) @@ -64,8 +61,8 @@ $(workerjar): $(verfile) boot/worker/project.clj $(shell find boot/worker/src) $(corejar): $(verfile) boot/core/project.clj $(shell find boot/core/src) (cd boot/core && lein install) -$(baseuber): boot/base/pom.xml $(shell find boot/base/src/main) - (cd boot/base && mvn -q assembly:assembly -DdescriptorId=jar-with-dependencies) +$(baseuber): boot/base/project.clj $(shell find boot/base/src/main) + (cd boot/base && lein uberjar) $(bootjar): $(verfile) boot/boot/project.clj (cd boot/boot && lein install)