Automaton build library streamlines the creation, development, testing, and publishing of the automaton projects.
If every tool, when ordered, or even of its own accord, could do the work that befits it, just as the creations of Daedalus moved of themselves, or the tripods of Hephaestus went of their own accord to their sacred work, if the shuttle would weave and the plectrum touch the lyre without a hand to guide them, master-craftsmen would have no need of assistants and masters no need of slaves ~ Aristotle, Politics 1253b
To meet monorepo objectives, it should be possible to quickly create a project and maintain its modifications through time.
At the same moment, it is really complicated and most often dangerous to decide for once how all projects should look like.
So, all factorized code is stored in the automaton-build
project.
To integrate automaton-build
into your project:
bb.edn
file at the root of your project with the following content:{:deps {org.clojars.hephaistox/automaton-build #:mvn{:version "1.0.2"}}
:tasks {-base-deps {:doc "Dependencies for a task using bb"}
:requires [[automaton-build.tasks.common :as tasks-common]]}}
Which will:
automaton-build
library dependency to enable its features.-base-deps
task to declare whatever is common to all tasks. It starts with -
so it is not shown in the task list.requires
that enables tasks-common
namespace for all tasks so you don't have to repeat it.automaton-build.tasks
directory.Example task for starting REPL:
repl {:depends [-base-deps]
:requires [[automaton-build.tasks.2 :as tasks-2]]
:extra-deps {}
:doc "Launch repl"
:enter (tasks-common/enter tasks-2/cli-opts (current-task))
:task (tasks-2/start-repl [:common-test :env-development-repl :build])}
Some tasks may require additional configuration. Set up a project.edn
file in your project root to customize task behavior. For an example refer to the forbidden-words report task automaton-build.tasks.tasks.3 and project.edn file
For detailed API documentation click here.
License information can be found in LICENSE file Copyright © 2020-2024 Hephaistox
Can you improve this documentation? These fine people already did:
kaspazza & caumondEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close