blob: 16b6cc3abd819026f2157c175d3a321f8d1c5f99 [file] [log] [blame]
-- ******************************************************************************
-- Copyright (c) 2005 INRIA.
-- All rights reserved. This program and the accompanying materials
-- are made available under the terms of the Eclipse Public License v2.0
-- which accompanies this distribution, and is available at
-- http://www.eclipse.org/legal/epl-v20.html
--
-- Contributors:
-- INRIA - Initial implementation
--
-- ******************************************************************************
-- @name Bugzilla
-- @version 1.1
-- @domains Software bug tracking
-- @authors Hugo Bruneliere (hugo.bruneliere@gmail.com)
-- @date 2005/07/07
-- @description This metamodel describes the structure used by Bugzilla to import/export bugs in XML format. Bugzilla is a free "Defect Tracking System" or "Bug-Tracking System" which allows individual or groups of developers to keep track of outstanding bugs in their product effectively.
-- @see bugzilla.dtd, http://www.mantisbt.org/mantis/view.php?id=4024 at the bottom of the page
package Bugzilla {
-- @begin Bugzilla special types
--@comment Defines the type of error for a bug
enumeration ErrorType {
literal et_null;
literal et_NotFound;
literal et_NotPermitted;
literal et_InvalidBugId;
}
-- @comment Defines the type of severity for a bug.
enumeration SeverityType{
literal st_null;
-- @comment Blocks development and/or testing work.
literal st_blocker;
-- @comment Crashes, loss of data, severe memory leak.
literal st_critical;
-- @comment Loss of function.
literal st_major;
-- @comment A normal problem.
literal st_normal;
-- @comment Loss of function, or other problem where easy workaround is present.
literal st_minor;
-- @comment Cosmetic problem.
literal st_trivial;
-- @comment Request for enhancement.
literal st_enhancement;
}
-- @comment Defines the type of status for a bug.
enumeration StatusType{
literal st_null;
-- @comment A new bug, when a product has voting.
literal st_UNCONFIRMED;
-- @comment Recently added or confirmed.
literal st_NEW;
-- @comment Has been assigned.
literal st_ASSIGNED;
-- @comment Was once resolved but has been reopened
literal st_REOPENED;
-- @comment Has been resolved (e.g. fixed, deemed unfixable, etc.), see the "ResolutionType".
literal st_RESOLVED;
-- @comment The resolution has been approved by Quality Assurance.
literal st_VERIFIED;
-- @comment Over and done with.
literal st_CLOSED;
}
-- @comment Defines the type of operating system on which a bug was observed.
enumeration OperatingSystemType{
literal ost_null;
literal ost_all;
literal "ost_Windows 3.1";
literal "ost_Windows 95";
literal "ost_Windows 98";
literal "ost_Windows ME";
literal "ost_Windows 2000";
literal "ost_Windows NT";
literal "ost_Windows XP";
literal "ost_Windows Vista";
literal "ost_Windows Server 2003";
literal "ost_MacSystem 7";
literal "ost_MacSystem 7.5";
literal "ost_MacSystem 7.6.1";
literal "ost_MacSystem 8.0";
literal "ost_MacSystem 8.5";
literal "ost_MacSystem 8.6";
literal "ost_MacSystem 9.x";
literal "ost_Mac OS X 10.0";
literal "ost_Mac OS X 10.1";
literal "ost_Mac OS X 10.2";
literal "ost_Mac OS X 10.3";
literal ost_Linux;
literal "ost_BDS/OS";
literal ost_FreeBSD;
literal ost_NetBSD;
literal ost_OpenBSD;
literal ost_AIX;
literal ost_BeOS;
literal "ost_HP-UX";
literal ost_IRIX;
literal ost_Neutrino;
literal ost_OpenVMS;
literal "ost_OS/2";
literal "ost_OSF/1";
literal ost_Solaris;
literal ost_SunOS;
literal ost_other;
}
-- @comment Defines the type of priority for a bug.
enumeration PriorityType{
literal pt_null;
-- @comment Most Urgent
literal pt_P1;
literal pt_P2;
literal pt_P3;
literal pt_P4;
-- @comment Least Urgent
literal pt_P5;
}
-- @comment Defines the type of platform on which a bug was reported.
enumeration ReportedPlatformType{
literal rpt_null;
literal rpt_all;
literal rpt_DEC;
literal rpt_HP;
literal rpt_Macintosh;
literal rpt_PC;
literal rpt_SGI;
literal rpt_Sun;
literal rpt_other;
}
-- @comment Defines the bug's type of resolution
enumeration ResolutionType{
literal rt_null;
-- @comment The bug has been fixed.
literal rt_FIXED;
-- @comment The problem described is not a bug.
literal rt_INVALID;
-- @comment This bug will never be fixed.
literal rt_WONTFIX;
-- @comment This bug will not be fixed in this version.
literal rt_LATER;
-- @comment This bug probably won't be fixed in this version.
literal rt_REMIND;
-- @comment This is a duplicate of an existing bug.
literal rt_DUPLICATE;
-- @comment This bug could not be reproduced.
literal rt_WORKSFORME;
-- @comment This bug has been moved to another (Bugzilla) database.
literal rt_MOVED;
}
-- @end Bugzilla special types
-- @begin Bugzilla structure
class BugzillaRoot {
attribute version : String;
attribute urlbase : String;
attribute maintainer : String;
attribute exporter[0-1] : String;
reference bugs[1-*] ordered container : Bug oppositeOf bug_bugzillaRoot;
}
class Bug {
reference bug_bugzillaRoot : BugzillaRoot oppositeOf bugs;
attribute error[0-1] : ErrorType;
-- @comment The identification number of the bug
attribute bug_id : String;
attribute exporter : String;
attribute urlbase : String;
-- @comment The current status of this bug.
attribute bug_status : StatusType;
-- @comment The resolution's level of this bug.
attribute resolution[0-1] : ResolutionType;
-- @comment The name of the software product
attribute product : String;
-- @comment The bug's priority.
attribute priority : PriorityType;
-- @comment The name of the version of the software product or component
attribute version : String;
-- @comment The type of the platform on which the bug was reported.
attribute rep_platform : ReportedPlatformType;
-- @comment The current owner of this bug.
attribute assigned_to : String;
-- @comment The time at which information about this bug changing was last emailed to the cc list.
attribute delta_ts : String;
-- @comment The name of a software product's component.
attribute component : String;
-- @comment The user who has reported this bug.
attribute reporter : String;
-- @comment The current target milestone for this bug.
attribute target_milestone[0-1] : String;
-- @comment The evaluation of this bug's severity.
attribute bug_severity : SeverityType;
-- @comment The times of the bug's creation.
attribute creation_ts : String;
-- @comment The "quality assurance" contact for this bug.
attribute qa_contact[0-1] : String;
-- @comment Some comments about the status of this bug.
attribute status_whiteboard[0-1] : String;
-- @comment The operating system on which this bug was observed.
attribute op_sys : OperatingSystemType;
-- @comment A URL which points to more information about the bug.
attribute bug_file_loc[0-1] : String;
-- @comment A short textual description of the bug
attribute short_desc[0-1] : String;
-- @comment A list of keywords relating to this bug.
reference keywords[*] ordered container : Keywords;
-- @comment Represents the bugs from which this bug depends.
reference dependson[*] ordered container : Dependson;
-- @comment ???
reference blocks[*] ordered container : Blocks;
-- @comment Represents the users who have asked to receive email when a bug changes.
reference cc[*] ordered container : Cc;
-- @comment Long descriptions about the bug
reference long_desc[*] ordered container : LongDesc;
-- @comment Represents the attachments associated to this bug.
reference attachment[*] ordered container : Attachment;
}
abstract class StringElt {
attribute value : String;
}
-- @comment Defines a keyword relative to a bug
class Keywords extends StringElt {}
-- @comment Defines a bug from which an other bug depends
class Dependson extends StringElt {}
-- @comment Defines ???
class Blocks extends StringElt {}
-- @comment Defines a user who have asked to receive an email when a bug changes.
class Cc extends StringElt {}
-- @comment Defines a long description about the bug
class LongDesc {
attribute isPrivate : Boolean;
attribute who : String;
attribute bug_when : String;
attribute thetext : String;
}
-- @comment Defines an attachment associated to a bug.
class Attachment {
attribute isObsolete : Boolean;
attribute isPatch : Boolean;
attribute isPrivate : Boolean;
attribute id : String;
attribute date : String;
attribute desc : String;
attribute type : String;
attribute data : String;
}
-- @end Bugzilla structure
}
package PrimitiveTypes {
datatype Integer;
datatype String;
datatype Boolean;
datatype Double;
}