Tools used in the Ampersand project

This page lists the tools that are used and for which purpose they are used. This list is intended for reference, so it is full of hyperlinks that can point you to the right location.

Specific tools used in the Ampersand project

Tool

Purpose (the hyperlink navigates to the section in this book)

Knowledge holder

Ampersand image

a docker-image in which we keep the latest version of the Ampersand compiler in executable form. It resides in docker-hub.

all

Ampersand compiler

An executable that is used to generate software, documentation, and analyses from Ampersand-scripts. It is embedded into the Ampersand image and into RAP3. There exist multiple instances, so we cannot hyperlink to it.

Ampersand repository

a repository in which we keep Ampersand source code and manage the issues wrt Ampersand. It resides on GitHub.

all

Appveyor

a service that generates executable files for Windows automatically, each time a new release of Ampersand appears. It releases the Ampersand compiler for Windows automatically, provided all automated tests have passed

Han

Docker Hub

a repository in which we keep Ampersand images

Hidde-Jan, Stef

GitBook

a documentation system in which we maintain the documentation of Ampersand and the documentation on how we build and maintain the software. We use GitBook to allow collaborative editing in the documentation based on Git.

Han, Stef, Esther, Lloyd, Hidde-Jan

GitHub

an organisation in which we keep all Ampersand git-repos

all

RAP3

a web-based application for the public at large to use Ampersand. This instance is also used as acceptation environment for the RAP3 instance that is used for students in the course Rule Based Design.

Lloyd, Stef

RAP3

a web-based application that is used as production environment for students in the course Rule Based Design.

Esther, Lloyd, Stef

RAP-repo

a Github repository in which we keep the source code of RAP .

Stef

Rule Based Design

a course at the Open Universiteit in which students use Ampersand.

Stef, Esther, Lloyd, Rogier

Travis

a service, which runs automated tests on every commit of the Ampersand repository on Github. Only the successfully tested commits on the releases branch are released

Han

Generic tools used in the Ampersand project

Tool

Purpose

Knowledge holder

ACE

a web-editor that is used within RAP. It has been integrated in the RAP-application code.

Michiel

EditPad

a text editor that has long been used in the Ampersand project, but not any more. A syntax coloring mechanism for Ampersand still exists. This editor has been superseded by VScode, because it is being supported by a much larger community.

Rieks

Docker

the platform for technology agnostic, fully automated deployment of services, which we use to deploy the Ampersand compiler and applications developed in Ampersand.

Hidde-Jan, Stef

Docker-compose

a platform for configuring services in a full-fledged application such as RAP.

Hidde-Jan, Stef

Git

the versioning system in which all source code is kept. It enables us to work collaboratively on multiple features in parallel, without interfering each other's work.

Han, Rieks, Michiel, Hidde-Jan, Martijn, Stef, Sebastiaan

Graphviz

a system for generating diagrams, which is used to generate conceptual models and data models as part of the documentation generator.

Stef, Han

Haskell

the programming language in which the Ampersand compiler is built and maintained.

Stef, Sebastiaan, Han

JSON

a simple, standardized, format for communicating data structures. It is used to communicate data from the Ampersand-compiler to the generated application.

Han, Michiel

Kubernetes

a platform for configuring and managing deployed services (such as RAP) in an operational environment. Kubernetes is not being used yet in production instances of Ampersand.

Stef

LaTeX

a typesetting system, which we use to generate PDF's with. At the moment MarkDown is the preferred markup language, so LaTeX's role in the Ampersand project is decreasing.

Stef, Han

MariaDB

the database that is used by Ampersand for persistency. This used to be MySQL, until MariaDB took over in the Open Source community.

Han, Michiel, Stef, Sebastiaan

Markdown

the language in which Ampersand documentation is written. We use it for maximal portability of text over different platforms.

all

Node.js

the JavaScript framework in which an Ampersand Prototype is generated

Michiel

npm

the package manager for JavaScript, which guarantees consistency of module dependencies in the JavaScript world.

Michiel

Pandoc

a system for document translation and markup, which we use to create a host of different document formats

Han

Stack

a build automation environment for Haskell that we use to build the Ampersand compiler with. It guarantees consistency of module dependencies within the Haskell world.

Han, Stef

VS-code

an editor for development of the Ampersand compiler and Ampersand-projects. A VScode extension for Ampersand exists that offers syntax coloring.

Han, Rieks