The Tools We Use For Ampersand
  • Introduction
  • Tools used in the Ampersand project
  • Version control with Git
  • How to release an Ampersand upgrade
  • Documenting with GitBook
    • Getting started with GitBook
    • Do's and Dont's in Ampersand documentation
  • Building
    • Building an Ampersand Compiler with Stack
    • Baking a Docker image that contains the Ampersand Compiler
    • Testing with Docker on your own laptop
    • Automated builds
  • Prototype framework
  • Automation of releasing (CI/CD)
    • Github packages
  • Installation of RAP
    • Deploying to your own laptop
    • Deploying RAP4 in the Azure cloud
    • Deploying OUNL RAP4
    • Maintaining RAP4
    • Making Docker images
    • Deployment Configuration
    • Details
  • Functionality of RAP4
    • Student
    • Tutor
    • Account Manager
    • Graduate Student
  • Deploying with Kubernetes
  • Authentication and access management with OAuth
  • Ampersand language support
  • Group 1
    • Development using VS Code
Powered by GitBook
On this page
  • Specific tools used in the Ampersand project
  • Generic tools used in the Ampersand project
Export as PDF

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

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.

all

an organisation in which we keep all Ampersand git-repos

all

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.

PreviousIntroductionNextVersion control with Git

Last updated 6 years ago

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

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

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

a repository in which we keep

,

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

, , , ,

a for the public at large to use Ampersand. This instance is also used as acceptation environment for in the course .

,

a that is used as production environment for students in the course .

, ,

a Github repository in which we keep the .

a course at the in which students use Ampersand.

, , ,

,

,

, , , , , ,

,

, ,

,

,

, , ,

,

,

Ampersand image
docker-hub
Ampersand repository
repository
GitHub
Appveyor
releases the Ampersand compiler
Han
Docker Hub
Ampersand images
Hidde-Jan
Stef
GitBook
documentation of Ampersand
documentation on how we build and maintain the software
Han
Stef
Esther
Lloyd
Hidde-Jan
GitHub
RAP3
web-based application
the RAP3 instance that is used for students
Rule Based Design
Lloyd
Stef
RAP3
web-based application
Rule Based Design
Esther
Lloyd
Stef
RAP-repo
source code of RAP
Stef
Rule Based Design
Open Universiteit
Stef
Esther
Lloyd
Rogier
Travis
Han
Michiel
Rieks
Docker
Hidde-Jan
Stef
Docker-compose
Hidde-Jan
Stef
Git
Han
Rieks
Michiel
Hidde-Jan
Martijn
Stef
Sebastiaan
Graphviz
Stef
Han
Haskell
Stef
Sebastiaan
Han
JSON
Han
Michiel
Kubernetes
Stef
Stef
Han
MariaDB
Han
Michiel
Stef
Sebastiaan
Markdown
Node.js
Michiel
npm
Michiel
Pandoc
Han
Stack
Han
Stef
VS-code
Han
Rieks