The ada tool

In a recent post (https://plus.google.com/102090077582777383295/posts/NHciyd726Xq) I talked about the current prevalent usage of make and env variables in most Ada community project. After that post we had a talk with +Thomas Løcke in which we decided that it would be worth to implement a solution similar to the golang go tool. The aim of this post is to describe the tool and the initial feature set we would like to aim for.

Goal
Lower the entry barrier for people new to the language by making it easier to build existing Ada projects.

The tool is intended to be cross-platform, not depending on the presence of a shell, make and other *nix specific utilities. The tool is not a make/autotools replacement, project building will be performed solely by the usage of gnatmake/gprbuild.

The ada tool will be heavily modelled after the go tool since we believe that they got this part right.

Assumptions
We have to take some decisions and enforce them down the line in order to clean up the multitude of environment variables brought to live with each Ada project.

We will assume that a single $ADAPATH variable is set and points to a directory with the structure:
$ADAPATH/src # source code
$ADAPATH/bin # binary executables
$ADAPATH/pkg # compiled shared libraries
$ADAPATH/doc # documentation

Installation should remain a 3 step process
1. set $ADAPATH
2. wget/checkout from source control a single ada tool bootstrap file written in ada.
3. gnatmake ada.adb

After the third step the tool should be fully functional for building software projects.

Features
* ada get project
 Download an Ada project and it's dependencies directly from the network.
 Allow custom urls, github, bitbucket and other code hosting sites.
* ada build project
 Compile an ada project and it's dependencies
* ada test project
 Run the ahven test suite from the project
* dashboard
 A web page that the ada tool could communicate actions to in order to tell people about problems with building a project / number of installations etc (similar to golang dashboard) - his would be an opt-in feature disabled by default.

Example:
Download yolk and it's dependencies (including aws) and build them with one step

ada get github.com/ThomasLocke/yolk

QA:

Q: What about existing projects using Make, autotools, cmake and others?
A: Well we can't force anyone to use this approach. We will consider it a success if the tool gains traction and is useful for new Ada projects.

Consider this post as a request for comment and an invitation to a general discussion about the proposed tool.
Shared publiclyView activity