# Changeset 2532

Show
Ignore:
Timestamp:
08/03/12 06:31:47 (20 months ago)
Message:

Describe the design goals of the system better.

Ticket: #279

Location:
trunk/tools/build-automation
Files:
2 modified

Unmodified
Removed
• ## trunk/tools/build-automation/build-system.pre.nw

r2531 r2532
4040% Typesetting requirements.
4141\theoremstyle{remark}
42 \newtheorem{requirement}{Requirement}
42\newtheorem{goal}{Design Goal}
4343
4444% Add meta-data to the PDF file.

6464\newcommand{\tool}[1]{\textbf{#1}}
66\newcommand{\foreignphrase}[1]{\textit{#1}}
6667\makeatother
6768
• ## trunk/tools/build-automation/introduction.nw

r2461 r2532
77\chapter{Introduction}\label{chap.introduction}
88
9 \section{Requirements}
9\section{Design Goals}
1010
11 \begin{requirement}
12   The utility should be able to build of the source tree on a variety
13   of machine architectures and operating systems.
14 \end{requirement}
11\begin{goal}
12  The system should support build and testing our source tree, on the
13  target operating systems and machine architectures of our interest.
14\end{goal}
1515
16 % Builds on non-native machine architectures and operating systems are
17 % would involve the use of CPU and virtual machine emulators.  The
18 % actual build will be done using \tool{make} or equivalent utility.
16This is the primary design goal for the tool, its
17\foreignphrase{raison d'\^etre}.
1918
20 \begin{requirement}
21   The utility should be able to work effectively in a resource-%
22   constrained host environment (such as a laptop computer).
23 \end{requirement}
19\begin{goal}
20  The system should support building and testing our source tree on
21  non-native architectures (relative to the build host).
22\end{goal}
2423
25 \begin{requirement}
26   The utility should work in 'offline' mode, without requiring
24Builds on non-native machine architectures and operating systems are
25would involve the use of virtual machines and CPU emulators.  The
26actual build will be done using \tool{make} or equivalent utility.
27
28\begin{goal}
29  The system should be easy to use.
30\end{goal}
31
32Defining a build needs to be intuitive, and should utilize
33pre-existing tools where possible.
34
35The number of new notations and file formats that a user needs to
36learn should be kept to a minimum.
37
38Invoking a build should be simple.  Sensible defaults should be used
39to minimize the need for user input at the time of invocation.
40
41\begin{goal}
42  The system should be able to run entirely on a relatively power and
43  resource constrained system such as a laptop, i.e., without needing
44  a beefy build box, or architecture-specific hardware.
45\end{goal}
46
47The ability to be able to work using a low power compute platform is a
48necessity in the project's current development environment
49
50The need to be frugal in resource consumption rules out the use of
51certain convenient but resource hungry implementation options.
52
53\begin{goal}
54  The system should work in offline'' mode, without requiring
28 \end{requirement}
56\end{goal}
2957
30 \begin{requirement}
31   The utility should be able to work with a source tree with local
32   changes in addition to that on a version control system.
33 \end{requirement}
58The intent is to be able to work in standalone'' mode, without
59needing to contact a master server on the network.
3460
35 \begin{requirement}
36   The utility should be easy to port to new target OSes.
37 \end{requirement}
61\begin{goal}
62  The system should allow a source tree that is in-development to be
63  built and tested, prior to a check-in.
64\end{goal}
65
66This system is primarily a development aid, and not primarily a tool
67for implementing continuous integration.
68
69\begin{goal}
70  The system should be easy to deploy, with the minimum of software
71  dependencies.
72\end{goal}
73
74The fewer dependencies on third party packages, the easier it is to
75support target operating systems.
76
77\begin{goal}
78  The utility should be easy to port to a new operating system.
79\end{goal}
80
81This goal is meant to reduce the effort needed to support new
82operating systems.