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

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.

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

all

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

a repository in which we keep Ampersand images

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.

an organisation in which we keep all Ampersand git-repos

all

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.

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

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

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

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

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.

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.

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

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

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.

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

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

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

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.

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.

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

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

all

the JavaScript framework in which an Ampersand Prototype is generated

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

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

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.

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

Last updated