Fork me on GitHub

I am personally fine with cljdoc depending on js - but I have typically been on server-side throughout my career so maybe don’t give my opinion too much weight. Maybe @martinklepsch has a different opinion?


Has anybody found the js requirement an issue yet?


So far I’m pretty much liking our use of and Small observations: 1. it might be difficult for the interested to see what changes I’ve made to the git issue (so that’s not great) 2. there is no commit churn for changes to a design doc (but see 1). 3. discussion threads are nice 4. small deal, but my personal preference is AsciiDoc and git issues are CommonMark.


I'm curious, why do you think this will fracture the community? Or do you just mean the Clojure CLI / deps.edn itself (which has been around for close to three years now)?


"tools" are CLI-only only already.


It's been a strong message from the Clojure team about relying less on packaged artifacts (for many reasons) and relying more on source-based deployment. Datomic Ions is all about source-based deployment, I believe?

seancorfield23:08:22 is source-only. Cognitect's test-runner has always been source-only. That's the natural approach in CLI-land now. I think lein has a plugin to support git deps?


(`lein` seems to have plugins for everything!)


Aside from helping beginners, I haven't used lein since... 2015, I think? That was when we switched to boot at work. Then we switched to the CLI and deps.edn in 2018.


we still use lein at outpace.


Taking this to a thread since it's not cljdoc-related now 🙂 We kinda got stuck with lein. We wanted to extend it, and writing plugins is kind of a pain. That's why we switched to boot: it was so much easier to extend and write new tasks for.


But we didn't like the fact that Boot has you set up the dependencies programmatically -- we liked that aspect of Leiningen's declarative approach. So we put our deps in EDN files and had a Boot task that read those files and set up dependencies. So it wasn't much of a "hop" when the CLI appeared a few years later with deps.edn file!


And we've already switched to at work for all our dev/test/CI stuff. And that's why I've also switched several of my OSS projects over to and added a build.clj file that supports the full CI workflow.


Leiningen's fine "in the small" but it doesn't work well with monorepos out of the box, in our experience. It's a nice experience for beginners because it is "batteries included" and it's a fairly simple install on any platform (it even supports cmd.exe via an old school .bat file) so kudos, there, definitely. But I really do think the official tooling is better for everyone really 🙂


They have changed, so that doesn't help, and they're going to change again: -A will stop running :main-opts so you'll have to use -M for that.


I think once -A becomes "run a REPL (only)", it will be easier to remember how to use it.


Depends on when you boarded the CLI train...?


The deprecation warning for -A has been around ever since -M was promoted from "just" :main-opts to also deps/paths -- but the wording of it changed recently.


I really do wish they'd turned -R into "run a REPL". It's much more mnemonic: -X execute a function; -M run clojure.main stuff; -R run a REPL. Alas we have -A for "run A repl" 🙂


We did briefly have multi-function execution with -X but there's an ambiguity in parsing the command-line that made them take it away 😞


Yup, very true about syntax. Erlang is great but it's basically Prolog. Providing alternative syntaxes -- alternative languages sharing a platform's semantics -- is very important (I'm a computer linguist by training/early career). I happen to love Prolog, but I'm weird. I can totally see why having Ruby-syntax on BEAM is a huge draw (I happen to loathe Ruby from a syntax/semantic p.o.v.).


A lot of people are horribly put off by Lisp syntax, even though they are perfectly happy to use any number of Lisp semantics in non-() syntax.


I think Lisp is just beautiful to read (see, I said I'm weird). Ah, yes, that is a downside -- we need sexp-based differs!


(isn't someone working on one of those?)


Yeah, I think we'll see some sort of aliases-alias feature in deps.edn/CLI at some point. Folks have been asking about it for years now.


I must admit, I have not looked at babashka at all. I know borkdude is doing amazing work but the official tools do everything I need (even though I want them to do more).


You could point at babashka and say it's "fragmenting the community" but I don't think that's any more true than accusing the Clojure CLI of doing so 🙂


Since we are happily off topic here, I moved to deps.edn ages ago and prefer it. I liked lein, but personally found it too mysterious in the details of what it did, and if I wanted to make it do something else, I did not find that simple. These days I'm using babashka tasks in front of deps.edn.


Back in my java days I used maven and that was certainly the case with it. Lein felt a little bit like that but not so extreme.


But really I see it as a personal preference... and have no problemo with lein enthusiasts.


Yeah, that's the same feeling I had


so you care about others, and have opinions, sounds ok to me! simple_smile

💜 3

And a blessing, I'm sure. simple_smile


Hmm, that inspires me to put "beginner testing" in my brain to come up with a blog post...

💜 3

Yeah, and even as a non-beginner, that whole online experience is pretty amazing!


@U8QBZBHGD May I DM you about beginner testing stuff? I want to get a sanity check on something.