Fork me on GitHub
#announcements
<
2023-02-07
>
zalky14:02:41

New: https://github.com/zalky/reflet is a set of tools for building https://github.com/day8/re-frame + React based web apps with graph and non-graph data models. This includes: 1. Entity references and their lifecycle management 2. Performant multi-model db with graph queries and mutations 3. Simple but powerful hierarchical FSMs 4. JS and DOM interop utilities 5. Novel API-driven visual debugging of complex apps (don't sleep on this! see the short vid below) Reflet aims to be a natural progression on top of Re-frame, sort of like Re-frame++ (or Fulcro for Re-frame). Its main design goals are: 1. A la carte feature set: it is not a "framework", so use as much or as little of it as you want 2. Works with existing Re-frame applications: iterative, minimal approach to integration, so big re-writes can be avoided 3. Graph and non-graph data models can be mixed freely with a single source of truth: a Clojure map 4. A single macro encourages excellent, pluggable APIs 5. Highly performant and stable: Reflet has already been deployed in complex data-driven production apps for years (e.g. in Bioinformatics, Business analytics... ) Hope it is helpful! :rightwards_hand: 🎁 And more to come :face_with_open_eyes_and_hand_over_mouth: https://github.com/zalky/reflet

🎉 24
😮 8
robert-stuttaford14:02:45

impressive work, nice one!

🙏 2
pez15:02:51

This looks yummy! CC: @UGDTSFM4M

🙌 2
hlship18:02:30

This may be just what I need for a side project I've been thinking about for years.

🎉 2
respatialized18:02:02

wow, that visual debugger is very impressive! like a Smalltalk object viewer but for dataflow.

👏 2
zalky18:02:07

Awesome, hope it turns out to be helpful!

zalky18:02:39

Thanks: the debugger itself is kind of an example of what the library is capable of: it was written entirely in Reflet to avoid having to inline any big JS dependencies.

🤯 2
metal 2
clojure-spin 4
respatialized19:02:29

That also sounds very aligned with the Smalltalk spirit!

😎 2
robert-stuttaford06:02:02

the debug windows thing is super inspiring @U0HJK8682!

👏 2
Ivan14:02:26

nice work!

🙌 2
borkdude17:02:56

https://github.com/babashka/sci: Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs SCI is used in https://github.com/babashka/babashka, https://github.com/babashka/nbb, https://github.com/nextjournal/clerk, https://github.com/BetterThanTomorrow/joyride/ and many https://github.com/babashka/sci#projects-using-sci projects. It is now easier to add JS libraries to your SCI ctx, so users can require and use them:

(ns sci.examples.js-libs
  (:require ["fs" :as fs]
            [sci.core :as sci]))

(sci/eval-string "
(require '[\"fs\" :as fs])
(fs/existsSync \"README.md\")"
                 {:js-libs {"fs" fs}})
;;=> true
This and several other improvements in v0.7.38 (2023-02-07) • Add sci/add-js-lib! for adding js libraries including corresponding :js-libs init option • Speed up Java interop around 5x by caching method lookups • Allow destructucturing in CLJS defmethodhttps://github.com/babashka/sci/issues/862: fix JS constructor from class in CLJS namespace • Improve error location in macroexpansion • https://github.com/babashka/sci/issues/867: Support add-watch and remove-watch on sci.lang.Varhttps://github.com/babashka/sci/issues/648: implement *loaded-libs* and (loaded-libs) • Expose new parse-next+string function • Support qualified method names in proxy while ignoring the namespace • Support read with non-indexing reader, fixes https://github.com/babashka/babashka/issues/1465 • Improve top level macro expansion error location • Fix pprinting vars • Add reader-conditional to core vars • Fix https://github.com/babashka/babashka/issues/1482: make loading of libs thread safe

🎉 26
sheepy 6
sci 8
borkdude 12
joyride 4
nbb 6
babashka 4
Matthew Downey18:02:16

Announcing v1.0.1 of https://github.com/matthewdowney/rich-comment-tests (clojure, babashka), with one bugfix for a specific mechanism of running all tests from babashka, plus a README section on https://github.com/matthewdowney/rich-comment-tests#use-with-babashka-tasks.

🎉 24
babashka 8
clojure-spin 4
rich 6
borkdude12:02:59

@UP7RM6935 I'm working on a fix in rewrite-clj but with that fix in place, the only tests that are failing are for rct. https://github.com/clj-commons/rewrite-clj/pull/215 I'm looking into why this is happening but I have difficulty grokking the failing tests. Is this something you could help with?

Matthew Downey15:02:39

I must be abusing the rewrite-clj API somewhere, let me check

Matthew Downey15:02:47

@U04V15CAJ Nothing coming to mind immediately from looking at the failing tests, so I'll use your PR branch to try some stuff locally. I don't think it has to do with the 1.0.0 -> 1.0.1 bugfix. I won't be at the computer until the evening though. Sorry to be the one library holding this up!

borkdude15:02:43

No worries :) Your library might be testing something valuable that I accidentally broke :)

Matthew Downey15:02:23

Btw @UE21H2HHD the canary tests of known dependencies are a cool pattern, I hadn't seen that before

👍 2
borkdude15:02:52

Babashka also tests a plethora of libraries in every commit

😎 2
Matthew Downey15:02:22

Makes a lot of sense!

lread15:02:07

Gonna take a deep peek sometime very soon!

lread16:02:03

I'm missing a tiny bit of context here. Was there some existing test suite that helped you discover rewrite-clj has an issue? I'd like to rerun that (if there is one).

borkdude17:02:44

@UE21H2HHD For full context: I discovered an issue with rewrite-clj through clj-kondo. The issue is that this crashes:

(rewrite-clj.node/sexpr (rewrite-clj.node/coerce "\\s+"))
I submitted two patches which solve this problem. One of them broke tests in rich-comment-tests. I closed that one now. The other one works.

borkdude17:02:27

I don't think @UP7RM6935 has to look into this anymore, probably

borkdude17:02:03

I tested rich-comment-test by using local/root in deps.edn and then running:

bb test-clj

lread17:02:48

Ah ok. Thanks, did not understand where the discovery occurred.

borkdude17:02:34

I realize I forgot to add that context in the original issue, sorry

lread17:02:56

No problemo!