Requirementsλ︎
Practicalli provides an install guide for Clojure and a wide selection of Clojure aware editors
Recommended development tools for this guide are:
Code examples can be used with any Clojure build tool, although this guide focuses on using Clojure CLI tools. Some examples use Leiningen and will be updated to Clojure CLI, although the Clojure code will be the same.
Additional Development toolsλ︎
To complete all the steps in this guide, especially around deployment tasks, additional development tools and services are required.
Development Tools | Version | Test (command line) |
---|---|---|
Git client | latest | git --version |
Docker Desktop | latest | docker --version |
Postgres database | latest |
GitHub and GitHub actions will be predominantly used in this guide, although more use of CircleCI and GitLab will also be introduced. CircleCI is a developer focused service for Continuous Integration, developed with Clojure, providing obs that package up common workflows such as deploying to specific Cloud services.
Continuous Integration Services |
---|
GitHub Actions |
GitLab CI |
CircleCI |
Heroku deployment to be deprecated
Heroku has been used to simplify deployment directly from source code using existing build packs. Heroku now requires a commercial license for deployment so this content is to be deprecated.
Persistence Alternativesλ︎
Practicalli is considering other persistent storage approaches for this guide and any contributions in this regard is much appreciated
- Crux - an open source document database with bitemporal graph queries
- Datomic - a commercial transactional database with a flexible data model, elastic scaling, and rich queries.
- Amazon Aurora - MySQL and PostgreSQL compatible cloud native relational database
- Amazon DynamoDB with Clojure Faraday library - for persisting JSON like data structures
Leiningen approach (to be archived)λ︎
Install Leiningen for the Leiningen Todo App project and test the Leiningen install by running the command lein version
in a terminal application.