QA/Bugzilla/Fields/Keywords

This page is about the Keywords field in Bugzilla.

Getting Started
The Keywords field holds keywords pertaining to the categorization of bugs.

Keywords are predetermined and the field presents auto-completion suggestions. The Whiteboard field accepts free-form text.

Features include:
 * auto-complete
 * only listed Keywords may be added
 * automatic alphabetizing of the Keywords field

Replacing Whiteboard Tags
We've created Keywords to replace several common tags (previously) used in the Whiteboard. Keywords should be much easier and faster to use, and give us more consistent results.

Markup
As with the Whiteboard field, we use wimpyCaps for all Keywords

preBibisect
Description: Used if a bug is present at the earliest bibisect commit

Use:  Should be manually entered by the person performing the bibisecting

Note: Additional tests can be done to find out if the bug was Inherited from OOo and thus not a regression. To test it you can download LibreOffice 3.3 and see if the bug is present in the earliest release, thus change version to 'Inherited from OOo', otherwise, if you are using Linux, you can see where the regression was introduced by using this repository

bibisectRequest
Description: Used to let us know that a bibisect is needed.

Use: All confirmed regressions after 3.5.0 should have a bibisectRequest keyword unless the bug is specific to Windows (which should be confirmed prior to removing a bibisectRequest). Many bugs that affect Windows will also affect Linux and macOS so they can be bibisected successfully.

bibisected
Description: Used for letting developers know that the bug has been bibisected. For more information on bibisect see HowToBibisect.

Use: Should be manually entered by the person attaching the bibisect details after bibisecting a bug.

bisected
Description: Used for letting developers know that the bug has been bisected. This applies only when the exact commit is determined - this isn't done through the normal bibisect method, it requires extra steps.

Use: Should be manually entered by the person attaching the bisect/responsible commit details after bisecting a bug.

notBibisectable
Description: Use when bibisect fails for the particular bug.

Use: If someone has attempted to bibisect a bug but it has failed for some reason then put notBibisectable. Important to note that this is when the bug appears within the bibisect commit range but is not bibisectable (many reasons why this can happen).

Note: this is different from a bug that is present in the earliest commit (which requires adding the keyword “preBibisect”). 

regression

 * this worked in a previous release of LibreOffice, so the bug has been recently introduced.

possibleRegression
Description: possibleRegression is entered when a user has stated that the bug was not present in a previous release of LibreOffice and therefore it's a regression. The point of this status is so that QA can confirm that there is a regression and do the follow up steps needed for regressions (bibisect, etc . . .)

implementationError
Description: Use this to indicate bugs which were introduced together with a feature.

Use: To be used where a bug was introduced together with a new feature, and there is no previous version which contains the relevant feature but not the bug. This is distinct from a regression, where there is a previous version which contains the relevant feature but not the bug, and from an "Inherited from OOo" bug, where both the feature and the bug existed before the first version of LibreOffice. Using this allows this case to be distinguished from bugs which have not yet been triaged for regressions.

Note: Bibisection should be performed to confirm that the bug and the feature were introduced at the same time. If the issue is not a crash or hang, and not contrary to a written specification or other strong expectation as to how the feature should behave, the bug should instead be tagged as an enhancement.

needsDevEval
Description: Use when you think a bug will qualify as an easy hack and you are requesting a developer to confirm.

Use: Generally used by developers and people who have been with quality assurance for a significant amount of time. Use sparingly as it takes developers time to confirm (or reject) the easy hack.

easyHack
Description: Used to denote a bug which has been determined to be a good start for a new developer on the project.

Use: Developers should be the only ones to use this keyword. Developers add this status after they provide code pointers to fix the bug and relevant topics/skills needed.

difficultyBeginner
Description: Developers add this to easy hacks (see easyHacks keyword) to indicate that not only is the bug an easy hack, it is “really easy” and can be done by individuals who have beginner skills in computer science. These tasks are good for getting used to the code review process.

Use: Used exclusively by developers who have done the work (provided code pointers) to move the bug to an easy hack.

