diff --git a/.github/workflows/upload.yaml b/.github/workflows/upload.yaml index 3fbc3cf..cc5308d 100644 --- a/.github/workflows/upload.yaml +++ b/.github/workflows/upload.yaml @@ -38,6 +38,7 @@ jobs: calcit edit format git diff --exit-code -- calcit.cirru calcit --check-only --all-defs --format json + calcit fix --workflow strict --verify --format json calcit --check-only --ns app.config --ns app.main --ns app.schema --ns app.updater --ns app.util --ns app.comp.container --ns app.comp.showcase --summary-only --format json calcit analyze weak-types --ns-prefix app --only deprecated-call --summary-only --format json | jq -e '.data.summary.calls == 0' calcit analyze weak-types --only dynamic-method --summary-only --format json | jq -e '.data.summary.findings == 0' diff --git a/README.md b/README.md index 8239c2c..6767738 100644 --- a/README.md +++ b/README.md @@ -8,16 +8,22 @@ ClojureScript, beginners' home page ### Workflow -The application uses Calcit 0.29.0 and matching `@calcit/procs`, with stable +The application uses paired Calcit / `@calcit/procs` 0.30.1-alpha.5, with stable module releases pinned in `deps.cirru`. Node.js 24 and Yarn 4.18.0 are used for the frontend build. `content/*.cljs` are displayed ClojureScript examples, not Calcit application source. +This is a 0.30.1 candidate migration, not a completed stable 0.30.1 release: +the stable release currently has no CLI assets. Visitor navigation, the legacy +saved Map format and random showcase selection are preserved. The header logo +uses HTTPS at the same host/path, and site credits now name Calcit and Respo. + ```sh caps --strict --ci yarn install --immutable caps verify --toolchain yarn check +calcit fix --workflow strict --verify calcit test --require-match yarn build ``` @@ -31,7 +37,7 @@ open boundaries, so this is not a claim of zero Dynamic type debt. Stored data retains the original Map field format and is decoded into Store when restored. Startup still chooses a random showcase, as before. -CI checks all admitted definitions and all application public definitions, +CI checks all admitted definitions, the full strict workflow and all application public definitions, runs the two attached updater/hydration tests, and builds the frontend. Local acceptance also includes real browser rendering, code highlighting, showcase clicks, and refresh/hydration without runtime errors. diff --git a/calcit.cirru b/calcit.cirru index 77d4308..192a9e5 100644 --- a/calcit.cirru +++ b/calcit.cirru @@ -48,8 +48,10 @@ :text-decoration :none :href |https://github.com/clojure-china/clojure-script.org :target |_blank - <> "|Site built with shadow-cljs & Respo." + <> "|Site built with Calcit & Respo." :examples $ [] + :schema $ :: 'Fn $ {} (:return 'respo.schema/Component) + :args $ [] 'comp-header $ %{} 'CodeEntry (:doc |) :code $ quote $ defcomp comp-header () div @@ -64,7 +66,7 @@ d! $ :: :pick-case $ rand-int 10 div $ {} $ :style {} - :background-image $ str "|url(http://cdn.tiye.me/logo/cljs.png)" + :background-image $ str "|url(https://cdn.tiye.me/logo/cljs.png)" :width 40 :height 40 :background-position "|center center" @@ -77,6 +79,8 @@ :text-decoration :none div $ {} :examples $ [] + :schema $ :: 'Fn $ {} (:return 'respo.schema/Component) + :args $ [] 'comp-resources $ %{} 'CodeEntry (:doc |) :code $ quote $ defcomp comp-resources () div @@ -84,6 +88,8 @@ comp-md-block (inline |resource.md) {} $ :class-name |content :examples $ [] + :schema $ :: 'Fn $ {} (:return 'respo.schema/Component) + :args $ [] 'comp-tool-card $ %{} 'CodeEntry (:doc |) :code $ quote $ defcomp comp-tool-card (info) div @@ -143,21 +149,23 @@ comp-tool-card $ ToolInfo :name |shadow-cljs :logo (Option :some |http://cdn.tiye.me/logo/shadow-cljs.png) :url |http://shadow-cljs.org :description "|ClojureScript compilation made easy." comp-tool-card $ ToolInfo :name |figwheel-main :logo (Option :none) :url |https://figwheel.org :description "|Figwheel Main builds your ClojureScript code and hot loads it as you are coding!" :examples $ [] + :schema $ :: 'Fn $ {} (:return 'respo.schema/Component) + :args $ [] :ns $ %{} 'NsEntry (:doc |) :code $ quote $ ns app.comp.container :require - [] respo-ui.core :refer $ [] hsl - [] respo-ui.core :as ui - [] respo.core :refer $ [] defcomp >> <> div button textarea span a - [] respo.comp.space :refer $ [] =< - [] reel.comp.reel :refer $ [] comp-reel - [] respo-md.comp.md :refer $ [] comp-md comp-md-block - [] app.config :refer $ [] dev? - [] app.util :refer $ [] highlighter inline - [] app.comp.showcase :refer $ [] comp-showcase + respo-ui.core :refer $ hsl + respo-ui.core :as ui + respo.core :refer $ defcomp >> <> div button textarea span a + respo.comp.space :refer $ =< + reel.comp.reel :refer $ comp-reel + respo-md.comp.md :refer $ comp-md comp-md-block + app.config :refer $ dev? + app.util :refer $ highlighter inline + app.comp.showcase :refer $ comp-showcase |@calcit/std :refer $ rand-int - [] app.schema :refer $ [] ToolInfo - [] reel.typed-compat :as reel-view + app.schema :refer $ ToolInfo + reel.typed-compat :as reel-view 'app.comp.showcase $ %{} 'FileEntry :defs $ {} 'comp-showcase $ %{} 'CodeEntry (:doc |) @@ -207,14 +215,14 @@ :ns $ %{} 'NsEntry (:doc |) :code $ quote $ ns app.comp.showcase :require - [] respo-ui.core :refer $ [] hsl - [] respo-ui.core :as ui - [] respo.core :refer $ [] defcomp cursor-> action-> mutation-> <> div button textarea span a - [] respo.comp.space :refer $ [] =< - [] respo-md.comp.md :refer $ [] comp-md comp-md-block - [] app.config :refer $ [] dev? - [] app.util :refer $ [] highlighter inline - [] app.schema :refer $ [] Showcase + respo-ui.core :refer $ hsl + respo-ui.core :as ui + respo.core :refer $ defcomp cursor-> action-> mutation-> <> div button textarea span a + respo.comp.space :refer $ =< + respo-md.comp.md :refer $ comp-md comp-md-block + app.config :refer $ dev? + app.util :refer $ highlighter inline + app.schema :refer $ Showcase 'app.config $ %{} 'FileEntry :defs $ {} 'Site $ %{} 'CodeEntry (:doc |) @@ -317,20 +325,20 @@ :ns $ %{} 'NsEntry (:doc |) :code $ quote $ ns app.main :require - [] respo.core :refer $ [] render! clear-cache! realize-ssr! - [] app.comp.container :refer $ [] comp-container - [] app.updater :refer $ [] updater decode-action - [] app.schema :as schema - [] app.config :as config - [] reel.util :refer $ [] listen-devtools! - [] |highlight.js/lib/languages/clojure :default clojure-lang + respo.core :refer $ render! clear-cache! realize-ssr! + app.comp.container :refer $ comp-container + app.updater :refer $ updater decode-action + app.schema :as schema + app.config :as config + reel.util :refer $ listen-devtools! + |highlight.js/lib/languages/clojure :default clojure-lang |./calcit.build-errors :default build-errors |bottom-tip :default hud! |@calcit/std :refer $ rand-int - [] reel.typed :as typed-reel - [] js-ffi.shared :as host - [] app.util :refer $ [] register-language! - [] js-ffi.browser :as browser + reel.typed :as typed-reel + js-ffi.shared :as host + app.util :refer $ register-language! + js-ffi.browser :as browser 'app.schema $ %{} 'FileEntry :defs $ {} 'Action $ %{} 'CodeEntry (:doc |) @@ -424,8 +432,8 @@ :ns $ %{} 'NsEntry (:doc |) :code $ quote $ ns app.updater :require - [] respo.cursor :refer $ [] update-state-tree - [] app.schema :refer $ [] Store Action + respo.cursor :refer $ update-state-tree + app.schema :refer $ Store Action 'app.util $ %{} 'FileEntry :defs $ {} 'HighlightHost $ %{} 'CodeEntry (:doc |) @@ -484,4 +492,4 @@ :schema $ :: 'Map 'String 'String :ns $ %{} 'NsEntry (:doc |) :code $ quote $ ns app.util - :require ([] |escape-html :default escape-html) ([] |highlight.js :default hljs) + :require (|escape-html :default escape-html) (|highlight.js :default hljs) diff --git a/content/learning.md b/content/learning.md index fcc3bda..5d42dd4 100644 --- a/content/learning.md +++ b/content/learning.md @@ -15,4 +15,4 @@ ClojureScript shares same syntax with Clojure but with different host APIs and e By following [official Quick Start](https://clojurescript.org/guides/quick-start) you can compile your project with [cljs.main](https://clojurescript.org/guides/quick-start). It's the core library of compiling the language. -However in real projects you will very likely to need hot code swapping and npm integrations. This site is built with [shadow-cljs](http://shadow-cljs.org) along npm modules. Besides shadow-cljs, there are several tools you can choose: \ No newline at end of file +However in real projects you will very likely to need hot code swapping and npm integrations. One option is [shadow-cljs](http://shadow-cljs.org) along npm modules. Besides shadow-cljs, there are several tools you can choose: diff --git a/deps.cirru b/deps.cirru index 60a5bdc..a950800 100644 --- a/deps.cirru +++ b/deps.cirru @@ -1,7 +1,7 @@ -{} (:calcit-version |0.29.0) (:version |0.1.0) +{} (:calcit-version |0.30.1-alpha.5) (:version |0.1.0) :dependencies $ {} - |Respo/respo.calcit |0.16.114 - |Respo/reel.calcit |0.6.33 - |Respo/respo-markdown.calcit |0.4.48 - |Respo/respo-ui.calcit |0.7.32 - |calcit-lang/js-ffi |0.2.1 + |Respo/respo.calcit |0.16.122 + |Respo/reel.calcit |0.6.39 + |Respo/respo-markdown.calcit |0.4.56 + |Respo/respo-ui.calcit |0.7.41 + |calcit-lang/js-ffi |0.2.3 diff --git a/package.json b/package.json index 11aae96..0d89b51 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "vite": "8.3.1" }, "dependencies": { - "@calcit/procs": "0.29.0", + "@calcit/procs": "0.30.1-alpha.5", "@calcit/std": "^0.0.2", "cirru-color": "^0.2.4", "copy-text-to-clipboard": "^3.2.2", diff --git a/yarn.lock b/yarn.lock index 7b00bdb..b55a8d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,15 +12,15 @@ __metadata: languageName: node linkType: hard -"@calcit/procs@npm:0.29.0": - version: 0.29.0 - resolution: "@calcit/procs@npm:0.29.0" +"@calcit/procs@npm:0.30.1-alpha.5": + version: 0.30.1-alpha.5 + resolution: "@calcit/procs@npm:0.30.1-alpha.5" dependencies: "@calcit/finger-vec": "npm:0.1.1" "@calcit/ternary-tree": "npm:0.0.26" "@cirru/parser.ts": "npm:0.0.10" "@cirru/writer.ts": "npm:^0.1.9" - checksum: 10c0/ff03d002491fff92af286abd0a9b6ad9e7dea4ffd5465465d81217fdac84cb383c93b861b7a6d7395ea7f9b84342dd6e012da10196ca471f667903a09ec920f2 + checksum: 10c0/925226e14b05ab6f1ed5adf32611a3575324d9e99474e84dce6f01093dce4d869d301585bb76c06d56725a716a76536888f99b9da5c961e79c9b0c62a5b27b1c languageName: node linkType: hard @@ -229,7 +229,7 @@ __metadata: version: 0.0.0-use.local resolution: "clojure-script-org@workspace:." dependencies: - "@calcit/procs": "npm:0.29.0" + "@calcit/procs": "npm:0.30.1-alpha.5" "@calcit/std": "npm:^0.0.2" bottom-tip: "npm:^0.1.5" cirru-color: "npm:^0.2.4"