Tools.deps aliases in Ion deployments

I’m moving a Luminus REST web service project to Ions and thinking through project structure and what’s possible with deployment via deps.edn. Luminus projects are structured as a core of functionality (eg src and resources for use across environments) and a set of environment-specific directories with their own src and resources, allowing for different initialization and configuration depending on your deployment environment.

If I have, for example, different logging configurations that I want to use for different environments (dev, test, production, different query groups, etc…) can I put those in different directories, then specify which one should end up on the deployed classpath via the :extra-paths of an alias in my deps.edn?

In commands like clojure -Adev -m datomic.ion.dev '{:op :push}', we’re specifying the dev alias for running our deploy command (ie configuring the local classpath+main), but it would be nice to be able to also specify how tools.deps should construct the remotely deployed system. Hopefully the forthcoming docs will clarify both the default behavior (is datomic.ion.dev just deploying the top-level :paths, :deps, etc… and ignoring the aliases?) and the extent of what’s possible and/or recommended.

4 Likes

Reviving an old thread here because I’m doing the same move right now. Would be very interested to hear how this went for you, and any advice you have. In particular I’m a bit unclear if the Ions stack, alone, can host a traditional web app with routing. The Ions docs only seem to mention ‘web services’ and single page apps.

3 Likes