Skip to content

0.7.0

Compare
Choose a tag to compare
@ajoberstar ajoberstar released this 07 Aug 20:49
· 49 commits to main since this release

The big theme is improved editor/IDE support, with dependency "Jack-In" now supported by Clojurephant (will be working on sending PRs to Cider and Calva to take advantage of this). Also some cleanup of issues that caused problems in Intellij/Cursive and Eclipse.

Clojurephant projects can now take advantage of Gradle's toolchain feature to set the JVM used by tasks:

java {
  toolchain {
    languageVersion = JavaLanguageVersion.of(17)
  }
}

Otherwise, trying to get up-to-date with the latest Gradle versions and best practices, including support for Gradle's configuration cache.

This release also prepares for the clojurephant-tooling library which will be useful in the REPL, in particular for starting ClojureScript REPLs.

Breaking Changes

  • Requires Gradle 6.4+ (drops support for Gradle 5)
  • Implementation of clojure {} and clojurescript {} extensions changed to take advantage of Gradle decorating the types for DSL use. Our tests projects didn't require changes, but we don't have full coverage, so you could encounter some issues with mismatched property types.
  • Removed ClojureBuild.getSourceSet() and ClojureScriptBuild.getSourceSet() due to incompatibility with Gradle's configuration cache #169
  • Java test classes not on dev classpath (by default) #173

Enhancements

  • Supports injecting dependencies into the nrepl classpath via -Pdev.clojurephant.jack-in.nrepl=dep1,dep2 (where dep* are the typical Gradle group:artifact:version notation) #179
  • clojureRepl classpath is now enriched with sources/javadoc JARs of your dependencies (useful in CIDER).
  • Cleaner support (and documentation) for having Java code depend on Clojure code (see FAQ) #173
  • clojureRepl depends on fewer other tasks, meaning it should start up a smidge faster #173
    #174
  • Allow Clojure tasks to use Java toolchains
  • Support Gradle's configuration cache #169
  • Updates default nrepl version to 0.9.0
  • Updates templates to use Gradle 7.5
  • Exposing Clojure and ClojureScript configuration via the Tooling API #188

Fixes

  • Improves experience (slightly) for tasks that use prepl (it will fail faster if the Clojure runtime fails to start) also it extends the timeout before it abandons startup to 30 seconds for larger projects (hopefully fixes #161)
  • Fixes a number of deprecation warnings on Gradle 6 and 7
  • Handled AsynchronousCloseExceptions that could be triggered when any of the Clojure related tasks shut down #173
  • Fixed duplicate source dirs in Eclipse config #127
  • Fixed source root detection in Intellij #160, #108, #66
  • Fixed REPL classpath to include both Clojure and ClojureScript sources #188

Deprecations

None

Compatibility

Tested on the following version:

Requires Clojure 1.10+ (due to use of prepl)

Java Version Gradle Versions
8 6.4.1, 6.9.2, 7.0.2, 7.5.1
11 6.4.1, 6.9.2, 7.0.2, 7.5.1
17 7.3.3, 7.5.1