目录

Guide to Triaging

Introduction

This guide is intended to give an overview of bug triaging for the AzerothCore project. It will cover goals, the triaging process, a summary of tools and sources, and other useful links.

Goals

Our goal is to take a bug report that has been submitted to the ChromieCraft issue tracker, and decide in a timely, accurate and documented manner whether it is a valid report or not. If it is, we forward it on to the AzerothCore issue tracker with added notes and documentation.

So what determines a valid bug report? A bug report is valid if it demonstrates behaviour in AzerothCore that does not match with how a retail Blizzard WoW server would have behaved during the 'Wrath of the Lich King' era. Some dates to help with this:

How to Triage

1. Pick an issue

You start by going to the ChromieCraft issue tracker here: https://github.com/chromiecraft/chromiecraft/issues Pick an issue that is labelled with the orange 'Needs Triage' tag.

2. Check for duplicates

Once you have chosen an issue, start by searching for duplicates - quest names, character names, even individual game object GUIDs can all be checked to make sure they haven't already been reported. In a project with such a large and growing player base, many reported issues have already been seen before. They may have been checked and found not to be bugs already, or they may have been fixed already, in a patch that hasn't been been deployed to CC. Also, finding other related issues, while not duplicates, can still help you understand a problem better.

3. Validate the issue

So now we have made sure this is a new bug, decide whether this is obviously incorrect behaviour, or if this might be caused by misunderstanding, misinterpretation, or ignorance of the game. This is often done by checking against the sources as listed below to determine if it is actually a bug at all. Some apparent bugs are intended behaviour, and other reports are caused by changes in the game - for example, what was correct behaviour in Vanilla might be incorrect in Wrath due to balancing changes.

4. Try to reproduce it

If this is a genuine issue, try to follow the user's instructions to duplicate it. If the user didn't give you enough information to reproduce the problem, you can always ask them to clarify and tag the issue on the CC tracker as “Waiting for Feedback”.

If you can't make the behaviour reoccur on your own server, be aware that a vanilla AC server does not always behave the same way as the ChromieCraft server. There are numerous mods and other customisations on CC that can have unpredictable effects, and as a result bugs that are not reproduceable on a vanilla AC server are reported reasonably often.

Bugs with CC mods and progression

Chromie runs a number of mods for the player base's convenience. These include CFBG, the cross-faction battleground mod, cross-faction dungeons, the duel reset mod, low-level arenas, and so on. Faults with these, while not uncommon, are not directly relevant to the AC project. If you have identified a bug report as originating from a CC mod, it should be reported to that mod's own GitHub issues page where possible. You can search GitHub to find it.

In particular, if an issue is about items that should not be available to a certain level range (for example, vendors selling level 60 gear when CC's current content bracket is 40-49) then that is a progression system issue and can be reported here: https://github.com/azerothcore/progression-system

Client-side issues

Be aware that the Wow client is far from perfect, and user interface displays for things like tooltips and character statistics can sometimes be inaccurate. If this is the case, first check that the user is running the enUS client, as the enGB client is rather more prone to these sorts of issues. If they are running the correct client, then try to verify that the only issue is the display rather than real. For example there's a known client issue with some low level items selling for what seems to be 0 copper. If you actually check the sale, the item is being sold for the correct price and the user credited with the right amount of money, but it doesn't show that. These sorts of issues, being client-side, are ultimately not fixable by the AC project.

A fair number of users also run client-side mods that change models, textures, etc. They will also almost never mention it. But if you see an issue that looks like a client-side graphics issue, i.e. this NPC looks weird/has the wrong model/is invisible, remember to ask the reporter about any graphics mods they may be running.

5. Describe and document the issue

If the bug is real and valid, you can add the the original reporter's description if they missed any important details. Try to give additional useful information like database IDs and spawn GUIDs when describing objects and creatures.

Simply noting that the bug report has been confirmed is often enough. However, if you want to make the evidence as clear as possible then a screenshot or a video of the faulty behaviour is often a good way to do so. Screenshots of combat logs can be especially useful. For video, I've found OBS Studio (https://obsproject.com/download) to be good for screen capture, and Shotcut (https://www.shotcut.org/) to be a good video editor for working on the results. (It helps that both of these are FOSS (Free and Open Source Software), and as a FOSS project ourselves it's nice to support others.)

6. Record how to reproduce it

Show how it can be reproduced, preferably using GM commands. So instead of 'accept the quest “Kill Ten Foozles”', say .quest add 1234. The commands .go c XXXX and .go o XXXX (to go to creatures and objects respectively) will be useful here as they let you teleport directly to whatever the problem is. .additem [itemname] can also be handy.

Bear in mind that when a pull request is made to fix this issue, the fixer and the PR's tester will both be relying on the information you provide here to make their lives easier.

So now you have established this is a valid bug, you can move it across to the AzerothCore issue tracker. This is done by creating a new blank issue here: https://github.com/azerothcore/azerothcore-wotlk/issues/new?assignees=&labels=&template= You can then copy the data from the original CC ticket. You can do this by clicking the three horizontal dots in the top right corner of the report's text box and selecting Edit. You can then copy the ticket text and paste that information into the AC ticket, and then add your own comments and findings to generate the final ticket.

Title it appropriately - something clear and consistent is best. Then add the link to the original issue reported to ChromieCraft (“Originally reported LINK-TO-CHROMIECRAFT-ISSUE”). GitHub will automatically link the two reports.

You should also check to make sure the CC report has a server version hash included. (The version hash is a little string of random numbers and letters, like 3d4befd.) If it doesn't the AC tracker will complain. If it is missing for some reason, the current ChromieCraft version info can be found here, or if you have replicated the issue on your own test server, you can use your own hash. This can be found by typing server info at the AC> command prompt of your running AC world server.

8. Add tags to AC and CC issues

Now you can add relevant tags to both the new AC issue you have created, and the CC issue you have been working from. Tag appropriately - 'Generic' is last resort, for issues that affect a broad range of levels. Otherwise, tag an issue by the level of the zone it occurs in, or the level of the quest or NPC it affects. If you're not sure of a zone's level, you can find a Wrath-era list of zones by level here.

For the AC issue, if you are copying an issue from CC then you can add the 'Confirmed' tag. Also feel free to add other relevant tags, such as 'Quest', 'Loot', 'DB', 'PVP', or one of of the class-specific tags.

For the CC issue, you can tag it with 'Confirmed', 'Linked to AC', and a tag indicating level range or Generic if that doesn't apply. Again, if there are other relevant tags such as 'Class Issue', feel free to add them.

If you have the right permissions, also add the new AC issue to whichever project is relevant, usually the one matching the issue's level range.

Priority Tags

You can also set the perceived priority of an issue via tags. They are:

Tag Level Description
Critical Should only be used in the event of server-breaking bugs
High Game-breaking bugs with no workaround
Medium Game-breaking bugs that do have a workaround
Low More typical bugs with quests/items/NPCs, etc. Your 'standard' bug
Trivial Bugs that have no real impact on gameplay, typically cosmetic

Guidelines

Sources

This is a general (and by no means exhaustive) look at the sources we can use to try to understand if a bug is valid or not. They include:

Wowpedia often aggregates patch notes relating to a particular talent or ability, which is frequently useful. It also often records quest text and quest-giver dialogue, so can be a handy source for that sort of thing. Note that older Wrath-era content can also be found on its sibling site WowWiki.

Tools