Status: backlog Priority: P1 Created: 2026-02-20 Owner: conductor Depends-on: none
fulcro-rad is being forked into fulcro-rad-statecharts. The new project replaces Fulcro UI State Machines (UISMs) with the fulcrologic statecharts library. This spec covers all build/project configuration changes needed before any code conversion begins.
This project was cloned from fulcro-rad. The statecharts library is developed locally at ../statecharts. All sibling projects (fulcro-rad-demo, fulcro-rad-datomic, etc.) live in the parent directory (../).
com.fulcrologic/fulcro-rad to com.fulcrologic/fulcro-rad-statecharts in all build filescom.fulcrologic/statecharts as a dependency (use local dep ../statecharts during development, maven coordinates for release)0.1.0-SNAPSHOT to indicate this is a new project, not a continuation of fulcro-rad versioningcom.fulcrologic.rad.*) should NOT be renamed -- the package identity stays the same, only the artifact changes. This allows downstream projects to switch artifacts without rewriting all requires.deps.edn - Add statecharts dep, update artifact identitypom.xml - Change artifactId, name, description, URLs, version, add statecharts dependencyshadow-cljs.edn - May need source path for local statecharts devCurrent deps.edn has no statecharts dependency. Add:
;; In :deps
com.fulcrologic/statecharts {:local/root "../statecharts"}
For release, this becomes:
com.fulcrologic/statecharts {:mvn/version "RELEASE_VERSION"}
The :dev alias should also include the statecharts dependency if it overrides versions. Current dev alias does not override fulcro or add statecharts -- the main dep will flow through.
<artifactId> from fulcro-rad to fulcro-rad-statecharts<version> from 1.6.11-SNAPSHOT to 0.1.0-SNAPSHOT<name> from Fulcro RAD to Fulcro RAD Statecharts<description> to reference statecharts<url> and <scm> URLs from fulcro-rad to fulcro-rad-statecharts (once the repo exists)<dependency> for com.fulcrologic/statecharts (version TBD, use latest release)The current shadow-cljs.edn pulls deps from :dev and :tests aliases. Since the statecharts dependency is in the main :deps section of deps.edn, shadow-cljs will pick it up automatically. No changes needed to shadow-cljs.edn itself.
However, if local development requires the statecharts source to be on the classpath directly (for hot-reload of statecharts source), the :local/root dep in deps.edn handles that -- shadow-cljs respects local deps.
com.fulcrologic.rad.* namespace structure remains intact.(:require [com.fulcrologic.rad.*]) unchanged.com.fulcrologic.rad.*.com.fulcrologic.fulcro.ui-state-machines require will be removed from individual files as they are converted, but this is handled by the per-module conversion specs.From the statecharts deps.edn, the library's own dependencies are:
metosin/malli 0.20.0com.fulcrologic/guardrails 1.2.16org.clojure/core.async 1.8.741com.taoensso/timbre 6.8.0funcool/promesa 11.0.678Potential version conflicts with fulcro-rad's current deps (DECIDED: bump all to latest):
com.fulcrologic/statecharts should be used for the maven dependency at release time? The statecharts library appears to be pre-1.0 and under active development.com.taoensso/encore (used by RAD at 3.45.0) be compatible with timbre 6.x? Timbre 6.x may pull in a newer encore. (Audit during implementation.)fulcrologic/fulcro-rad-statecharts be created before or after initial code conversion?0.1.0-SNAPSHOT the right starting version, or should it track closer to the fulcro-rad version it forked from (e.g. 1.6.11-sc-SNAPSHOT)?{:local/root "../statecharts"} in deps.edn during development. Switch to maven coordinates for release.deps.edn has com.fulcrologic/statecharts as a dependencypom.xml artifact is fulcro-rad-statechartspom.xml version is updated to new project versionpom.xml metadata (name, description, URLs) reflect new projectclj -A:dev resolves all dependencies without errorsshadow-cljs can compile the test build successfullyCan you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |