scittle 2026-07-14

amazing 😄

For some reason scittle-kitchen is unable to build the emmy plugin anymore. I'm seeing this error: The required JS dependency "odex" is not available, it was required by "emmy/numerical/ode.cljc". The full build log is here: https://github.com/timothypratley/scittle-kitchen/actions/runs/29702249112/job/88233181955#step:6:550 It has worked in the past, and it works locally when I build, so I'm quite confused about it. 😕 I suspected a node version change but changing the github workflow to install the same version I was using locally (18) didn't make any difference. Is there something that needs to change upstream in Emmy perhaps? Any tips or suggestions welcome.

has emmy itself changed? do you need to run npm install?

Emmy has not changed. 🤷 I'm not sure about npm install... I'm just running the scittle build with extra plugins. My guess is that somehow locally shadow just magically gets the node dependencies, but on the github workflow that magic doesn't work. Sorry I don't really understand how emmy's node dependencies are fetched, because it's referenced via a jar dependency. Hmmm I wonder if using a git dependency would "work" because it would clone the repo and then maybe shadow knows how to find it's package.json 🤔 I'll try that though I'm just clutching at straws hahahaha.

npm deps are often specified in a deps.cljs file or something

:npm-deps {"@js-joda/core" "1.12.0"}

but not sure how this is processed by all the CLJS tooling

hmmm good clue... emmy doesn't have anything like that, just a package.json. Perhaps I need to add a :npm-deps that includes everything in the configuration 💡

what if you would just add an explicit npm install first to try if that's the issue?

it has a lot of npm deps

Good thinking. I confirmed that in the CI script if I add (shell {:dir build-dir} "npm" "install" "odex") before calling the scittle build, it now doesn't complain about odex (and instead complains about the next missing dependency). So I'm pretty sure if I were to for example copy the emmy package.json file into the scittle build root it would "work" hahahaha.... 😵‍💫

I think it's maybe supposed to update your local package.json but doesn't invoke npm install I think

verify in #C6N245JGG or #C03S1L9DN

👍 For now I set the shadow-cljs version back down to 3.3.8 and it built and published a new scittle-kitchen with the emmy plugin 😄 The issue is exactly the reason you mentioned; shadow no longer runs NPM https://clojureverse.org/t/shadow-cljs-3-4-x-updates/14873 but I'm quite happy to use the older shadow and that resolves it for me. Thank you so much for your patience and help, it means a lot! I really appreciate it.