- alpha (new feature work and enhancements in development)
- minor breaking changes allowed at this time, pay attention to the slack
- major versions ("v2-alpha") are marketing numbers and will increment with major milestones.
- hot code reloading stability improvements. note: you MUST run Shadow and your CLJ REPL from the same JVM! Do NOT use shadow from node_modules as this results in two JVMs because your Electric client/server code versions will desync.
- drop need for
#?(:cljs (:require-macros ...))
in electric src namespaces e/wrap
is nowe/offload
, note the signature changed it takes a clojure thunk now, example- zero config entrypoint – please compare to the starter app entrypoint to see if any boilerplate can be removed
- added
e/on-unmount
, example usage in presence demo. Notes: (a) this interface is going to change; (b) e/mount has been removed, you don't need it - introduced dom/on! optimized callback for fast events like mouse-move (note: usage will change soon, this atom is pure overhead)
- legacy
photon-ui
andphoton-dom
are removed, you must upgrade - electric-goog-history example published, this is going to move and have breaking changes but we do commit to maintaining it somewhere
- SVG support
- async stack trace improvements
- clj-kondo config is exported
- fix: clojure deep def is now supported (for debugging)
- fix: shadow-css is now supported
- fix: reactive exceptions no longer spam the console
- fix:
Pending
bugs
Initial release.
- Production ready for, let's say back office apps, after 8 months of private user testing and extreme dogfooding in the Hyperfiddle sister project.
- As a maturity indicator, the only low level bug in recent memory was a hash collision triggered by scrolling a server-paginated grid over thousands of server-streamed elements.
- Stack traces aren't great; we do have async stack traces already but they need work
Current development priorities:
- developer experience improvements
- network planner improvements
- language semantics improvements
To date we have focused on correct semantics over syntax and performance. Now that we are useful in production, we are using production learnings to drive our priorities.