Skip to content

Clojurists Together Project Update 5

Clojurists Together Logo

Continuous integration and deployment was the main focus of this period, with some Clojure spec generative testing.

Added Practicalli website and YouTube channel to the Clojure.org community resources.

Practicalli study groupλ︎

Continuing a tools theme by setting up continuous integration (CI) for Clojure projects. The CI service partially written in Clojure provides good support for Clojure projects. Building on CircleCI to deploy Clojure applications to the Cloud using the Heroku service.

Broadcasts also cover using Kaocha generative test runner, both locally and on CircleCI

Content developed for Practicalli Clojure and Practicalli Clojure Webapps books.

Practicalli Clojureλ︎

Created several guides for new and existent projects, using CircleCI as a continuous integration service. Kaocha is also used to run generative tests as well as unit tests.

Created an introduction to CircleCI as a continuous integration service and identified and documented recommended docker images to use for Clojure deps.edn and Leinigen projects. The CircleCI examples are a little dated and includes only Leinginen project examples.

Random Clojure Function project. Created a guide to develop a project that generates a random function from the namepaces available in the REPL or the functions from specified namespaces.

Using the random Clojure function project, created a guide to develop a project with the help of CircleCI as the continuous integration service.

Banking on Clojure Updated the banking-on-clojure project using a TDD approach with Clojure spec.

Using Kaocha test runner run unit tests and Clojure spec generative tests locally and via CirceCI. Kaocha can run the same tests as clojure.spec.test.alpha/test function calls, without having to add code to the project. Adding the spect-check-plugin via the test.edn config did not run the generative tests, only the unit tests. Use the spec-test-check plugin to run the reports works when included as a command line flag.

Practicalli Clojure Webappsλ︎

Created a guide to deploy a Clojure application via CirceCI onto Heroku. Think of Heroku as AWS without the cognitive load to use it, simply push source code to Heroku and it builds and deploys the resulting application.

Updated the status monitor project to deps.edn to use as the basis for a guide to deploy Clojure applications via CircleCI to Heroku (a cloud platform as a service). The project takes a simple approach so the focus remains on the continuous integration pipeline.

CircleCI has an Heroku Orb, providing common configuration for deploying to Heroku. The Heroku orb is used to deploy the project from its source code, building an uberjar and running the application from that uberjar.

Updated details of using postgresql with Clojure (documentation will be extended soon) and recommended next.java as a library to use for SQL.

Simplified the overall navigation on the Practicalli Clojure Webapps book.

Heroku only commercially available

Heroku stopped providing user accounts with free compute credits, so either Heroku must be paid for or use an alternate approach to deployment in the cloud.

Practicalli Spacemacsλ︎

Rewrite of the switch to develop page, using in-page tabs to simplify the guide into the two different approaches.

Hacking on Spacemacsλ︎

Added key bindings to refactor namespace forms in clojure-mode

"ran" 'clojure-insert-ns-form "raN" 'clojure-insert-ns-form-at-point "rsn" 'clojure-sort-ns

Updated practicalli/.spacemacs.d repository with doom modeline configuration, providing a very clean and simple UI experience for Emacs whilst still providing the most useful information.