bb.edn 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. {:paths ["scripts/src" "src/main" "src/resources"]
  2. :deps
  3. {metosin/malli
  4. {:git/url "https://github.com/metosin/malli"
  5. :sha "52ea58a36ff5172b38dfc526ca638afa7226a4a0"}
  6. borkdude/rewrite-edn {:mvn/version "0.5.9"}
  7. logseq/bb-tasks
  8. #_{:local/root "../bb-tasks"}
  9. {:git/url "https://github.com/logseq/bb-tasks"
  10. :git/sha "acb3d3d5d38c4ac16f617cb10ae6f99fe1b8de6e"}
  11. logseq/graph-parser
  12. {:local/root "deps/graph-parser"}
  13. org.clj-commons/digest
  14. {:mvn/version "1.4.100"}
  15. cheshire/cheshire
  16. {:mvn/version "6.2.0"}}
  17. :pods
  18. {clj-kondo/clj-kondo {:version "2026.04.15"}
  19. org.babashka/fswatcher {:version "0.0.7"}
  20. org.babashka/go-sqlite3 {:version "0.3.13"}}
  21. :tasks
  22. {dev:desktop-watch
  23. logseq.tasks.dev.desktop/watch
  24. libs:generate-cljs-sdk
  25. {:doc "Generate CLJS wrappers based on the JS SDK declarations"
  26. :requires ([logseq.libs.sdk-generator :as sdk-gen])
  27. :task (sdk-gen/run! (sdk-gen/parse-args *command-line-args*))}
  28. dev:open-dev-electron-app
  29. logseq.tasks.dev.desktop/open-dev-electron-app
  30. -dev:electron-start
  31. {:depends [dev:desktop-watch dev:open-dev-electron-app]}
  32. dev:electron-start
  33. {:doc "Start electron dev by watching assets and opening dev app"
  34. ;; Parallel execution - https://book.babashka.org/#parallel
  35. :task (run '-dev:electron-start {:parallel true})}
  36. dev:app-watch
  37. logseq.tasks.dev.mobile/app-watch
  38. -dev:build-publishing-frontend
  39. logseq.tasks.dev/build-publishing-frontend
  40. dev:publishing-backend
  41. logseq.tasks.dev/publishing-backend
  42. -dev:publishing-release
  43. {:depends [-dev:build-publishing-frontend]
  44. :doc "Build release publishing spa app given graph and output dirs"
  45. :task (run 'dev:publishing-backend)}
  46. -dev:watch-publishing-frontend
  47. logseq.tasks.dev/watch-publishing-frontend
  48. -dev:watch-publishing-backend
  49. logseq.tasks.dev/watch-publishing-backend
  50. -dev:publishing-dev
  51. {:depends [-dev:watch-publishing-frontend -dev:watch-publishing-backend]
  52. :doc "Watch dev publishing spa app given graph and output dirs"}
  53. dev:publishing
  54. {:doc "Builds full publishing app given graph and output dirs. Append --dev to watch frontend"
  55. :task (if ((set *command-line-args*) "--dev")
  56. (run '-dev:publishing-dev {:parallel true})
  57. (run '-dev:publishing-release))}
  58. dev:cli
  59. {:doc "Run CLI with current deps/db code. Commands with JS deps are not usable e.g. mcp-server"
  60. :task (apply shell {:dir "deps/db"}
  61. "yarn nbb-logseq -cp src:../cli/src:../graph-parser/src:../outliner/src -m logseq.cli" *command-line-args*)}
  62. dev:query
  63. {:doc "Query a DB graph's datascript db"
  64. :requires ([babashka.fs :as fs])
  65. :task (apply shell {:dir "deps/db" :extra-env {"ORIGINAL_PWD" (fs/cwd)}}
  66. "yarn -s nbb-logseq script/query.cljs" *command-line-args*)}
  67. dev:transact
  68. {:doc "Transact against a DB graph's datascript db"
  69. :requires ([babashka.fs :as fs])
  70. :task (apply shell {:dir "deps/outliner" :extra-env {"ORIGINAL_PWD" (fs/cwd)}}
  71. "yarn -s nbb-logseq script/transact.cljs" *command-line-args*)}
  72. dev:create
  73. {:doc "Create a DB graph given a sqlite.build EDN file"
  74. :requires ([babashka.fs :as fs])
  75. :task (apply shell {:dir "deps/db" :extra-env {"ORIGINAL_PWD" (fs/cwd)}}
  76. "yarn -s nbb-logseq -cp src:../outliner/src:script script/create_graph.cljs" *command-line-args*)}
  77. dev:create-clojure-log-graph
  78. {:doc "Import local clojure-log chats into a DB graph"
  79. :task (apply shell {:dir "deps/outliner"}
  80. "yarn -s nbb-logseq ../../scripts/src/logseq/tasks/db_graph/create_graph_with_clojure_irc_history.cljs"
  81. *command-line-args*)}
  82. dev:import
  83. {:doc "Import a file graph to db graph"
  84. :requires ([babashka.fs :as fs])
  85. :task (apply shell {:dir "deps/graph-parser" :extra-env {"ORIGINAL_PWD" (fs/cwd)}}
  86. "yarn -s nbb-logseq -cp src:../outliner/src script/db_import.cljs" *command-line-args*)}
  87. dev:import-many
  88. {:doc "Import multiple file graphs to db graphs"
  89. :task logseq.tasks.dev/db-import-many}
  90. dev:datoms
  91. {:doc "Write db's datoms to a file"
  92. :requires ([babashka.fs :as fs])
  93. :task (apply shell {:dir "deps/db" :extra-env {"ORIGINAL_PWD" (fs/cwd)}}
  94. "yarn -s nbb-logseq script/dump_datoms.cljs"
  95. *command-line-args*)}
  96. dev:diff-datoms
  97. logseq.tasks.dev/diff-datoms
  98. dev:npx-cap-run-ios
  99. logseq.tasks.dev.mobile/npx-cap-run-ios
  100. -dev:ios-app
  101. {:depends [dev:app-watch dev:npx-cap-run-ios]}
  102. dev:ios-app
  103. {:doc "iOS development environment"
  104. :task (run '-dev:ios-app {:parallel true})}
  105. release:ios-app
  106. logseq.tasks.dev.mobile/run-ios-release
  107. dev:npx-cap-run-android
  108. logseq.tasks.dev.mobile/npx-cap-run-android
  109. -dev:android-app
  110. {:depends [dev:app-watch dev:npx-cap-run-android]}
  111. dev:android-app
  112. {:doc "Android development environment"
  113. :task (run '-dev:android-app {:parallel true})}
  114. release:android-app
  115. logseq.tasks.dev.mobile/run-android-release
  116. dev:validate-local-storage
  117. logseq.tasks.spec/validate-local-storage
  118. dev:validate-plugins-edn
  119. logseq.tasks.malli/validate-plugins-edn
  120. dev:validate-repo-config-edn
  121. logseq.tasks.malli/validate-repo-config-edn
  122. dev:validate-global-config-edn
  123. logseq.tasks.malli/validate-global-config-edn
  124. dev:validate-ast
  125. logseq.tasks.malli/validate-ast
  126. dev:test
  127. logseq.tasks.dev/test
  128. dev:test-no-worker
  129. logseq.tasks.dev/test-no-worker
  130. dev:lint-and-test
  131. logseq.tasks.dev/lint-and-test
  132. dev:lint-test-deps
  133. logseq.tasks.dev.lint-test-deps/run
  134. dev:e2e-basic-test
  135. logseq.tasks.dev/e2e-basic-test
  136. dev:e2e-rtc-extra-test
  137. {:doc "Run e2e rtc extra tests. HTTP server should be available at localhost:3001"
  138. :task (clojure {:dir "clj-e2e"} "-X:dev-run-rtc-extra-test")}
  139. dev:e2e-rtc-extra-part2-test
  140. {:doc "Run e2e rtc extra part2 tests. HTTP server should be available at localhost:3001"
  141. :task (clojure {:dir "clj-e2e"} "-X:dev-run-rtc-extra-part2-test")}
  142. dev:db-sync-test
  143. {:doc "Run db-sync server unit tests"
  144. :task (do (shell {:dir "deps/db-sync"} "clojure -M:cljs compile db-sync-test")
  145. (shell {:dir "deps/db-sync"} "node worker/dist/worker-test.js"))}
  146. dev:db-sync-start
  147. {:doc "Start db-sync local server + client watch processes in foreground"
  148. :task logseq.tasks.dev.db-sync/start}
  149. dev:gen-malli-kondo-config
  150. logseq.tasks.dev/gen-malli-kondo-config
  151. lint:dev
  152. logseq.tasks.dev.lint/dev
  153. lint:kondo-git-changes
  154. logseq.tasks.dev.lint/kondo-git-changes
  155. lint:large-vars
  156. logseq.bb-tasks.lint.large-vars/-main
  157. lint:carve
  158. logseq.bb-tasks.lint.carve/-main
  159. lint:ns-docstrings
  160. logseq.bb-tasks.lint.ns-docstrings/-main
  161. lint:worker-and-frontend-separate
  162. logseq.tasks.dev.lint/worker-and-frontend-separate
  163. nbb:watch
  164. logseq.bb-tasks.nbb.watch/watch
  165. nbb:portal-watch
  166. logseq.bb-tasks.nbb.watch/portal-watch
  167. lang:list
  168. logseq.tasks.lang/list-langs
  169. lang:missing
  170. logseq.tasks.lang/list-missing
  171. lang:pseudo
  172. logseq.tasks.lang/list-pseudo
  173. lang:format-dicts
  174. logseq.tasks.lang/format-dicts
  175. lang:validate-translations
  176. logseq.tasks.lang/validate-translations
  177. lang:lint-hardcoded
  178. logseq.tasks.lang/lint-hardcoded
  179. ai:check-common-errors
  180. logseq.tasks.common-errors/check-common-errors}
  181. :tasks/config
  182. {:large-vars
  183. ;; TODO: Get to a smaller max-lines-count
  184. {:max-lines-count 100
  185. ;; TODO: Address vars tagged with cleanup-todo. These
  186. ;; are left mostly because they are not high priority
  187. ;; or not well understood
  188. :metadata-exceptions #{:large-vars/cleanup-todo}}
  189. :ns-docstrings
  190. {:paths ["src/main"]
  191. ;; Ignore namespaces that won't be helpful to document initially
  192. ;; e.g. frontend.components.onboarding -> "Onboarding fns"
  193. :ignore-regex "^(frontend.components|frontend.extensions|frontend.modules|frontend.mobile|logseq.sdk)"}}}