babashka

ghaskins 2025-06-10T15:34:52.305139Z

Hi All…is there a way to direct bb on where to install the clojure-tools? I get this message during a docker build

Clojure tools not yet in expected location: /root/.deps.clj/1.12.0.1488/ClojureTools/clojure-tools-1.12.0.1488.jar
and then again during CI run
Clojure tools not yet in expected location: /github/home/.deps.clj/1.12.0.1488/ClojureTools/clojure-tools-1.12.0.1488.jar
and ideally I could optimize this to some path accessible to both. I do have a bb.edn if that helps.

borkdude 2025-06-10T15:54:25.068189Z

Yes, you can configure this. See: https://github.com/borkdude/deps.clj?tab=readme-ov-file#environment-variables

👍 1
ghaskins 2025-06-10T15:54:54.861169Z

Thank you…i was looking in the book…i didnt check the README

borkdude 2025-06-10T15:55:24.247579Z

This is the deps.clj readme. deps.clj is the project that is integrated in bb that deals with dependencies

ghaskins 2025-06-10T15:55:45.108039Z

Ah, ok…well I feel even better for missing it 😉

borkdude 2025-06-10T15:55:58.063659Z

of course, happy to help to you

ghaskins 2025-06-10T15:56:00.551509Z

I try to RTFM before asking, so ty for helping me

oλv 2025-06-10T19:00:58.175209Z

Mise + Babaska = 🚀

🚀 3
neumann 2025-06-18T20:39:31.526789Z

I've been using https://asdf-vm.com/ to great effect, and I would recommend it too. Has anyone used both mise and asdf that would be willing to comment on the differences?

teodorlu 2025-06-18T21:17:35.619669Z

I used asdf for about two years, and mise for about one year. I'd say mise is a pure upgrade over asdf: 1. I don't miss any of the nice parts of asfd 2. I find mise's subcommand structure less confusing than asdf 3. Mise feels faster

neumann 2025-06-18T21:26:27.561789Z

@teodorlu Thanks for the comparison! I’ll have to try out mise. As for performance, asdf was rewritten in Go, so I think it’s much faster than when it was in bash.

teodorlu 2025-06-18T21:28:27.099449Z

Ah — my experience was from when it was still in bash — so maybe I wouldn't feel the need to change if I tried it again today.

teodorlu 2025-06-13T11:57:42.988599Z

> I haven't found a nice way of pip installing the right packages yet though bb pip-install could possibly be a babashka task required by bb dev?

oλv 2025-06-13T12:47:55.890379Z

That's a good idea 😄

🎉 1
cormacc 2025-06-13T15:46:16.766799Z

Re. pip installing the right pip packages, direnv lets you stack dependency tooling. My .envrc for one python project looks like this...

use flake . --impure
layout pipenv
So you could replace that first line with the mise equivalent? Though I see from the mise docs that they prefer you don't use direnv.... ... for a different (clojurescript) project I'm using a flake shell hook to run 'yarn install --dev' when I navigate to that directory. That would work either? See this section in mise docs that looks like it should do it for you... https://mise.jdx.dev/hooks.html

oλv 2025-06-13T16:25:10.413629Z

Ooo postinstall sounds about right

2025-06-13T16:59:10.173699Z

Since it replaces direnv,.maybe they clash

kiemdoder 2025-06-11T09:12:57.502189Z

Maybe I've been living under a rock but what is Mise? I did a google search but got a lots of hits for different things and could not decide which one it might be.

oλv 2025-06-11T09:36:38.119429Z

Mise is a "dev tool manager". It bundles some niceties like managing environment variables, system dependencies and tasks. https://mise.jdx.dev/dev-tools/

2025-06-11T17:30:11.316479Z

To manage the version of bb ?

oλv 2025-06-11T17:38:25.213389Z

Yep

oλv 2025-06-11T17:38:33.453199Z

And JVM, Python, Node, etc

cormacc 2025-06-11T18:42:04.611019Z

I'm using nix flakes and direnv for this. I love it, until I have to edit a flake and am reminded how poorly I understand the cryptic syntax... Wish guix had a bit more traction, but nix has the mindshare and nixpkgs

teodorlu 2025-06-12T07:25:59.749259Z

Personally, I wish we'd have a "Rustup for Clojure" — for installing Java, clj, bb, kondo, clojure-lsp, bbin. "Installing all the things" has been a source of friction when introducing Clojure to new people.

teodorlu 2025-06-12T07:27:17.953079Z

Perhaps Mise is the pragmatic choice! Though then I have to keep track of tool versions.

Stephan Renatus 2025-06-12T08:46:02.584929Z

> Though then I have to keep track of tool versions. mise supports "latest" as version, too. for the yolo crowd ;)

teodorlu 2025-06-12T09:12:10.850219Z

right, I could technically check in a .mise.toml with latest references!

teodorlu 2025-06-12T09:13:01.749399Z

For Clojure tools, my general impression is that due to backwards compatibility, I don't need to bother as much with exact versions. I've had the tools I mentioned above installed as latest with brew for years, and not felt the need to do otherwise.

teodorlu 2025-06-12T09:19:17.183539Z

@post972 — which tools do you put in your .mise.toml?

2025-06-12T14:19:24.407399Z

I guess that's what I was asking. Normally for BB being on the latest has always worked haha. So I just use brew

2025-06-12T14:24:42.979659Z

But it's an interesting idea, mise is doing what direnv does but for binary versions, it's a cool concept.

cormacc 2025-06-12T14:43:54.326089Z

It's probably more a win for other stacks than clojure (we have a few with vendor-specific embedded C toolchains and supporting ruby test tooling), but being able to checkout a project, type direnv allow and have everything you need setup, or pulling a project repo and having updated dev tooling installed without polluting your global environment is magic. The good kind 🙂

cormacc 2025-06-12T14:47:24.464509Z

Also in a heavily regulated industry (we're medical devices) having those details controlled at repo level gives you the added bonus of streamlining some of the regulatory accountancy (you're obliged to control and document the versions of all tools used to generate and test released binaries -- fun, fun, fun)

2025-06-12T15:40:24.559119Z

Oh, it also replaces direnv and has a make like task runner?

oλv 2025-06-12T15:51:41.568319Z

@teodorlu My tools section in current project looks like this

[tools]
java = "24"
python = "3.13.2"
node = "22"
babashka = "latest"

👍 1
oλv 2025-06-12T16:03:54.997499Z

I also have all my environment variables in Mise as well as _.python.venv = { path = "venv", create = true } , which handles creation and activation of Python virtual environments. In my ~/.zshrc I have eval "$(mise activate zsh)" which makes it so that Mise automatically sets up my PATH and installs dependencies whenever I cd into a Mise project. All I need to do is cd project; bb dev and I'm up and running 😁. Alternatively cd project; mise bb dev works the same, for those who like to keep their shell pristine. I haven't found a nice way of pip installing the right packages yet though, so the green path for onboarding (with no preinstalled Java, Python, Node, Clojure or Babashka) looks like: 1. Set up mise.local.toml with personal config 2. pip install -r requirements.txt 3. bb dev

👍 1