-
-
Notifications
You must be signed in to change notification settings - Fork 39
Closed
Description
Create a repository of Clojure CLI project templates that include common code and configuration to support production grade services and libraries
dev/user.clj for development tools ✅
- hotloading libraries with add-libs
- portal data inspector
- mulog and tap publisher
- find-deps library search
Editor support ✅
- Emacs .dir-locals.el configuration with recommended aliases
- Java sources on the class path (not included - :src/java alias from Practicalli Clojure CLI Config can provide if neccessary
Build.tools configuration ✅
Include project alias for tools.build and a build.clj
built tasks
DONE: research required on how best to use build.clj files and investigation into seancorfield/build-clj project - using tools.build directly
Suggested Templates
service - clojure.main and clojure.exec execution options, with build.clj, hotload libs, portal data inspector, kaocha, mulog
- no options: creates simple webserver with jetty, using atom to hold ref to running server, mulog & publisher types
- http-kit: uses http-kit instead of jetty
- integrant: integrant and integrant repl with example components and aero configuration
- api - adds Reitit libs, middleware and example code
Optional parts
+postgres - adds next.jdbc, honeysql, postgresql driver. Example code for clojure.specs that matches the example database schema. Example persistence layer. Tools to generate spec from dB schema (and vice versa)
Common aliases ✅
:run/service
- run the project using clojure.exec:dev/reloaded
- include dev/user.clj file and associated development tools:test/env
- paths and deps for test runners:test/run
- run kaocha test runner:test/watch
- run kaocha test runner in watch mode
Common dependencies
- Latest Clojure release
- kaocha test runner (include a
tests.edn
configuration) - mulog for logging
- Integrant & areo for system configuration
- add-libs for hot-loading
- reitit for routing (APIs)
Related projects
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Done