GNU Artanis is packaged and available via the Guix package manager. Read more about Guix here: https://guix.gnu.org/
GNU Guix is a package manager for GNU/Linux systems. It is designed to give users more control over their general-purpose and specialized computing environments, and make these easier to reproduce over time and deploy to one or many devices.
This combines elegantly with Artanis, and ensures a stable and reproducible build process for your projects and deployments.
A simple manifest.scm file can look like this, and allows you to customize and isolate (per project) what versions of Artanis (and other software) you use.
(use-modules (guix packages)
(gnu)
;; ............
(gnu packages guile)
(gnu packages guile-xyz)
;; ........
)
(packages->manifest (list artanis
(specification->package "gettext")
guile-next
;; guile-ares-rs is a nice developer REPL
sqlite
guile-dbi
guile-dbd-sqlite3))
This allows you to customize what version of Artanis you may want to run or do other optimizations or changes.
See more about Guix packages here: https://guix.gnu.org/manual/en/html_node/Defining-Packages.html
The upstream package definition for Artanis can be found here: https://codeberg.org/guix/guix/src/branch/master/gnu/packages/guile-xyz.scm
With this you can then reproducibly run your project with art and more as well:
# Running `art` from inside the reproducible guix shell guix shell -m manifest.scm -- art work -c conf/production.conf guix shell -m manifest.scm -- sqlite3 my.db 'PRAGMA journal_mode=WAL;'