difficultyMedium
Description: Developers add this to easy hacks (see easyHacks keyword) to indicate that the tasks require some actual thinking and problem solving. This keyword should not be used for trivial tasks.

Use: Used exclusively by developers who have done the work (provided code pointers) to move the bug to an easy hack.

difficultyInteresting
Description: Developers add this to easy hacks (see easyHacks keyword) to indicate that while the bug is considered to be an easy hack by our experts, it could be quite challenging for a new developer on the project. Generally people who tackle these should be relatively comfortable with programming generally.

Use: Used exclusively by developers who have done the work (provided code pointers) to move the bug to an easy hack.

skillCpp
Description: easyHacks which require C++ skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillJava
Description: EasyHacks which require Java skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillJavaScript
Description: EasyHacks which require JavaScript skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillPerl
Description: EasyHacks which require Perl skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillPython
Description: EasyHacks which require Python skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillSQL
Description: EasyHacks which require SQL skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillVcl
Description: EasyHacks which require VCL skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillUno
Description: EasyHacks which require Uno skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillLibreOfficeBASIC
Description: EasyHacks which require LibreOffice Basic skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillDebug
Description: EasyHacks which require Debugging skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillDesign
Description: EasyHacks which require Design skills. When used with topicDesign, the EasyHack can be solved without programming skills (visual/UI design).

Use: Used by developers or designers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillScript
Description: EasyHacks which require Scripting skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillTest
Description: EasyHacks which require Testing skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

skillUI
Description: EasyHacks which require User Interface skills.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what skills are needed to fix the bug.

filter:xxx
Description: Used to specify a particular file format for FILEOPEN / FILESAVE bugs.

Examples:  filter:docx filter:rtf filter:svgInsert - when an SVG is inserted in a document filter:svgOpen - when a SVG is opened in Draw

We may do something slightly different with file format families: filter:ooxml filter:odf

text:xxx
Description: Used to specify a particular text layout mechanism.

Examples: 

The default text layout is Left-to-Right, so we don't bother with a "text:ltr" tag, as that would be silly.

topicCleanup
Description: EasyHack which is focused on cleaning up code.

Use: Used by developers who are confirming that needsDevEval are EasyHacks and then signal what is the topic (category) of the fix or improvement.

topicQA
Description: EasyHack which is about improving the Quality Assurance process.

Use: Used by developers and QA experts who are confirming that needsDevEval are EasyHacks and then signal what is the topic (category) of the fix or improvement.

topicDesign
Description: EasyHacks which is somehow about Design. When used with skillDesign, the EasyHack can be solved without programming skills (visual/UI design).

Use: Used by developers or designers who are confirming that needsDevEval are EasyHacks and then signal what is the topic (category) of the fix or improvement.

accessibility
Description: Used when the bug report is about an accessibility issue. Accessibility refers to bugs and enhancements which affect individuals with special needs. Applicable for both enhancement requests and bug reports.

Use: Manually entered by someone who knows about accessibility problems. These are specific to bugs which would affect the way that individuals with special needs interact with LibreOffice – generally not appropriate if it is just a request to make something easier for everyone.

perf
Description: Bug relates to some performance problem including cpu spikes and memory leaks.

Use: Should generally be used by experienced QA members and developers. Performance issues may need additional QA work such as a valgrind.

dataLoss

 * The bug concerns loss of data during import, export or while the program is running.

corruptProfile

 * Use for bugs that pertain to a corrupted User Profile.

patch

 * there is a patch attached to the issue

security

 * security related issue

wantBacktrace

 * a backtrace/stacktrace may help devs to pinpoint the problem. Here's a link explaining how to do it: Bug report debug information.

haveBacktrace

 * used when a backtrace or other debugging log has been attached and preferably verified to contain useful information.

needsUXEval

 * bugs which cover enhancements to the UI/UX of LibreOffice. Note that you also have to add to the CC to reach the design team.

needUITest

 * bugs which happen when interacting with the UI and which should become part of an automated testing suite later on

EasyHacks and Developer Information
There are a number of Keywords used to categorize Development/EasyHacks. Find information about them here:
 * Development/EasyHacks/Bugzilla_Categorization