bb.edn 7.1 KB

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