1/*
2 * aegis - project change supervisor
3 * Copyright (C) 1991-1993, 1997, 1998, 2001-2004, 2006, 2008, 2012 Peter Miller
4 * Copyright (C) 2008 Walter Franzini
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or (at
9 * your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *
19 *
20 * If you change this file, don't forget to change
21 *      man5/aecattr.so
22 *      man5/aepstate.5
23 */
24
25type change_cause =
26(
27    /*
28     * The change was created in response to
29     * a bug report
30     * from outside the development team.
31     * This repairs existing functionality.
32     */
33    external_bug,
34
35    /*
36     * The change was created in response to
37     * an enhancement request
38     * from outside the development team.
39     * This adds new functionality.
40     */
41    external_enhancement,
42
43    /*
44     * The change was created in response to
45     * an improvement request
46     * from outside the development team.
47     * This improves existing functionality.
48     */
49    external_improvement,
50
51    /*
52     * The change was created in response to
53     * a bug report
54     * from inside the development team.
55     * This repairs existing functionality.
56     */
57    internal_bug,
58
59    /*
60     * The change was created in response to
61     * an enhancement request
62     * from inside the development team.
63     * This adds new functionality.
64     */
65    internal_enhancement,
66
67    /*
68     * The change was created in response to
69     * an improvement request
70     * from inside the development team.
71     * This improves existing functionality.
72     */
73    internal_improvement,
74
75    /*
76     * This cause is where you have a fix to fix a fix;
77     * tracking these is an interesting quality metric.
78     */
79    chain
80);
81type file_action = (create, modify, remove, insulate, transparent);
82
83/*
84 * The file usage type is used to remember a type of file.
85 *
86 * (Files are not particularly distinguished by whether ot not they are
87 * binary or plain text.  Aegis doesn't care, and thus file_usage makes
88 * no distinction.)
89 */
90type file_usage =
91(
92    /*
93     * Source files are a primary source, the preferred form of
94     * editing and storage of a fundamental project building block.
95     */
96    source,
97
98    /*
99     * Configuration files are in aepconf(5) format, but are in all
100     * other respects primary source files.
101     */
102    config,
103
104    /*
105     * Build files are secondary source files, generated during the
106     * build process (see aeb(1) for example) and tracked by Aegis.
107     */
108    build,
109
110    /*
111     * Authomatic test files are by default shell scripts, but may
112     * in fact be any format desired (see aet(1) and aepconf(5) for
113     * more information).  They are in all other respects primary
114     * source files.
115     */
116    test,
117
118    /*
119     * Manual test files are by default shell scripts, but may in
120     * fact be any format desired.  They are in all other respects
121     * primary source files.
122     */
123    manual_test
124);
125
126type metric =
127[
128    {
129        /*
130         * The name of the metric.
131         */
132        name = string;
133
134        /*
135         * The value of the metric.
136         */
137        value = real;
138    }
139];
140
141/*
142 * The history_version structure is used to remember sufficient
143 * information about a file version checked into history that it can
144 * be re-created.  The edit number alone is not sufficient, because you
145 * need to know how to decode it, as well.  The uuid field points to
146 * the change the file'sedit belongs to.
147 */
148type history_version =
149{
150    /*
151     * The revision identifier as reported by the history_get_command.
152     */
153    revision = string;
154
155    /*
156     * The encoding employed by the history_{put,create}_command
157     *
158     * none
159     *      No encoding was employed at all.  The file conforms to
160     *      history_content_limitation.
161     *
162     * quoted_printable
163     *      The MIME Quoted Printable encoding was used when the
164     *      file was committed to history.
165     *
166     * quoted_printable
167     *      The MIME base 64 encoding was used when the file was
168     *      committed to history.
169     */
170    encoding = (none, quoted_printable, base64);
171
172    /*
173     *  The UUID of the change this revision belongs to.
174     *
175     */
176    uuid = string;
177};
178
179/*
180 * The attribute_list structure is used to remember arbitrary name/value
181 * pairs of information.  This is used for project attributes, change
182 * attributes and file attributes.
183 */
184type attributes =
185[
186    {
187        name = string;
188        value = string;
189    }
190];
191
192
193/* vim: set ts=8 sw=4 et : */
194