From d8caf6045d10344c431918128e3803ca497565f3 Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Sun, 28 Jul 2002 05:00:17 +0000 Subject: Merging new docs from 2.16 branch. --- docs/html/programadmin.html | 1003 +++++-------------------------------------- 1 file changed, 102 insertions(+), 901 deletions(-) (limited to 'docs/html/programadmin.html') diff --git a/docs/html/programadmin.html b/docs/html/programadmin.html index 4f2b7be40..f047dbcad 100644 --- a/docs/html/programadmin.html +++ b/docs/html/programadmin.html @@ -1,8 +1,7 @@ Product, Component, Milestone, and Version - AdministrationProduct, Component, Milestone, and Version AdministrationChapter 4. Administering BugzillaChapter 5. Administering BugzillaNext

4.3. Product, Component, Milestone, and Version - Administration

 

Dear Lord, we have to get our users to do WHAT?

5.3. Product, Component, Milestone, and Version Administration

4.3.1. Products

Formerly, and in some spots still, called - "Programs"5.3.1. Products

Products Products are - the broadest category in Bugzilla, and you should have the - least of these. If your company makes computer games, you - should have one product per game, and possibly a few special - products (website, meetings...) -

A Product (formerly called "Program", and still referred to - that way in some portions of the source code) controls some - very important functions. The number of "votes" available for - users to vote for the most important bugs is set per-product, - as is the number of votes required to move a bug automatically - from the UNCONFIRMED status to the NEW status. One can close - a Product for further bug entry and define various Versions - available from the Edit product screen. -

+ + are the broadest category in Bugzilla, and tend to represent real-world + shipping products. E.g. if your company makes computer games, + you should have one product per game, perhaps a "Common" product for + units of technology used in multiple games, and maybe a few special + products (Website, Administration...)

Many of Bugzilla's settings are configurable on a per-product + basis. The number of "votes" available to users is set per-product, + as is the number of votes + required to move a bug automatically from the UNCONFIRMED status to the + NEW status.

