Fork me on GitHub
#malli
<
2020-01-15
>
rschmukler20:01:43

Hey @ikitommi just a heads up that https://github.com/teknql/pablo exists for when / if you go to break malli into sperate libraries. It's still early days, but it's made to ease the burden of managing mono-repo-like libraries. Documentation is sparse at the moment, but I don't anticipate that you'll be slicing malli up too soon either

ikitommi20:01:34

Oh, that looks great! How do you setup the artifact version when pushing to clojars?

rschmukler21:01:13

Two options (again, sorry on the sparse docs)

rschmukler21:01:36

either, you invoke it with an explicit :version via the repl / CLI (cli coming soon)

rschmukler21:01:56

or, it automatically looks at your git status and uses the tag

rschmukler21:01:35

ie. if git is tagged at 1.3.0 and not dirty, it's 1.3.0, if it's dirty then it's 1.3.0-SNAPSHOT

rschmukler21:01:55

Might also make it so that if you're ahead of a tag (but not dirty) it does 1.3.0-SNAPSHOT too

miikka21:01:57

Why not just use Leiningen?

rschmukler21:01:19

I ask myself that at least once a week 😉

rschmukler21:01:27

I'm hoping to get pablo to ultimately compile as a native image

rschmukler21:01:52

Also, I think the biggest thing that tools-deps gets right is that it forces your project into a edn map - lein allows real programming to happen inside the project.clj file which can allow it to become quite the mess

rschmukler21:01:34

But, I don't disagree that this is shoe-horning some lein-like functionality into tools deps

miikka21:01:48

Yeah… my ideal setup right now would be actually to have Leiningen for the project management (because it already works) and tools.deps for dependency management. Too bad that lein-tools-deps doesn’t quite make it work.

rschmukler21:01:35

The thing that kills me with tools-deps is that they didn't make a project.clj parser for when cloning via git... So if you attempt to depend on a git repo and they use lein and don't publish the xml file in the repo, you're SOL

rschmukler21:01:08

It feels very unpragmatic

miikka21:01:31

Well, you can’t correctly parse project.clj without running it. Although of course you could make it work in most cases.

rschmukler21:01:09

Yeah, 1) you could naively parse it and cover 99%, and 2) sci now exists - so you could eval it at make it work in 99.9999% of cases

miikka21:01:41

I think tools.deps is designed in such a way that you can add new dep types. But it’s not nice if it’s not there out of the box

rschmukler21:01:47

Yeah I think you're right - I think the coordinates can all be expanded on via multi-method. But then I'm not quite sure how you get it to load those multimethods before trying to resolve the local deps.edn file