Skip to content
Paul Mansour edited this page May 29, 2020 · 52 revisions

Dado

"Put your APL applications on a solid foundation"

Dado is a collection of User Commands (and also an API accessible via ⎕SE.Dado) that implements a development operations system for Dyalog APL.

Dado defines a project, a package and an application. A project is the modern successor of the workspace as the primary code repository. A project is a folder full of APL code in text files, a configuration file, and additional files (bitmaps, dlls, etc.) that a particular project may require. A project maps directly to a Git repository. A package is a versioned release of a project, and is nothing more than an appropriately tagged Git commit of the project. An application is a collection of packages (one primary package and a set of zero or more dependent packages), where the source code is instantiated in a single workspace, rather than distributed in text files.

Dado implements dependency management, and the automatic retrieval of dependent packages. Dado provides a framework for exposing an API for a project, and a technique for cross-project calls into the API that avoids both relative and absolute paths.

Dado also defines and implements DadoFlow a very simple Git workflow.

Dado provides "one-click" releases, handling release notes, generation of all release artifacts, the drafting of a GitHub release, and uploading all assets to GitHub.

In addition, Dado has built-in support for applications (like Dado!) that are themselves User Commands.