To create a new product:

  • Select "components" from the yellow footer -

    It may seem counterintuitive to click "components" when - you want to edit the properties associated with - Products. This is one of a long list of things we want - in Bugzilla 3.0... -

    Select "products" from the footer

  • Select the "Add" link to the right of "Add a new product". -

    Select the "Add" link in the bottom right

  • Enter the name of the product and a description. The - Description field is free-form. -

    Enter the name of the product and a description. The + Description field may contain HTML.

  • Don't worry about the "Closed for bug entry", "Maximum Votes - per person", "Maximum votes a person can put on a single - bug", "Number of votes a bug in this Product needs to - automatically get out of the UNCOMFIRMED state", and - "Version" options yet. We'll cover those in a few moments. -

    Don't worry about the "Closed for bug entry", "Maximum Votes + per person", "Maximum votes a person can put on a single bug", + "Number of votes a bug in this Product needs to automatically get out + of the UNCOMFIRMED state", and "Version" options yet. We'll cover + those in a few moments. +

    4.3.2. Components

    Components are subsections of a Product. - -

    Example 4-1. Creating some Components

    The computer game you are designing may have a "UI" - component, an "API" component, a "Sound System" - component, and a "Plugins" component, each overseen by - a different programmer. It often makes sense to divide - Components in Bugzilla according to the natural - divisions of responsibility within your Product or - company. -

    Each component has a owner and (if you turned it on - in the parameters), a QA Contact. The owner should be the - primary person who fixes bugs in that component. The QA - Contact should be the person who will ensure these bugs are - completely fixed. The Owner, QA Contact, and Reporter will get - email when new bugs are created in this Component and when - these bugs change. Default Owner and Default QA Contact fields - only dictate the 5.3.2. Components

    Components are subsections of a Product. E.g. the computer game + you are designing may have a "UI" + component, an "API" component, a "Sound System" component, and a + "Plugins" component, each overseen by a different programmer. It + often makes sense to divide Components in Bugzilla according to the + natural divisions of responsibility within your Product or + company.

    Each component has a owner and (if you turned it on in the parameters), + a QA Contact. The owner should be the primary person who fixes bugs in + that component. The QA Contact should be the person who will ensure + these bugs are completely fixed. The Owner, QA Contact, and Reporter + will get email when new bugs are created in this Component and when + these bugs change. Default Owner and Default QA Contact fields only + dictate the + default assignments; the - Owner and QA Contact fields in a bug are otherwise unrelated - to the Component. -

    ; + these can be changed on bug submission, or at any later point in + a bug's life.

    To create a new Component: -

    To create a new Component:

    1. Select the "Edit components" link from the "Edit product" - page -

      Select the "Edit components" link from the "Edit product" + page

    2. Select the "Add" link to the right of the "Add a new - component" text on the "Select Component" page. -

      Select the "Add" link in the bottom right.

    3. Fill out the "Component" field, a short "Description", and - the "Initial Owner". The Component and Description fields - are free-form; the "Initial Owner" field must be that of a - user ID already existing in the database. If the initial - owner does not exist, Bugzilla will refuse to create the - component. -

      Is your "Default Owner" a user who is not yet in the - database? No problem. -

      1. Select the "Log out" link on the footer of the - page. -

      2. Select the "New Account" link on the footer of - the "Relogin" page -

      3. Type in the email address of the default owner - you want to create in the "E-mail address" - field, and her full name in the "Real name" - field, then select the "Submit Query" button. -

      4. Now select "Log in" again, type in your login - information, and you can modify the product to - use the Default Owner information you require. -

      -

      -

    4. Either Edit more components or return to the Bugzilla - Query Page. To return to the Product you were editing, you - must select the Components link as before. -

      Fill out the "Component" field, a short "Description", + the "Initial Owner" and "Initial QA Contact" (if enabled.) + The Component and Description fields may contain HTML; + the "Initial Owner" field must be a login name + already existing in the database. +

    4.3.3. Versions

    5.3.3. Versions

    Versions are the revisions of the product, such as "Flinders - 3.1", "Flinders 95", and "Flinders 2000". Using Versions - helps you isolate code changes and are an aid in reporting. - -

    Example 4-2. Common Use of Versions

    A user reports a bug against Version "Beta 2.0" of your - product. The current Version of your software is - "Release Candidate 1", and no longer has the bug. This - will help you triage and classify bugs according to - their relevance. It is also possible people may report - bugs against bleeding-edge beta versions that are not - evident in older versions of the software. This can - help isolate code changes that caused the bug -

    -

    Example 4-3. A Different Use of Versions

    This field has been used to good effect by an online - service provider in a slightly different way. They had - three versions of the product: "Production", "QA", and - "Dev". Although it may be the same product, a bug in - the development environment is not normally as critical - as a Production bug, nor does it need to be reported - publicly. When used in conjunction with Target - Milestones, one can easily specify the environment where - a bug can be reproduced, and the Milestone by which it - will be fixed. -

    -

    To create and edit Versions: +>Versions are the revisions of the product, such as "Flinders + 3.1", "Flinders 95", and "Flinders 2000". Version is not a multi-select + field; the usual practice is to select the most recent version with + the bug.

    To create and edit Versions:

    1. From the "Edit product" screen, select "Edit Versions" -

    2. You will notice that the product already has the default - version "undefined". If your product doesn't use version - numbers, you may want to leave this as it is or edit it so - that it is "---". You can then go back to the edit - versions page and add new versions to your product. -

      Otherwise, click the "Add" button to the right of the "Add - a new version" text. -

      From the "Edit product" screen, select "Edit Versions"

    3. Enter the name of the Version. This can be free-form - characters up to the limit of the text box. Then select - the "Add" button. -

      You will notice that the product already has the default + version "undefined". Click the "Add" link in the bottom right.

    4. At this point you can select "Edit" to edit more Versions, - or return to the "Query" page, from which you can navigate - back to the product through the "components" link at the - foot of the Query page. -

      Enter the name of the Version. This field takes text only. + Then click the "Add" button.

    4.3.4. Milestones

    5.3.4. Milestones

    Milestones are "targets" that you plan to get a bug fixed by. - For example, you have a bug that you plan to fix for your 3.0 - release, it would be assigned the milestone of 3.0. Or, you - have a bug that you plan to fix for 2.8, this would have a - milestone of 2.8. -

    Milestones are "targets" that you plan to get a bug fixed by. For + example, you have a bug that you plan to fix for your 3.0 release, it + would be assigned the milestone of 3.0.

    Milestone options will only appear for a Product if you - turned the "usetargetmilestone" field in the "Edit - Parameters" screen "On". -

    Milestone options will only appear for a Product if you turned + on the "usetargetmilestone" Param in the "Edit Parameters" screen. +

    To create new Milestones, set Default Milestones, and set - Milestone URL: -

    To create new Milestones, set Default Milestones, and set + Milestone URL:

    1. Select "edit milestones" -

      Select "Edit milestones" from the "Edit product" page.

    2. Select "Add" to the right of the "Add a new milestone" - text -

      Select "Add" in the bottom right corner. + text

    3. Enter the name of the Milestone in the "Milestone" field. - You can optionally set the "Sortkey", which is a positive - or negative number (-255 to 255) that defines where in the - list this particular milestone appears. Select "Add". -

      Example 4-4. Using SortKey with Target Milestone

      Let's say you create a target milestone called - "Release 1.0", with Sortkey set to "0". Later, you - realize that you will have a public beta, called - "Beta1". You can create a Milestone called "Beta1", - with a Sortkey of "-1" in order to ensure people will - see the Target Milestone of "Beta1" earlier on the - list than "Release 1.0" -

      Enter the name of the Milestone in the "Milestone" field. You + can optionally set the "sortkey", which is a positive or negative + number (-255 to 255) that defines where in the list this particular + milestone appears. This is because milestones often do not + occur in alphanumeric order For example, "Future" might be + after "Release 1.2". Select "Add".

    4. If you want to add more milestones, select the "Edit" - link. If you don't, well shoot, you have to go back to the - "query" page and select "components" again, and make your - way back to the Product you were editing. -

      This is another in the list of unusual user interface - decisions that we'd like to get cleaned up. Shouldn't - there be a link to the effect of "edit the Product I - was editing when I ended up here"? In any case, - clicking "components" in the footer takes you back to - the "Select product" screen, from which you can begin - editing your product again. -

      -

    5. From the Edit product screen again (once you've made your - way back), enter the URL for a description of what your - milestones are for this product in the "Milestone URL" - field. It should be of the format - "http://www.foo.com/bugzilla/product_milestones.html" -

      Some common uses of this field include product - descriptions, product roadmaps, and of course a simple - description of the meaning of each milestone. -

    6. If you're using Target Milestones, the "Default Milestone" - field must have some kind of entry. If you really don't - care if people set coherent Target Milestones, simply - leave this at the default, "---". However, controlling - and regularly updating the Default Milestone field is a - powerful tool when reporting the status of projects. -

      Select the "Update" button when you are done.

    From the Edit product screen, you can enter the URL of a + page which gives information about your milestones and what + they mean.

    4.3.5. Voting

    The concept of "voting" is a poorly understood, yet powerful - feature for the management of open-source projects. Each user - is assigned so many Votes per product, which they can freely - reassign (or assign multiple votes to a single bug). This - allows developers to gauge user need for a particular - enhancement or bugfix. By allowing bugs with a certain number - of votes to automatically move from "UNCONFIRMED" to "NEW", - users of the bug system can help high-priority bugs garner - attention so they don't sit for a long time awaiting triage. -

    The daunting challenge of Votes is deciding where you draw the - line for a "vocal majority". If you only have a user base of - 100 users, setting a low threshold for bugs to move from - UNCONFIRMED to NEW makes sense. As the Bugzilla user base - expands, however, these thresholds must be re-evaluated. You - should gauge whether this feature is worth the time and close - monitoring involved, and perhaps forego implementation until - you have a critical mass of users who demand it. -

    To modify Voting settings:

    1. Navigate to the "Edit product" screen for the Product you - wish to modify -

    2. Set "Maximum Votes per person" to your calculated value. - Setting this field to "0" disables voting. -

    3. Set "Maximum Votes a person can put on a single bug" to - your calculated value. It should probably be some number - lower than the "Maximum votes per person". Setting this - field to "0" disables voting, but leaves the voting - options open to the user. This is confusing. -

    4. Set "Number of votes a bug in this product needs to - automatically get out of the UNCONFIRMED state" to your - calculated number. Setting this field to "0" disables - the automatic move of bugs from UNCONFIRMED to NEW. Some - people advocate leaving this at "0", but of what use are - Votes if your Bugzilla user base is unable to affect which - bugs appear on Development radar? -

      -

    5. Once you have adjusted the values to your preference, - select the "Update" button. -

    4.3.6. Groups and Group Security

    Groups can be very useful in bugzilla, because they allow - users to isolate bugs or products that should only be seen by - certain people. Groups can also be a complicated minefield of - interdependencies and weirdness if mismanaged. - -

    Example 4-5. When to Use Group Security

    Many Bugzilla sites isolate "Security-related" bugs from - all other bugs. This way, they can have a fix ready - before the security vulnerability is announced to the - world. You can create a "Security" product which, by - default, has no members, and only add members to the - group (in their individual User page, as described under - User Administration) who should have priveleged access - to "Security" bugs. Alternately, you may create a Group - independently of any Product, and change the Group mask - on individual bugs to restrict access to members only of - certain Groups. -

    Groups only work if you enable the "usebuggroups" - paramater. In addition, if the "usebuggroupsentry" parameter - is "On", one can restrict access to products by groups, so - that only members of a product group are able to view bugs - within that product. Group security in Bugzilla can be divided - into two categories: Generic and Product-Based. -

    Groups in Bugzilla are a complicated beast that evolved out - of very simple user permission bitmasks, apparently itself - derived from common concepts in UNIX access controls. A - "bitmask" is a fixed-length number whose value can describe - one, and only one, set of states. For instance, UNIX file - permissions are assigned bitmask values: "execute" has a - value of 1, "write" has a value of 2, and "read" has a - value of 4. Add them together, and a file can be read, - written to, and executed if it has a bitmask of "7". (This - is a simplified example -- anybody who knows UNIX security - knows there is much more to it than this. Please bear with - me for the purpose of this note.) The only way a bitmask - scheme can work is by doubling the bit count for each value. - Thus if UNIX wanted to offer another file permission, the - next would have to be a value of 8, then the next 16, the - next 32, etc. -

    Similarly, Bugzilla offers a bitmask to define group - permissions, with an internal limit of 64. Several are - already occupied by built-in permissions. The way around - this limitation is to avoid assigning groups to products if - you have many products, avoid bloating of group lists, and - religiously prune irrelevant groups. In reality, most - installations of Bugzilla support far fewer than 64 groups, - so this limitation has not hit for most sites, but it is on - the table to be revised for Bugzilla 3.0 because it - interferes with the security schemes of some administrators. -

    If you want your milestone document to be restricted so + that it can only be viewed by people in a particular Bugzilla + group, the best way is to attach the document to a bug in that + group, and make the URL the URL of that attachment.

    To enable Generic Group Security ("usebuggroups"): -

    1. Turn "On" "usebuggroups" in the "Edit Parameters" screen. -

    2. You will generally have no groups set up. Select the - "groups" link in the footer. -

    3. Take a moment to understand the instructions on the "Edit - Groups" screen. Once you feel confident you understand - what is expected of you, select the "Add Group" link. -

    4. Fill out the "New Name" (remember, no spaces!), "New - Description", and "New User RegExp" fields. "New User - RegExp" allows you to automatically place all users who - fulfill the Regular Expression into the new group. - -

      Example 4-6. Creating a New Group

      When you have finished, select the Add - button. -

    To enable Product-Based Group Security (usebuggroupsentry): -

    Don't forget that you only have 64 groups masks available, - total, for your installation of Bugzilla! If you plan on - having more than 50 products in your individual Bugzilla - installation, and require group security for your products, - you should consider either running multiple Bugzillas or - using Generic Group Security instead of Product-Based - ("usebuggroupsentry") Group Security. -

    1. Turn "On" "usebuggroups" and "usebuggroupsentry" in the - "Edit Parameters" screen. -

      "usebuggroupsentry" has the capacity to prevent the - administrative user from directly altering bugs because - of conflicting group permissions. If you plan on using - "usebuggroupsentry", you should plan on restricting - administrative account usage to administrative duties - only. In other words, manage bugs with an unpriveleged - user account, and manage users, groups, Products, etc. - with the administrative account. -

    2. You will generally have no Groups set up, unless you - enabled "usebuggroupsentry" prior to creating any - Products. To create "Generic Group Security" groups, - follow the instructions given above. To create - Product-Based Group security, simply follow the - instructions for creating a new Product. If you need to - add users to these new groups as you create them, you will - find the option to add them to the group available under - the "Edit User" screens. -

    You may find this example illustrative for how bug groups work. -

    Example 4-7. Bugzilla Groups


    -Bugzilla Groups example
    ------------------------
    -
    -For this example, let us suppose we have four groups, call them
    -Group1, Group2, Group3, and Group4.
    -
    -We have 5 users, User1, User2, User3, User4, User5.
    -
    -We have 8 bugs, Bug1, ..., Bug8.
    -
    -Group membership is defined by this chart:
    -(X denotes that user is in that group.)
    -(I apologize for the nasty formatting of this table.  Try viewing
    -it in a text-based browser or something for now. -MPB)
    -
    -      G G G G
    -      r r r r
    -      o o o o
    -      u u u u
    -      p p p p
    -      1 2 3 4
    -     +-+-+-+-+
    -User1|X| | | |
    -     +-+-+-+-+
    -User2| |X| | |
    -     +-+-+-+-+
    -User3|X| |X| |
    -     +-+-+-+-+
    -User4|X|X|X| |
    -     +-+-+-+-+
    -User5| | | | |
    -     +-+-+-+-+
    -
    -Bug restrictions are defined by this chart:
    -(X denotes that bug is restricted to that group.)
    -
    -     G G G G
    -     r r r r
    -     o o o o
    -     u u u u
    -     p p p p
    -     1 2 3 4
    -    +-+-+-+-+
    -Bug1| | | | |
    -    +-+-+-+-+
    -Bug2| |X| | |
    -    +-+-+-+-+
    -Bug3| | |X| |
    -    +-+-+-+-+
    -Bug4| | | |X|
    -    +-+-+-+-+
    -Bug5|X|X| | |
    -    +-+-+-+-+
    -Bug6|X| |X| |
    -    +-+-+-+-+
    -Bug7|X|X|X| |
    -    +-+-+-+-+
    -Bug8|X|X|X|X|
    -    +-+-+-+-+
    -
    -Who can see each bug?
    -
    -Bug1 has no group restrictions.  Therefore, Bug1 can be seen by any
    -user, whatever their group membership.  This is going to be the only
    -bug that User5 can see, because User5 isn't in any groups.
    -
    -Bug2 can be seen by anyone in Group2, that is User2 and User4.
    -
    -Bug3 can be seen by anyone in Group3, that is User3 and User4.
    -
    -Bug4 can be seen by anyone in Group4.  Nobody is in Group4, so none of
    -these users can see Bug4.
    -
    -Bug5 can be seen by anyone who is in _both_ Group1 and Group2.  This
    -is only User4.  User1 cannot see it because he is not in Group2, and
    -User2 cannot see it because she is not in Group1.
    -
    -Bug6 can be seen by anyone who is in both Group1 and Group3.  This
    -would include User3 and User4.  Similar to Bug5, User1 cannot see Bug6
    -because he is not in Group3.
    -
    -Bug7 can be seen by anyone who is in Group1, Group2, and Group3.  This
    -is only User4.  All of the others are missing at least one of those
    -group privileges, and thus cannot see the bug.
    -
    -Bug8 can be seen by anyone who is in Group1, Group2, Group3, and
    -Group4.  There is nobody in all four of these groups, so nobody can
    -see Bug8.  It doesn't matter that User4 is in Group1, Group2, and
    -Group3, since he isn't in Group4.
    -   

    -

    NextBugzilla SecurityVoting