10 posts tagged clojure
This week on the podcast we talk with Ambrose Bonnaire Sergeant all about Typed Clojure, and adding a static type system to a dynamic language after the fact - including all the gory details.
Another minor release of the
clojure-maven-plugin released to Maven Central fixing a small typo in the new
nrepl goal, and also pulling in a long overlooked pull request for Marginalia multidoc generation which can be enabled by adding:
<configuration> <marginalia> <multi>true</multi> </marginalia> </configuration>
Maven coordinates are:
<dependency> <groupId>com.theoryinpractise</groupId> <artifactId>clojure-maven-plugin</artifactId> <version>1.3.15</version> </dependency>
A minor release of the clojure-maven-plugin to coincide with the release of Clojure 1.5.
This release also brings along a new
clojure:nrepl goal which takes 3 parameters:
- replScript - The clojure script to run before starting the repl
- port - The nREPL server port, defaulting to
4005and settable via
- nreplHost - The host to bind the nREPL server to, defaulting to
localhostand settable via
Maven coordinates are:
<dependency> <groupId>com.theoryinpractise</groupId> <artifactId>clojure-maven-plugin</artifactId> <version>1.3.14</version> </dependency>
It’s been awhile since I’ve posted anything on the state of HalBuilder and where the project is going, so now that I’d started heading towards a release I thought it was about time I updated the blog about it.
The first thing to note is the Github source repository has moved to a new HalBuilder Organisation and split up into a set of 6-7 separate maven artifacts/git repositories:
A reusable set of HAL representations in both XML and JSON format to use in tests. This artifact is bundled using the maven-remote-resources plugin for easy reuse in other projects.
Currently this is the only 2.0.1 series artifact that has been released.
Next up is the HalBuilder API artefact, under the 1.x releases this used to be the contents of the
There are two fundamental changes in the 2.0.1 series of HalBuilder:
- The base API contains no dependency on the Google Guava library, this means the things no longer return
Optional<T>instances ( see the
halbuilder-javamodule for this ).
- All classes/interfaces/methods with the word Resource in their name have been renamed to Representation to more clearly separate HAL from your actual REST API. HalBuilder is all about the representation of your resources, not the resources themselves.
The core HalBuilder library - this is 1.x restructured, and without any outgoing Google Guava dependencies.
halbuilder-java module provides a simple “extension” class (
com.theoryinpractise.halbuilder.java.Representations) containing Guava based extensions to the HalBuilder library.
halbuilder-scala module contains implicit conversions providing idiomatic Scala extensions to the HalBuilder library. Similar to
halbuilder-java only using Scala’s
Option and closures.
halbuilder-kotlin ( coming )
halbuilder-kotlin module provides idiomatic Kotlin extension methods to HalBuilder. The intent is to be a sister to module to
halbuilder-scala only using Kotlin nullable types and closures.
halbuilder-clojure ( coming )
halbuilder-clojure module provides idiomatic Clojure functions wrapping HalBuilder. Much like
halbuilder-scala - the intent is to provide support for clojure functions/predicates/maps when working with HalBuilder.
So far I’m pretty happy with the shape of
halbuilder-java so I hope to start releasing these artifacts over the next week or two unless something crops up, or someone reports some heinous design flaw…
A small patch release of the clojure-maven-plugin has been pushed out to Maven Central:
- Support for Colin James REPL-y project. Simply add a project dependency on REPL-y and it will be used for the clojure:repl goal.
- A new configuration flag (spawnInteractiveConsoleOnWindows) to disable process spawning on the Windows platform.
<plugin> <groupId>com.theoryinpractise</groupId> <artifactId>clojure-maven-plugin</artifactId> <version>1.3.12</version> </plugin>
Everytime I tinker with Newspeak I keep thinking I’d love to have a variation of the Hopscotch IDE for clojure - providing an easy browser style interface to namespaces, function definitions, and a REPL.
Having the browser is what makes Smalltalk and Newspeak so much more powerful an environment IMHO.
A minor update to the
<plugins> <plugin> <groupId>com.theoryinpractise</groupId> <artifactId>clojure-maven-plugin</artifactId> <version>1.3.10</version> <extensions>true</extensions> </plugin> </plugins>
- Marginalia Mojo to be 0.7.x compatible
- -DskipTests support added to test-with-junit
A simple small release, but we like them.
Thank’s to some small, but super awesome pull requests from Cosmin Stejerean I just released version 1.3.9 of the
clojure-maven-plugin which should be hitting Maven Central shortly:
<plugin> <groupId>com.theoryinpractise</groupId> <artifactId>clojure-maven-plugin</artifactId> <version>1.3.9</version> <extensions>true</extensions> </plugin>
- Two new goals:
add-test-sourcewhich will include your clojure sources in the
-test-sources.jarrespectively when doing releases. These goals have been added to the default
clojurepackaging lifecycle has been changed to report
javaas it’s language, allowing plugins such as
- Support for Cosmin’s iClojure REPL replacement – simply include
iclojureas a dependency.
It’s been a few months since I’ve managed to find time to do any work on the clojure-maven-plugin but since there’s a few bug fixes and updates sitting on the development branch it’s high time for a new release!
1.3.8 has been released to Maven Central with the following changes:
- Add autodocTargetDirectory property to specify location of autodoc output.
- Add dependency info in README.
- Add mojo for running marginalia.
- Honour skipTests to prevent test execution.
- Switched to using SourceInclusionScanner to find which source files to recompile.
- Added integration test for clojure 1.3-beta1.
- Fixes issue with test-with-junit not failing build if there are test failures.
- clojure:swank now requires swank-clojure 1.3.1
Thanks to Hugo Duncan and Paudi Moriarty for contributions to this rather belated release.
- Support for the latest VimClojure via clojure:nailgun, if older vimclojure support is required run with
mvn clojure:nailgun -Dclojure.nailgun.server=com.martiansoftware.nailgun.NGServer
- When using a entry, if the filename resolves to an existing fully qualified filename, otherwise prepend the working directory. If it still doesn’t exist, fail the maven run.
- Fixes for Windows usage - new DOS window is spawned ONLY for the REPL, not compile/test/swank etc.
- Added install/deploy phases to the
- Fixed spelling error of tempory to temporary in MOJO property, javadoc, and readme.