2.1 Projects and the Project File

A project is a git repository. It may contain an ‘ergo’ project file, ‘<name>.ergo’, listing its dependencies and the commands to build, test, and run it:

(ergo:project
 :designator   (gitlab "informatimago/clage")
 :dependencies ((github "sharplispers/ironclad"       :tag :latest)
                (github "sharplispers/split-sequence" :tag "v2.0.0")
                (gitlab "com-informatimago/com-informatimago"))
 :build (asdf "com.informatimago.clage")
 :test  (asdf "com.informatimago.clage.test")
 :run   (lisp "(clage:main)"))

For simple projects — a single asdf or alpm system — the project file may be omitted: ‘ergo’ scans the repository, finds the system definition file, and infers the dependencies from it.