Walkthrough: setting up a Catala project

While the Catala tutorial introduces you to programming in Catala and the specificities of mirroring legal requirements in your code, it lacks all the aspects of an IT project beyond just writing the code.

Specifically, the Catala team encourages Catala developers to use modern software engineering standards with respect to project organization and management. This section acts as a walkthrough guide that shows primarily how the Catala build system, clerk, facilitates the workflow of structuring, testing and deploying an IT project using Catala.

Prerequisite for this walktrough

This walkthrough will assume the reader works on an Unix-like system and has a minimum level of practice of the command line and basic system operations. The second, third and fourth section also assume basic knowledge of modern software engineering works, and familiarity with platforms like Gitlab or Github.

This walkthrough guide is structured sequentially to mimick the different steps of creating a new Catala project and organizing its codebase as well as the work around it:

  • the first section explains how to organize Catala source files and configure your project for clerk, Catala's build system;
  • the second section expands on the previous one to add automated deployment of Catala-generated artifacts using the different backends of the compiler;
  • the third section is about setting up a modern software engineering stack around the codebase, complete with versionning, automated testing and continuous integration (CI);
  • the fourth section is a step-by-step guide for setting up an externally implemented module and its external implementations in all the target backends, all of that integrated in the automated software engineering toolchain described in the previous sections;
  • the fifth and final section is mostly non-technical and orthogonal to the previous sections, it is about the human organization of Catala projects involving lawyers and programmers, as well as the important foundational choices to be made at the start of the project.

The last section will surprise you!

While the first four sections are primarily geared towards programmers, the Catala teams recommends that everyone on the project, including lawyers, read the fifth section before diving into the production of the Catala code.

Have a good read!