main | |||
dev |
tools-convenience
Various convenience fns for tools.build-based build scripts.
NOTE: This library almost certainly won't work on "raw" Windows, and it is unknown if it works on WSL.
Using the library
Dependency
Include a maven dependency on the library in your deps.edn
, for a build tool alias:
:aliases
:build
{:deps {com.github.pmonks/tools-convenience {:mvn/version "LATEST_CLOJARS_VERSION"}}
:ns-default your.build.ns}
Require the Namespace
(ns your.build.ns
(:require [tools-convenience.api :as tc]))
API Documentation
API documentation is available here.
Contributor Information
Developer Workflow
This project uses the git-flow branching strategy, with the caveat that the permanent branches are called main
and dev
, and any changes to the main
branch are considered a release and auto-deployed (JARs to Clojars, API docs to GitHub Pages, etc.).
For this reason, all development must occur either in branch dev
, or (preferably) in temporary branches off of dev
. All PRs from forked repos must also be submitted against dev
; the main
branch is only updated from dev
via PRs created by the core development team. All other changes submitted to main
will be rejected.
Build Tasks
tools-convenience
uses tools.build
. You can get a list of available tasks by running:
clojure -A:deps -T:build help/doc
Of particular interest are:
clojure -T:build test
- run the unit testsclojure -T:build lint
- run the linters (clj-kondo and eastwood)clojure -T:build ci
- run the full CI suite (check for outdated dependencies, run the unit tests, run the linters)clojure -T:build install
- build the JAR and install it locally (e.g. so you can test it with downstream code)
Please note that the deploy
task is restricted to the core development team (and will not function if you run it yourself).
License
Copyright © 2021 Peter Monks
Distributed under the Apache License, Version 2.0.
SPDX-License-Identifier: Apache-2.0