Making modules for Clojure/ClojureScript

When packaging Clojure/ClojureScript modules:

  • Continuous integration testing can be done with travis-ci for open source projects. Just add a .travis.yml to the project which runs the tests, log in on travis-ci.org with github, and enable the project, – then every time you push a commit, the tests will be run automatically, and you will get a warning if something is wrong.
  • Dependency tracking can be done with jarkeeper, ie. visiting jarkeeper.com/$GITHUB_USER/$PROJECT_NAME will show you whether the modules dependency is up to date.
  • Clojars is the community maven repository for open source clojure modules, – this is where you easily can distribute your libraries etc. just run “lein depluy clojars” and it is up there, and can easily be found/used by other projects 🙂
  • Github badges, – you can various dynamic information to the README on github, – by linking to certain images on travis, jarkeeper and clojars, your project page can show live status for unit testing, dependency tracking, and latest installable version of the project.

When using Clojure + ClojureScript together:

  • cljs.test is now available, so you can use the same test framework within ClojureScript and Clojure
  • Feature expressions has landed, so you can make cljc files, which works both in Clojure and ClojureScript
  • Take a look at best practices

Example project, that I am working on to learn how to make modules for ClojureScript, is available on https://github.com/rasmuserik/hello-module