It's difficult to determine whether Redmine is rather a project management tool or an issue tracker. Issue tracking is not possible without a project (while some project management is still possible without issues). Even so, we spend most of our time working with Redmine as an issue tracker. This appears to be a fundamental component of Redmine that nevertheless depends on its other components. So, to use Redmine effectively, you have to learn it. For these reasons, we will start reviewing Redmine's functionality from its issue tracking capabilities.
In other words, the Issue tracking module is too deeply tied to other Redmine modules to be reviewed separately. But the opposite is also true—other modules use issues too extensively to skip issue tracking and start from reviewing other components. So, in this chapter, we will try to concentrate on issue tracking while also mentioning other modules if and where they are applicable. But don't worry if you are not familiar with mentioned modules yet! I will let you know where you'll be able to check them quickly.
In this chapter, we will cover the following topics:
In order to be able to create an issue, you need to have a project already. So, create one if you haven't done this yet (use the New project link that can be found under the Projects menu item). You can also jump to the Creating a project section in Chapter 5, Managing Projects, where project creation is described, and then come back here.
If you already have a project, or after you have created it, navigate to the New issue tab in the Projects menu. You will see the following form:
This is the form that Redmine users use to create issues. Fields that are marked with the red asterisk are mandatory.
Issues can be also created via email if you have configured the email retrieval (as described in the Email retrieval subsection of Chapter 3, Configuring Redmine), or through third-party tools if you have enabled the REST API.
Let's discuss each element of this form:
You can delete, modify, or add trackers using the Trackers page of the Administration menu, which will be reviewed in Chapter 7, Access Control and Workflow. For my demo project, I have added a new tracker called Chapter, which you can see selected in the previous screenshot.
Some of the discussed form elements, which are also known as standard fields, can be disabled for particular trackers on the Trackers page of the Administration menu. Most of them can also be made required or read-only per issue status, member role, and tracker on the Workflow page of the same menu. Both of these pages will be reviewed in Chapter 7, Access Control and Workflow.
Additionally, Redmine supports custom fields for issues, which can add their own elements to the issue form as well. Custom fields are going to be reviewed in Chapter 11, Customizing Redmine.
Even so, these are not all the elements that this form can include. There can be more elements added when you configure the project. The project configuration is discussed in detail in the very next chapter. Now let's talk about only those things that add new elements to the new issue form.
In many cases, having just the tracker (the issue type) is not enough to describe an issue. To see what I mean, let's take the Feature tracker. Is an issue of this tracker for a UI feature? Is it for a new functionality of the project? Is it, maybe, for an API feature? As you can see, for some complex projects, you may need an additional attribute to make the issue more concrete. And Redmine does provide such an issue attribute. But why did not we see it? Because we need to add at least one value for this field to make it appear on the issue form.
Such values can be added in the Issue categories tab, which can be found in the project's settings (the Settings tab of the project menu). Here is what this tab looks like:
As you can see, there are no issue categories here for now. To add an issue category, you need to click on the New category link. Then you'll see the following form:
The Assignee field of this form can be set to a user to whom issues of this category should be automatically assigned (unless of course the assignee was specified explicitly). Thus, if you have different employees responsible for different parts of the project, you can create categories named after those parts and specify the corresponding employees here as assignees for those categories. In this way, a reporter will only need to select a part of the project and the issue will automatically get assigned to the corresponding employee.
But wait! How will reporters select the issue category? If you check out the new issue form after you have added an issue category, you will see an additional field there, as shown in this screenshot:
The icon at the right-hand side of the field appears only for users who have the Manage issue categories permission. Such users may add issue categories right from the issue form.
Normally, a project has multiple planned versions. If so, in which of them is a particular issue planned to be resolved? This question draws attention to the need to be able to assign an issue to a project version. However, the issue form that was shown earlier did not include any field for this. Well, the project that I used did not have any version either.
As soon as you add a version to the project using the Versions tab, which can be found on the project's Settings page, the new field appears on the form, as shown in the following screenshot:
The new Target version field should be set to the name of the version in which the issue should be resolved. If it's set, the issue will also be listed on the project roadmap and in the version's change log (both will be reviewed in Chapter 5, Managing Projects).
Similar to the one near the Category field, the icon allows you to add a version directly from the issue form. Of course, to be able to do this, you must have the Manage versions permission. You will learn more details about version management in the next chapter.