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