Fork me on GitHub
#duct
<
2019-10-30
>
rickmoynihan12:10:07

@weavejester: I’ve only just noticed that duct.core doesn’t actually depend on your meta-merge library, but instead has forked its implementation here: https://github.com/duct-framework/core/compare/f64981c438cd3d717b596f71bfb0c16e4f3304f5...2e943c5866219dad7828abc79bc2a2aac7894d7b I’m curious what the reasoning is, and what the differences are between the implementations?

rickmoynihan12:10:26

I’d always assumed it was a normal meta-merge

weavejester12:10:29

@rickmoynihan It’s a superset. It includes some extra metadata options (:promote and :demote), and some functions/data-readers that allow primitives to be marked as :replace and :displace, since normally metadata can’t be applied to primitives like integers or Java classes like strings.

weavejester12:10:40

I wanted the meta-merge library to be a straight clone of the Leiningen logic, and I also wasn’t 100% sure about the extra merge logic I added to Duct.

rickmoynihan12:10:33

Cool I suspected something like that. I’d been augmenting duct with some custom stuff we have, and relying on meta-merge as a transitive dependency. I’d assumed meta-merge was supplied by duct, but it tuns out it was a different library bringing it in. I’ll port to using the duct implementation, as I’d really like to ensure it’s compatible.

rickmoynihan12:10:48

Thanks for the explanation :thumbsup:

rickmoynihan12:10:35

are you 100% sure of the extra merge logic now? 🙂

weavejester12:10:59

I’d need to think about it; but even if I was 100% sure, I still think I’d keep them separate so that I could add experimental stuff to duct.core.merge that I wouldn’t want to add to meta-merge.core.

weavejester12:10:18

I’m happy with duct.core.merge in the context of Duct.

weavejester12:10:32

I just don’t know if it’s useful outside of that context.

rickmoynihan13:10:05

Cool. FWIW I think you’re right. I was just curious what you meant by 100% sure.

bocaj21:10:27

Is anyone working on clj/deps tooling for duct?