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

馃帀 12
馃槷 4
robert-stuttaford14:02:45

impressive work, nice one!

馃檹 1
pez15:02:51

This looks yummy! CC: @UGDTSFM4M

馃檶 1
hlship18:02:30

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

馃帀 1
respatialized18:02:02

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

馃憦 1
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.

馃く 1
metal 1
clojure-spin 2
respatialized19:02:29

That also sounds very aligned with the Smalltalk spirit!

馃槑 1
robert-stuttaford06:02:02

the debug windows thing is super inspiring @U0HJK8682!

馃憦 1
Ivan14:02:26

nice work!

馃檶 1
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

馃帀 13
sheepy 3
sci 4
borkdude 6
joyride 2
nbb 3
babashka 2
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.

馃帀 12
babashka 4
clojure-spin 2
rich 3
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

馃憤 1
borkdude15:02:52

Babashka also tests a plethora of libraries in every commit

馃槑 1
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!