'\" t
.\" aegis - project change supervisor
.\" Copyright (C) 1991-1996, 1998, 1999, 2001-2003, 2005-2008 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program. If not, see
.\" .
.\"
.\"
.\" aegis - project change supervisor
.\" Copyright (C) 1991-1993, 1997, 2006-2008 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program. If not, see
.\" .
.\"
.\"
.\" aegis - project change supervisor
.\" Copyright (C) 1991-1993, 1997, 2006-2008 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program. If not, see
.\" .
.\"
.ds n) aegis
.ds N) Aegis
.if n .nr )M 8n
.if n .nr IN 8n
.if n .nr )I 8n
.if n .po 0
.hy 0
.if n .ad l
.de r)
.if !'\\*(R)'no' \{\
.PP
See also
.IR \*(n) (1)
for options common to all \*(n) commands.
.\}
..
.de eB
.RS
.nf
.ft CW
.ta 8n 16n 24n 32n
..
.de eE
.ft P
.fi
.RE
..
.TH aepattr 5 \*(N) "Reference Manual"
.SH NAME
aepattr - aegis project attribute file
.XX "aepattr(5)" "project attribute file format"
.SH DESCRIPTION
The
project attribute
file is used to store modifiable information about a project.
.SH CONTENTS
.TP 8n
description = string;
This field contains
a description of the project.
Large amounts of prose are not required;
a single line is sufficient.
.TP 8n
developer_may_review = boolean;
.RS
If this field is true, then a developer may review her own change.
This is probably only a good idea for projects of less than 3 people.
The idea is for as many people as possible to critically examine a change.
.PP
Note that the \fIdevelop_\%end_\%action\fP field may not contradict
the \fIdeveloper_\%may_\%review\fP field. If developers may not review
their own work, then their changes may not goto directly to the \fIbeing
integrated\fP state (as this means much the same thing).
.RE
.TP 8n
developer_may_integrate = boolean;
If this field is true, then a developer may integrate her own change.
This is probably only a good idea for projects of less than 3 people.
The idea is for as many people as possible to critically examine a change.
.TP 8n
reviewer_may_integrate = boolean;
If this field is true, then a reviewer may integrate a change she reviewed.
This is probably only a good idea for projects of less than 3 people.
The idea is for as many people as possible to critically examine a change.
.TP 8n
developers_may_create_changes = boolean;
This field is true if developers may created changes,
in addition to administrators.
This tends to be a very useful thing,
since developers find most of the bugs.
.TP 8n
forced_develop_begin_notify_command = string;
.RS
This command is used to notify a developer
that a change requires developing;
it is issued when a project administrator uses an
.I "aedb -User"
command to force development of a change by a specific user.
All of the substitutions described in
.IR aesub (5)
are available.
This field is optional.
.PP
Executed as: the new developer.
Current directory: the development directory of the change
for the new developer.
Exit status: ignored.
.RE
.TP 8n
develop_end_notify_command = string;
.RS
This command is used to
notify that a change is ready for review.
It will probably use mail,
or it could be an in-house bulletin board.
This field is optional,
if not present no notification will be given.
This command could also be used to notify other management systems,
such as progress and defect tracking.
All of the substitutions described by
.IR aesub (5)
are available.
.PP
Executed as: the developer.
Current directory: the development directory of the change.
Exit status: ignored.
.RE
.TP 8n
develop_end_undo_notify_command = string;
.RS
This command is used to
notify that a change had been withdrawn from review
for further development.
It will probably use mail,
or it could be an in-house bulletin board.
This field is optional,
if not present no notification will be given.
This command could also be used to notify other management systems,
such as progress and defect tracking.
All of the substitutions described by
.IR aesub (5)
are available.
.PP
Executed as: the developer.
Current directory: the development directory of the change.
Exit status: ignored.
.RE
.TP 8n
review_begin_notify_command = string;
.RS
This command is used to
notify that a review has begun.
It will probably use mail,
or it could be an in-house bulletin board.
This field is optional,
if not present no notification will be given.
This command could also be used to notify other management systems,
such as progress and defect tracking.
All of the substitutions described by
.IR aesub (5)
are available.
.PP
Executed as: the reviewer.
Current directory: the development directory of the change.
Exit status: ignored.
.RE
.TP 8n
review_begin_undo_notify_command = string;
.RS
This command is used to
notify that a review is no longer in progress, the reviewer has withdrawn.
It will probably use mail,
or it could be an in-house bulletin board.
This field is optional,
if not present no notification will be given.
This command could also be used to notify other management systems,
such as progress and defect tracking.
All of the substitutions described by
.IR aesub (5)
are available.
.PP
Executed as: the reviewer.
Current directory: the development directory of the change.
Exit status: ignored.
.RE
.TP 8n
review_pass_notify_command = string;
.RS
This command is used to
notify that a review has passed.
It will probably use mail,
or it could be an in-house bulletin board.
This field is optional,
if not present no notification will be given.
This command could also be used to notify other management systems,
such as progress and defect tracking.
All of the substitutions described by
.IR aesub (5)
are available.
.PP
Executed as: the reviewer.
Current directory: the development directory of the change.
Exit status: ignored.
.RE
.TP 8n
review_pass_undo_notify_command = string;
.RS
This command is used to
notify that a review has passed.
It will probably use mail,
or it could be an in-house bulletin board.
This field is optional,
if not present no notification will be given.
This command could also be used to notify other management systems,
such as progress and defect tracking.
Defaults to the same action as the \fIdevelop_end_notify_command\fP field.
All of the substitutions described by
.IR aesub (5)
are available.
.PP
Executed as: the reviewer.
Current directory: the development directory of the change.
Exit status: ignored.
.RE
.TP 8n
review_fail_notify_command = string;
.RS
This command is used to
notify that a review has failed.
It will probably use mail,
or it could be an in-house bulletin board.
This field is optional,
if not present no notification will be given.
This command could also be used to notify other management systems,
such as progress and defect tracking.
All of the substitutions described by
.IR aesub (5)
are available.
.PP
Executed as: the reviewer.
Current directory: the development directory of the change.
Exit status: ignored.
.RE
.TP 8n
integrate_pass_notify_command = string;
.RS
This command is used to
notify that an integration has passed.
It will probably use mail,
or it could be an in-house bulletin board.
This field is optional,
if not present no notification will be given.
This command could also be used to notify other management systems,
such as progress and defect tracking.
All of the substitutions described by
.IR aesub (5)
are available.
.PP
Some compilers bury absolute path names into object files and executables.
The renaming of the integration directory to become the new baseline
breaks these paths. This command is passed an environment variable
called AEGIS_\%INTEGRATION_\%DIRECTORY so that the appropriate symlink
may be placed, if desired.
.PP
Executed as: the project owner.
Current directory: the new project baseline.
Exit status: ignored.
.RE
.TP 8n
integrate_fail_notify_command = string;
.RS
This command is used to
notify that an integration has failed.
It will probably use mail,
or it could be an in-house bulletin board.
This field is optional,
if not present no notification will be given.
This command could also be used to notify other management systems,
such as progress and defect tracking.
All of the substitutions described by
.IR aesub (5)
are available.
.PP
Executed as: the integrator.
Current directory: the development directory of the change.
Exit status: ignored.
.RE
.TP 8n
default_development_directory = string;
The pathname of where to place new development directories.
The pathname must be absolute.
This field is only consulted if
the field of the same name in the user configuration file is not set.
.TP 8n
umask = integer;
.br
File permission mode mask.
See
.IR umask (2)
for more information.
This value will always be OR'ed with 022,
because
.I aegis
is paranoid.
.TP 8n
default_test_exemption = boolean;
.br
This field contains what to do when a change is created with
no test exemption specified.
.TP 8n
default_test_regression_exemption = boolean;
.br
This field contains what to do when a change is created with
no regression test exemption specified.
.TP 8n
minimum_change_number = integer;
The minimum change number for
.IR aenc(1),
if no change number is specified.
This allows the low-numbered change numbers to be
used for branches later in the project.
.TP 8n
reuse_change_numbers = boolean;
This controls whether the automatically selected
.IR aenc (1)
change numbers \[lq]fill in\[rq] any gaps.
Defaults to true if not set.
.TP 8n
minimum_branch_number = integer;
The minimum branch number for
.IR aenbr(1),
if no branch number is specified.
Defaults to 1 if not set.
.TP 8n
skip_unlucky = boolean;
This field may be set to true if you want to skip various unlucky
numbers for changes, branches and tests. Various traditions are
avoided, both Eastern and Western. Defaults to false if not set.
.TP 8n
compress_database = boolean;
.RS
This field may be set to true if you want to compress the database on
writing. (It is always uncompressed on reading if necessary.) Defaults to
false if not set.
.PP
Unless you have an exceptionally large project, coupled with fast CPUs
and high network latency, there is probably very little benefit in
using this feature. (The database is usually less than 5% of the size
of the repository.) On slow networks, however, this can improve the
performance of file-related commands.
.RE
.TP 8n
develop_end_action = ( ...);
.RS
This field controls the state the change enters after a successful
\fIaede\fP(1) action.
.TP 8n
.I goto_being_reviewed
This means that the change goes from the \fIbeing_\%developed\fP state
to the \fIbeing_\%reviewed\fP state. The \fIaerb\fP(1) command only
sends informative email.
.TP
.I goto_awaiting_review
This means that the change goes from the \fIbeing_\%developed\fP state
to the \fIawaiting_\%review\fP state. The \fIaerb\fP(1) command is
now mandatory.
.TP 8n
.I goto_awaiting_integration
This means that the change goes from the \fIbeing_\%developed\fP
state into the \fIawaiting_\%integration\fP state. Code review is
skipped entirely.
If the \fIdeveloper_\%may_\%review\fP is false, it is not possible to
use this setting.
.PP
Note that the \fIdevelop_\%end_\%action\fP field may not contradict
the \fIdeveloper_\%may_\%review\fP field. If developers may not review
their own work, then their changes may not goto directly to the \fIbeing
integrated\fP state (as this means much the same thing).
A contradictory setting will be replaced with \fIgoto_\%being_\%reviewed\fP.
.RE
.TP 8n
protect_development_directory = boolean;
.RS
This field may be used to protect the development directory after
the \fIbeing developed\fP state. It does this by making it read-only at
develop end time. Should the change ever be returned to the \fIbeing
developed\fP state, it will be made writable again.
.PP
The default is false, meaning to leave the development directory
writable while is being reviewed and integrated. Aegis' normal
tampering detection will notice if files are changed, but there is
no reminder to the developer that the change should be left alone.
.PP
This field defaults to false, because it can sometimes be slow.
.RE
.SH SEE ALSO
.TP 8n
.IR aepa (1)
modify the attributes of a project
.TP 8n
.IR aegis (5)
\*(n) file format syntax
.TP 8n
.IR aecattr (5)
change attributes file format
.TP 8n
.IR aecstate (5)
change state file format, particularly as branches
are used to remember most project state
.TP 8n
.IR aepstate (5)
project state file format
.\"
.\" aegis - project change supervisor
.\" Copyright (C) 1991-1995, 1997, 2006-2008 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program. If not, see
.\" .
.\"
.br
.ne 2i
.SH COPYRIGHT
.ds v) 4.24.3
.ds V) 4.24.3.D001
.ds o) 0
.ds p) 4.25
.ds u) 4.24
.ds Y) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
\*(n) version \*(V)
.br
.if t .ds C) \(co
.if n .ds C) (C)
Copyright \*(C) \*(Y) Peter Miller
.PP
The \*(n) program comes with ABSOLUTELY NO WARRANTY;
for details use the '\fI\*(n) -VERSion License\fP' command.
This is free software
and you are welcome to redistribute it under certain conditions;
for details use the '\fI\*(n) -VERSion License\fP' command.
.br
.ne 1i
.SH AUTHOR
.TS
tab(;);
l r l.
Peter Miller;E-Mail:;millerp@canb.auug.org.au
\f(CW/\e/\e*\fR;WWW:;http://www.canb.auug.org.au/~millerp/
.TE