/*	
 *	aegis - project change supervisor
 *	Copyright (C) 1991-1993, 1997-1998, 2001 Peter Miller;
 *	All rights reserved.
 *	
 *	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 2 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, write to the Free Software
 *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
 *
 * MANIFEST: enumerations common to many aegis file contents
 *
 * If you change this file, don't forget to change
 *	man5/aecattr.so
 *	man5/aepstate.5
 */

type boolean = (false, true);
type change_cause =
(
	/*
	 * The change was created in response to
         * a bug report
	 * from outside the development team.
	 * This repairs existing functionality.
	 */
	external_bug,

	/*
	 * The change was created in response to
	 * an enhancement request
	 * from outside the development team.
	 * This adds new functionality.
	 */
	external_enhancement,

	/*
	 * The change was created in response to
	 * an improvement request
	 * from outside the development team.
	 * This improves existing functionality.
	 */
	external_improvement,

	/*
	 * The change was created in response to
	 * a bug report
	 * from inside the development team.
	 * This repairs existing functionality.
	 */
	internal_bug,

	/*
	 * The change was created in response to
	 * an enhancement request
	 * from inside the development team.
	 * This adds new functionality.
	 */
	internal_enhancement,

	/*
	 * The change was created in response to
	 * an improvement request
	 * from inside the development team.
	 * This improves existing functionality.
	 */
	internal_improvement,

	/*
	 * This cause is where you have a fix to fix a fix;
	 * tracking these is an interesting quality metric.
	 */
	chain
);
type file_action = (create, modify, remove, insulate);
type file_usage = (source, build, test, manual_test);

type metric =
[
	{
		/*
		 * The name of the metric.
		 */
		name = string;

		/*
		 * The value of the metric.
		 */
		value = real;
	}
];

/*
 * The history_version structure is used to remember sufficient
 * information about a file version checked into history that it can
 * be re-created.  The edit number alone is not sufficient, because you
 * need to know how to decode it, as well.
 */
type history_version =
{
	/*
	 * The revision identifier as reported by the history_get_command.
	 */
	revision = string;

	/*
	 * The encoding employed by the history_{put,create}_command
	 *
	 * none
	 *	No encoding was employed at all.  The file conforms to
	 *	history_content_limitation.
	 *
	 * quoted_printable
	 *	The MIME Quoted Printable encoding was used when the
	 *	file was committed to history.
	 *
	 * quoted_printable
	 *	The MIME base 64 encoding was used when the file was
	 *	committed to history.
	 */
	encoding = (none, quoted_printable, base64);
};
