'\" t
.\" aegis - project change supervisor
.\" Copyright (C) 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
.\" .
.\"
.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
..
.ds n) aede-policy
.TH "aede-policy" 1 \*(N) "Reference Manual" ""
.SH NAME
aede-policy \- check change set is ready for aede
.XX "aede-policy(1)" "check change set is ready for aede"
.SH SYNOPSIS
.B \*(n)
[
.IR option \&...
][
\f[I]policy\fP...
]
.br
.B \*(n)
.B \-Help
.br
.B \*(n)
.B \-VERSion
.br
.B \*(n)
.B \-List
.SH DESCRIPTION
The \fI\*(n)\fP command is used to verify that a change set is
ready to end development. This is intended to be used by the
\f[I]develop_\%end_\%policy_\%command\fP field of the project
configuration file.
.RS
develop_end_policy_command =
"aede-policy -p $project -c $change all";
.RE
If any of the pilies should fail, the \fI\*(n)\fP command will fail with
an exit status of 1. This, in turn, will cause the \f[I]aede\fP(1) command
to leave the change in the \f[I]being developed\fP state.
.PP
Note that the \f[I]aede\fP(1) command sets the appropriate environment
variables, so the \fB\-Project\fP and \fB\-Change\fP options are rarely
necessary.
.PP
If no policies appear on the command line, the \f[I]aede-policy\fP project
specific attribute will be checked. If it exists, it contains a list of
space separated policy names.
.SS POLICIES
There are a range of policies that can be selected.
.TP 8n
all
Check all of the
\f[I]copyright\fP,
\f[I]crlf\fP,
\f[I]description\fP and
\f[I]printable\fP
policies.
.TP 8n
copyright
.RS
This policy checks that each file in the change set contains
a copyright notice of the form
.RS
Copyright (C) \fByear\fP \f[I]something\fP
.RE
where \fByear\fP is the current year (you can have a range of years, too).
Binary files are ignored.
Change sets marked with a \f[I]foreign-copyright=true\fP attribute are ignored,
as are files similarly marked.
The \f[I]something\fP part is either the project specific
\f[I]copyright-owner\fP attribute, or the executing users full name.
.RE
.TP 8n
crlf
This policy cheks that all files are using UNIX line termination (NL),
not DOS line termination (CRLF).
Binary files are ignored.
.TP 8n
description
This policy checks that the change set \f[I]brief_description\fP and
\f[I]description\fP attributes have been updated to something other than
the defaults.
.TP 8n
fsf-address
This policy checks that the FSF address, if present in source files, is
up-to-date. This is useful for Free Software projects.
.TP 8n
gpl-version
.TP 8n
gpl-version=\f[I]nn\fP
This policy checks files that cite the GNU GPL in their file headers, to
be sure they contain the correct version of the GNU GPL. Defaults to
version 3 if no version number specified.
.TP 8n
line-length
.TP 8n
line-length=\f[I]nn\fP
This policy checks that files have this maximum line length.
Defaults to 80 if no width is specified.
Can be overridden per file using the
\f[I]aede-policy-line-length\fP file attribute.
.TP 8n
merge-fhist
This policy requires that there be no \f[I]fmerge\fP(1) conflict lines
present in any source files. The name comes from the name of the
package containing this tool: \f[I]fhist\fP.
.TP 8n
merge-rcs
This policy requires that there be no \f[I]merge\fP(1) conflict lines
present in any source files. The name comes from the name of the
package containing this tool: \f[I]rcs\fP.
.TP 8n
no-tabs
.RS
This policy checks that files have no tabs characters in them. This
is useful when a team of developers all use different editors and
differnt tab stops. By only using spaces, the code is presented to all
developers the same way.
.PP
This check is not applied to change sets with a
\Iforeign-copyright=true\fP attribute, because you have little control
over them (change the tabs in a later change set, if at all).
.PP
This check is not applied to files which are called \f[CW]Makefile\fP
or similar, and it is not applied to files carrying a
\f[I]aede-policy-tabs-allowed=true\fP attribute.
.RE
.TP 8n
printable
This policy checks that each file in the change set contains only
printable text characters and white space. The \f[I]content-type\fP file
attribute is taken into account; if there is no \f[I]content-type\fP file
attribute, or there is no charset specified by the \f[I]content-type\fP
file attribute, plain 7-bit ASCII text is assumed.
.TP 8n
text
This policy checks that each file in the change set contains only text,
although international character sets are acceptable. This is basically
a test for NUL characters, because everything else could be part of a
valid character encoding of some international character set.
.TP 8n
white-space
This policy checks that there is no white space on the ends of lines,
that there are no blank lines at the ends of files.
.PP
If no policy is specified,
only the \f[I]description\fP policy will be checked.
.SH OPTIONS
The following options are understood:
.\"
.\" aegis - project change supervisor
.\" Copyright (C) 1991-1993, 2003, 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
.\" .
.\"
.TP 8n
\fB-Change\fP \fInumber\fP
This option may be used to specify a particular change within a project.
See \fIaegis\fP(1) for a complete description of this option.
.\"
.\" aegis - project change supervisor
.\" Copyright (C) 1991-1993, 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
.\" .
.\"
.TP 8n
.B -Help
.br
This option may be used to obtain more information about how to use the
.I \*(n)
program.
.TP 8n
\fB\-List\fP
List all of the available validations.
.\"
.\" aegis - project change supervisor
.\" Copyright (C) 1991-1993, 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
.\" .
.\"
.TP 8n
\fB-Project\fP \fIname\fP
This option may be used to select the project of interest.
When no
.B -Project
option is specified,
the
.I AEGIS_PROJECT
environment variable is consulted.
If that does not exist,
the user's
.I $HOME/.aegisrc
file is examined for a default project field (see
.IR aeuconf (5)
for more information).
If that does not exist,
when the user is only working on changes within a single project,
the project name defaults to that project.
Otherwise,
it is an error.
.\"
.\" aegis - project change supervisor
.\" Copyright (C) 1991-1993, 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
.\" .
.\"
.r)
.PP
All options may be abbreviated;
the abbreviation is documented as the upper case letters,
all lower case letters and underscores (_) are optional.
You must use consecutive sequences of optional letters.
.PP
All options are case insensitive,
you may type them in upper case or lower case or a combination of both,
case is not important.
.PP
For example:
the arguments "-project, "-PROJ" and "-p" are
all interpreted to mean the \fB-Project\fP option.
The argument "-prj" will not be understood,
because consecutive optional characters were not supplied.
.PP
Options and other command line arguments may be
mixed arbitrarily on the command line,
after the function selectors.
.br
.ne 4
.PP
The GNU long option names are understood.
Since all option names for
.I \*(n)
are long,
this means ignoring the extra leading '-'.
The "\fB--\fIoption\fB=\fIvalue\fR" convention is also understood.
.\"
.\" aegis - project change supervisor
.\" Copyright (C) 1991-1993, 1995, 1997, 2004, 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
.\" .
.\"
.SH EXIT STATUS
The
.I \*(n)
command will exit with a status of 1 on any error.
The
.I \*(n)
command will only exit with a status of 0 if there are no errors.
.SH ENVIRONMENT VARIABLES
See \fIaegis\fP(1) for a list of environment variables which may affect
this command.
See \fIaepconf\fP(5) for the project configuration file's
\fIproject_\%specific\fP field for how to set environment variables for
all commands executed by Aegis.
.SH SEE ALSO
.TP 8n
.IR aede (1)
end development of a change
.TP 8n
.IR aepconf (5)
project configuration file
.\"
.\" 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