Liking cljdoc? Tell your friends :D

Getting Involved / What’s Missing?

Getting Involved / What’s Missing?

Here’s a short overview. More info coming soon!

Developing in Emmy

To run all tests in Clojure, you’ll need to install the Clojure CLI tool. The ClojureScript tests require Node.js. If you’re on a Mac, install Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Then run

brew install node clojure/tools/clojure

To get both dependencies.

deps.edn projects are configured by layering the various "aliases" defined in deps.edn. For example:

  • clj (or clojure) called by itself will activate a REPL with the project’s core dependencies available.

  • clj -A:test will layer in the options specified in the :test entry under :aliases in deps.edn; in this case, the test directory and the dependencies required to run tests. clj -X:test:runner will additionally layer in the :runner entry AND execute the :exec-fn specified.

See the Clojure Deps and CLI Guide for more details.

Clojure Tests

To run the full Clojure test suite:

clojure -P -M:test:runner

ClojureScript Tests

We run the ClojureScript test suite and check for advanced compilation warnings using [shadow-cljs].

In the emmy directory, run

npm install

to run the full ClojureScript test suite, call the following command (and make sure to note any warnings):

npm run test

The following command will start a process that recompiles the project when any file changes:

shadow-cljs watch test

Linting with clj-kondo

We use clj-kondo to lint the project. To run the linter from the JVM, run:

clojure -M:test:lint --lint src:test

Or, install the binary by following this instructions and lint with the following command:

clj-kondo --lint src:test

Code Coverage

Cloverage generates coverage reports for every pull request and the main branch in the repository. Coverage reports live at codecov.io.

To invoke cloverage, call

clojure -M:test:coverage <args-to-cloverage>

Jars & Releases

We use Clojure’s tools.build system to produce and publish jars. This is configured in build.clj.

The library’s current version is set by resources/EMMY_VERSION.

The following command will produce a jar of the form target/emmy-<version>.jar:

clojure -T:build jar

Optionally, supply a suffix like :version-suffix "SOMETHING" to append -SOMETHING to the version.

To generate the jar and install it to the local Maven cache, run

clojure -T:build install

Deploying to Clojars requires the CLOJARS_USERNAME and CLOJARS_PASSWORD variables to be set. Once those are configured, run

clojure -T:build publish

To push the latest code to Clojars. Only one push per release is allowed, while snapshots can be pushed multiple times (overwriting the previous SNAPSHOT build).

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close