You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

This distills the requirements that have been suggested as part of PROTON-194 and the related Proton mailing list discussion.

Requirements

The following requirements are listed in no particular order.

Unless otherwise specified, "proton-c" means the the C implementation itself, plus all the language bindings. "proton" includes proton-c, proton-j, the system tests.

Requirement

Stakeholder

When a user has downloaded the tarball source release of proton, they can build it and run all the system tests without requiring non-standard tools*.

QA tester or End User

A checkout of proton can be built without requiring non-standard tools*.

Developer

A checkout of proton can be tested without requiring non-standard tools*

Developer

As with all build systems, the other requirements should be met whilst maximising simplicity and minimising duplication. For example, it would be good if the aforementioned proton tarball release could be produced by performing a simple "svn export" of a proton checkout.

Developer, Release Manager

Non-standard tools

*non-standard tools means anything that is not easily available on a common Linux distribution.

For example, Maven is considered non-standard because the package managers of RHEL and Fedora do not offer a sufficiently recent version. In contrast, make and cmake are standard tools.

Note that it is acceptable require a given non-standard tool to perform an operation that is intrinsically related to it. For example, it is acceptable for the build system to require Maven to be installed in order to publish the artefacts to a Maven repository. It is also acceptable for the build system to allow the use of Maven as an optional convenience to the developer.

  • No labels