boot

:boot-clj: https://boot-clj.github.io/ — build tooling for Clojure. Dev chat in #boot-dev
grzm 2018-08-31T04:10:45.000100Z

On the command line, how do you pass an argument value that's a vector (e.g., [kw]) to a boot task? In particular boot-tools-deps -A argument takes [kw]. I've tried each of the following, and each gives me the same exception: clojure.lang.ExceptionInfo: option :aliases must be of type [kw] - boot deps -A:a - boot deps -A :a - boot deps -A[:a] - boot deps -A [:a] - boot deps -A "[:a]"

seancorfield 2018-08-31T04:41:17.000100Z

@grzm That's a bug in Boot, introduced recently.

seancorfield 2018-08-31T04:41:33.000100Z

If you back off to Boot 2.7.2 it will work as intended.

seancorfield 2018-08-31T04:42:16.000100Z

(and the answer is you can specify the option multiple times boot deps -A :a -A :b and it puts them together into a vector for the task)

seancorfield 2018-08-31T04:42:46.000100Z

It was introduced in Boot 2.8.0 or 2.8.1. Completely broke our build system at work so we went back to 2.7.2.

grzm 2018-08-31T04:44:08.000100Z

fah

grzm 2018-08-31T04:44:25.000100Z

Thanks, @seancorfield

grzm 2018-08-31T04:44:31.000100Z

You rock!

seancorfield 2018-08-31T04:54:42.000100Z

I hope it's fixed soon. That and a new release of the binary so JVM options can be picked up from the properties file. 🙂

grzm 2018-08-31T04:59:12.000100Z

This is the kind of thing that drives me batty:

λ boot --version
-bash: boot: command not found
λ brew install boot-clj
==&gt; Downloading <https://github.com/boot-clj/boot-bin/releases/download/2.7.2/boot.sh>
Already downloaded: /Users/grzm/Library/Caches/Homebrew/boot-clj--2.7.2.sh
🍺  /Users/grzm/homebrew/Cellar/boot-clj/2.7.2: 3 files, 8KB, built in 2 seconds
22:57 grzm@mugi: ~/some/path
λ boot --version
#<http://boot-clj.com>
#Thu Aug 30 22:57:32 MDT 2018
BOOT_VERSION=2.8.1
BOOT_CLOJURE_VERSION=1.8.0
BOOT_CLOJURE_NAME=org.clojure/clojure

grzm 2018-08-31T04:59:34.000100Z

It says it's installing 2.7.2. Yet it reports it's 2.8.1

2018-08-31T05:00:44.000100Z

you installed 2.7.2, but you have a newer version on your path

2018-08-31T05:00:53.000100Z

type -p boot

grzm 2018-08-31T05:01:07.000100Z

Nope. I forgot to include that test in the snippet (bad copy and paste, now updated)

2018-08-31T05:01:54.000200Z

ohh, yeah “-bash: boot: command not found” - Sorry, missed that

grzm 2018-08-31T05:02:17.000100Z

No, you didn't miss it 🙂 You commented while I was editing to add it back

grzm 2018-08-31T05:02:26.000100Z

λ type -p boot
/Users/grzm/homebrew/bin/boot

2018-08-31T05:03:58.000100Z

that’s odd

2018-08-31T05:07:15.000100Z

OK, so I’ve read the earlier context.. I think you can create a boot.properties file and replace the version-number there

seancorfield 2018-08-31T05:08:49.000100Z

~/.boot/boot.properties and your project's boot.properties can both affect the version.

grzm 2018-08-31T05:19:24.000100Z

I'm not in a project directory and I removed ~/.boot/boot.properties

seancorfield 2018-08-31T05:20:14.000100Z

If you put that back and set the version to 2.7.2 did that work?

grzm 2018-08-31T05:22:56.000100Z

Well, it's now reporting 2.7.2. Currently waiting for it to download a bunch of jars

1
grzm 2018-08-31T05:24:53.000100Z

Okay. So, what should the arguments to deps -A look like?

grzm 2018-08-31T05:25:15.000100Z

Oh, I see.

grzm 2018-08-31T05:27:33.000100Z

but seriously, what is going on there? I understand it's late and I'm tired, but if I'm downloading 2.7.2, why is it writing a 2.8.1 boot.properties file (which it did when I ran boot --version)? I understand that Clojure is supposed to be for adults, but that just seems sloppy. (same with breaking the behavior of args) </rant>

grzm 2018-08-31T05:28:41.000100Z

I do love Clojure when it works, but crikey the tooling can be so frustrating. Thanks for reading 😉

grzm 2018-08-31T05:30:57.000100Z

That's one of the reasons I really like your stuff, @seancorfield: it's always been solid and a joy to work with.

⭐ 1