Chapter 5. Managing Projects

Don't confuse the title of this chapter with project management . This chapter is not about project management in software engineering but about managing projects in Redmine. Despite this, it actually targets project managers (as well as project owners, PR, and so on) as it describes what tools are available for projects and how they can be used. However, for the same reason, this chapter should not be ignored by regular users as it teaches you how to find the information that you need, where to put requests, how to subscribe to changes, and much more.

If the previous chapter described Redmine as an issue tracker, this one speaks about it as a project management and project hosting software. This is a kind of secondary role of Redmine.

In this chapter, we will cover the following topics:

  • Modules
  • Global configuration
  • Creating project
  • Basic project tabs
  • Configuring project
  • Closing project
  • Project maintenance best practices
  • Project list
  • Administrating projects

Modules

In the previous chapter, I mentioned "modules" many times, especially "the issue tracking module". I think from the context you must have concluded that a "module" is a part of functionality, and that's correct. This is a part of functionality which is used for projects, therefore, modules are often called project modules.

Modules are like bricks, using which you can build a home page for your project. On the other side they also provide a way to disable functionality which is not needed. In fact, modules are nothing more than "virtual units" as they are not plugins, their files are not stored separately from the core, and so on.

I thought a lot before starting this chapter with modules and I decided to do this as you will have to choose which modules to enable for a project or all projects and which not. But how would you know without understanding what is provided by those modules?

Modules can be also added by plugins but here we will discuss only the core modules. However, not all of them will be reviewed. Thus, in the previous chapter, we have actually discussed the issue tracking module, but we have skipped the Roadmap tab which is also provided by this module, so we will review only this tab here. Also we will skip the time tracking module as it will be reviewed in the next chapter.

Issue tracking

The whole previous chapter was about what this project module does. As I have mentioned there I can't imagine the reason why one may need to disable it but, anyway, such capability is supported.

Roadmap

In addition to the Issues and New issue tabs, which have been already discussed, when enabled, this module adds the Roadmap tab:

Roadmap

This page shows the overall progress for versions of the project and lists closed and open issues for some trackers this way producing feature lists for versions.

On the sidebar, you can select trackers which will be shown on the roadmap. By default only trackers with the Issues displayed in roadmap option checked (in Administration | Trackers) are selected here.

The roadmap shows only open versions by default but you can change this by checking the Show completed versions option and clicking on the Apply button.

If a project has subprojects there will also be Subprojects option allowing you to trigger showing subprojects' versions and issues on the roadmap.

Under the Versions label, you see the list of all available versions (my project has only one version which is named 1stDraft). Completed versions will be available under the toggle box with the same title, for example:

Roadmap

The New version link you see in the top-right corner of the content area is a shortcut for adding new version (we will review versions later in this chapter).

As you might guess the 1stDraft title near the yellow box icon is the title of the version. Below the title the effective date is shown if it has been specified for the version. The effective date line also includes human readable remaining time.

The progress bar, the main element on the roadmap page, uses a simple algorithm to show done and completeness ratios (the latter uses a slightly lighter color). The done ratio (or closed issues ratio) shows how many issues from the total number are closed. The completeness ratio shows what percentage of the rest of the issues are completed. For both ratios Redmine tries to take estimated hours into account.

Note

You can click on issues counts below the progress bar to see the list of the referenced issues.

Below the progress bar and above the issue list, Redmine shows the content of the associated Wiki page. What this page is and how can it be specified will be reviewed later when discussing versions.

Note

You can also right-click on an issue in the issue list and the contextual pop-up menu, which can be used to manipulate the issue, will appear.

Version page

If you click on the version title on the roadmap page, you will be redirected to the version page:

Version page

As you see the version page contains generally the same information as the roadmap but it is about one version. Also, unlike the roadmap, the version page lists all issues.

This page contains the contextual menu allowing you to modify the version (the Edit link), edit the associated Wiki page, or delete the version.

In addition, it has a special block which allows you to see the completeness ratios for different values of issue properties. Thus, it's possible to see the completeness progress bars for different categories, trackers, statuses, priorities, authors, and assignees. To change the view of the block, you just need to select a different issue property.

If you have enabled the time tracking module, this page also shows the total estimated time and the total spent time for issues in this version.

News

Could you imagine if there were no official news about release of your favorite project? For example, no news on the Apple website about new iOS, no official news for new Linux kernel, and so on. It's essential that all major changes made to a project are accompanied with official news from the project owners. Therefore, Redmine would not be a good project hosting solution without the News module.

When enabled, the News module adds the News tab to the project menu as follows:

News

Under this tab, project news are listed with shortened content. The full content is shown when we open the news page by clicking on the news title.

Note

You can subscribe to the project news using the Atom link and your favorite RSS reader.

If you have the Manage news permission, you will also see the Add news link in the top-right corner. Clicking on this link adds the following form above the news list:

News

As shown the news description can use Wiki formatting. To check if the formatting is correct, you can use the Preview link below the form.

The Summary field has a special meaning and should always be specified. This field is used as a short description of the news. Don't confuse it with the shortened description shown in the news list. The summary is shorter and does not support Wiki formatting. Thus, the summary along with news title is shown on the Redmine's start page and on the project's start page.

When we click on the news title, we get redirected to the news page:

News

If you have the Comment news permission, you will see the Add a comment link on this page. Clicking on this link opens a form containing just one text area for comment content which also supports Wiki formatting.

If you are interested in getting notifications about new comments in the news, you can click on the Watch link in the contextual menu (after this the link turns into the Unwatch link). Other links in the contextual menu allow us to edit or delete the news.

Documents

The Documents module will be useful if your project has a lot of documents. So let's see what this module can do for you.

This module adds the Documents tab to the project menu, which is available only if a user has the View documents permission:

Documents

Titles Chapter 1, Getting familiar with Redmine and Chapter 2, Installing Redmine, and so on are actually document titles. Below the title, you see the date when you added the document and a short description.

In the preceding screenshot, documents are listed by categories, thus, the Chapters title above the document list is the value of a document category. Document categories are specified globally in Administration | Enumerations | Document categories.

It's also possible to list documents by date, title, and author, to do this just click on the corresponding link on the sidebar. When listed by titles instead of the whole title only the first letter is used for groups:

Documents

Clicking on the New document link opens the following form:

Documents

You may find it confusing that a document can actually contain many files. Just do not take it literally, in Redmine a document is a documentation unit which can include, for example, images, chapters as separate files.

To edit a document, click on its title and you will be redirected to the document page containing the Edit link as well as the Delete link.

Tip

Document Management System Features plugin

For a better document management solution you can try the DMSF plugin for Redmine from Vít Jonáš at http://code.google.com/p/redmine-dmsf/.

Files

You will need the Files module if you want users of your project to be able to download project files (for example, releases) directly from Redmine.

This module adds the Files tab to the project menu:

Files

Every time a user downloads a file, the D/L value is incremented by one. Files can be put into a version or directly into the project. The file list can be sorted by the filename, the date, the size, and the download count.

If you click on the New file link you get the form as follows:

Files

With this simple form, you can upload a file to Redmine to be placed under the Files tab.

Tip

What is the difference between files and documents?

Unlike documents, files can be added to a particular project version. For files, Redmine provides the MD5 hash and saves the download count. Files are available right under the Files tab and are sorted by the version recency. Unlike downloading files for a document attachment one needs to open the documentation unit first.

Wiki

Under this topic, we will review what is provided by the Wiki module. The Wiki syntax will be reviewed in Chapter 7, Text Formatting.

Note

Don't confuse Wiki formatting with the Wiki module, the former is a component part of Redmine and is used everywhere in it and the latter is a virtual module, which just allows you to disable the Wiki tab for a project. Thus, the Wiki formatting still remains available for issues, Wiki pages associated with versions, document descriptions, and so on if the Wiki module is disabled.

The Wiki tab plays the role of the entry point into the project Wiki system. By default there is no Wiki page in the project, that is, the entry point page just does not exist. Therefore, by clicking on the Wiki tab you get the Wiki page edit form (or an error, if you don't have the permission to edit the Wiki page):

Wiki

Naturally the content field supports the Wiki syntax. A short description of this syntax becomes available when you click on the Text formatting link. If you click on the Preview link, you can check how the Wiki page is going to be rendered. The preview of the page will be rendered below the form.

The form also allows you to specify the Comment for changes made to the Wiki page. I usually write "Created" here (a little bit later I will show you what comments are used for). Using the Add another file link, you can add any number of files to the Wiki page (usually these will be images, which will be shown on the page).

The Parent page field can be used to make a page the child of another page. This will only influence the layout and the Wiki pages index. Thus, the layout will be influenced by addition of the breadcrumbs:

Wiki

Breadcrumbs here are Wiki and Style-Guides links in the top-left corner which point to parent Wiki pages.

The preceding screenshot also shows the Wiki page layout. To the right of the breadcrumbs, you see the contextual menu. The Edit link from this menu redirects you to the Wiki page edit form similar to the one we have just discussed. The Watch link allows users to subscribe to changes made to this Wiki page. The Delete link can be used to remove the Wiki page.

Thus, the Lock link is only available to users having the Protect wiki pages permission. The title of the link is a little bit confusing as it may be considered that no more changes are allowed to be made to the page after you have clicked on the link—it is not so. You will still be able to modify the page, as well as other users having the Protect wiki pages permission. Any of such users may also unlock the page. So, this link can only be used to protect the page from other Redmine users, that is, to restrict editing of a page to trusted users.

Before discussing the Rename link, let's speak about how to create a Wiki page. Similar to other Wiki systems, a Wiki page in Redmine can be created in two ways:

  • By adding a page name into the URL: For example, if URL for a project is http://redmine.packtpub.com/projects/mastering-redmine we can create Test-Page by adding its name to URL this way: http://redmine.packtpub.com/projects/mastering-redmine/wiki/Test-Page (note the additional /wiki/ path). Following this URL will invoke the previously discussed Wiki page edit form, which you can use to create new page (of course, if you have the permissions to do so).
  • By adding a link pointing to new page on any existing page: The Wiki page you are going to create should be referenced from somewhere. Just add a link to this not-yet-existing page there. The syntax for adding a link to a page is as follows:
    [[Test-Page|Any display text]]

    This link will be rendered red, which means that the page it is referencing does not exist. When you click on this link, you will be redirected to the Wiki page edit form.

    Note

    The latter method is easier and should be preferable as it also sets the page you are referencing from as the parent page automatically. Don't forget to clear the Parent page if you did not want it though.

But what if you made a mistake in the page name? This is why the Rename link was added. Clicking on this link redirects to this screen:

Wiki

The Title is actually the name of the Wiki page as it is added to the URL. Therefore, another option Redirect existing links was added to the form. If this option is checked the page will still be accessible by the old name (and URL). On this form, you can also change the parent page.

Note

Always check the Redirect existing links option if the page was available under the old name for some time. It's recommended not only because users could save the old URL to their favorites, but also because search engine bots could have index it already.

The last link from the Wiki page contextual menu that we need to review is the History link. When you click on it the following screen will be loaded:

Wiki

This is where the earlier mentioned comments are shown. By choosing versions (1 and 2) and clicking on the View difference button, you can check the changes that were made to the Wiki page. The Annotate button to the right of the version can be used to check who authored specific lines of the Wiki page.

Each Wiki page also includes links for exporting the page content into PDF, HTML, and TXT formats (exporting works with some limitations, of course, thus page references are not converted into rich format).

On the sidebar of each Wiki page, you will also see the navigation menu:

Wiki

Navigation in a Wiki system is usually implemented using the Wiki syntax (that is, through links). But if authors of Wiki pages failed to comply with it, you can always use this navigation menu to find the page you need.

Tip

Custom content on the sidebar under the Wiki tab

Redmine allows adding custom Wiki content to the sidebar of the Wiki module. To do this you just need to create a Wiki page named Sidebar. Its content will be shown on each Wiki page above the navigation menu. The sidebar content should start with a h3. title (to look similar to other sidebar titles).

The Wiki pages index is available under two links—Index by title and Index by date. The former link also displays the structure of Wiki pages:

Wiki

The Wiki pages index, as seen from the screenshot, can be watched. If you watch it you will be notified about every new Wiki page added to the project. In addition to watching this, you can subscribe to the list using the Atom link.

Tip

Redmine Wiki Extensions plugin

You might want to install the Wiki Extensions plugin by r-labs, which allows you to add tags and comments to Wiki pages, to use Wiki pages as tabs in the project menu, and much more, see at http://www.r-labs.org/projects/r-labs/wiki/Wiki_Extensions_en.

Repository

Redmine was designed mainly for software projects. Each software project has source code, so it's essential for Redmine to have a source code browser. Nowadays software projects often use revision control systems for collaboration, therefore Redmine also needs to support such systems. All such functionality in Redmine is provided for projects by the Repository module which adds the Repository tab to the project menu as well as the Repositories tab to the project's settings. Let's review the latter first.

Go to the Settings tab of the project, then select the Repositories tab:

Repository

By default there is no repository in the project, to add one we need to click on the New repository link:

Repository

The SCM field in this form contains only SCMs which have been permitted by administrator in Administration | Settings | Repositories tab.

The Main repository checkbox must be set for one of project repositories (any). If it is the first repository the Main repository flag will be enforced on saving. If you check it for another repository this flag will be automatically unset from the previous main repository.

The Identifier field is required for sequential repositories as it is used to differentiate project repositories.

Values of other fields, and available fields as well, depend on SCM. To determine the correct values for these fields consult your repository administrators.

Tip

Git index is slow?

If you have commits with huge amount of modified files and directories the Git loading can become slow. Try disabling the Report last commit for files and directories option for Git to resolve this issue.

All SCMs require repositories to be already available. This form just registers them in Redmine, it does not create repositories. You can configure automatic repositories creation with the reposman.rb tool (for more information on this refer Chapter 3, Configuring Redmine).

Tip

You can also use the SCM Creator plugin for Redmine which allows creating repositories directly from the discussed form, see at http://projects.andriylesyuk.com/projects/scm-creator.

After we have registered a repository it gets added to the repository list of the project as shown on the following screenshot:

Repository

Every commit in revision control systems is associated with a username, but this username can differ from the username in Redmine (especially if you have not configured Redmine.pm ). In such cases, Redmine won't be able to display adequate users for commits. That's what the Users link is for. When you click on it, Redmine opens the screen allowing you to associate repository users with Redmine users. By default, Redmine assumes that same usernames mean the same users.

Not sure if you have noticed but in addition to the repository, which appeared in the repository list, the project now has a new Repository tab (near the Settings tab). This new tab is also provided by the Repository module but appears only when at least one repository is added to the project.

As my demo project does not have any sources, let's review the Repository tab on Redmine.org:

Repository

The upper part of the screen allows you to browse the source code. You can either click on directories or use the plus icon to unfold the directory content. The lower part contains information about the last 10 commits which were made to the repository. To view all the commits, you can click on the View all revisions link. To view some basic statistics when commits were made and who committed changes, use the Statistics link in the top-right corner.

Tip

This screen also allows subscribing to commits using the Atom link.

Clicking on revision numbers you can see a brief summary of changes that were made in this revision:

Repository

Choosing revisions and clicking on the View differences button on the main screen or clicking on a diff link on the revision page, you can check what was changed:

Repository

If you click on a filename, you will be redirected to the page containing all information about that file. This section will have four links:

  • History: Lists only revisions which affect the file. On this page you can also select two revisions and click on the View differences button to see changes, which were made to the file.
  • View: This page just shows the content of the file with its syntax highlighted.
  • Annotate: This page shows the content of the file as well but also includes who authored each line of the revised file and in which revision:
    Repository
  • Download: This link triggers the file download.

That's all I wanted to show you so far. But wait, have you wondered how the Repository tab looks if more than one repository is used? Absolutely the same! In the case of many repositories, the sidebar contains links allowing you to switch to different repository:

Repository

You can play with the repository browser more on your own to see all its pages and features. In my opinion, the Repository module is the most visually beautiful core module of Redmine so it's really worth playing with (if you don't have a repository to play with you can use for example, http://www.redmine.org or http://projects.andriylesyuk.com (my projects)).

Forums

The Forums module is often undeservedly ignored by Redmine users and, therefore, in practice it is underused. So what is the use of this module?

A project needs to provide some means to support users, to answer their questions, and so on. The Forums module adds discussion boards which make this possible. Each board can have a name which reflects the specific topic of discussion, for example, "Development using API". On a board, there can be an unlimited number of threads which are called topics, each topic can have any number of posts which are called messages.

But what's wrong? In practice, users rarely use forums to ask for support. Most likely they will use issues for this, especially if Redmine comes (and by default it does) with the "Support" tracker, which is intended for such usage.

You can ask: "Why not?" or "Why use forums instead?".

  • First: Support issues will mix with others (bugs, features). This will make the issue list harder to read and will require users to configure filters.
  • Second: When you resolve an issue you should close it! And forum threads remain open even after they have been resolved. This way with forums you will assemble the troubleshooting database while with issues you are going to get duplicates (you will need to transfer every solution to a Wiki that is good for forums as well though).
  • Third: Topics can be categorized using boards. While issues also support categories, users can't subscribe to them, but they can subscribe to boards and topics. The possibility to subscribe will let volunteers help you support customers.
  • Fourth: Forums and issues use different permission sets. This means that you can have a special role of community supporters and won't need to consider them when granting permissions to issues.

As you see forums are to some extent better for customer support.

Tip

If you decide to go with forums, you may also need to remove the Support tracker to avoid confusion.

Before we proceed with checking the capabilities of this module, we need to configure it. Its configuration can be done in project settings under the Forums tab:

Forums

Click on the New forum link to add a new discussion board:

Forums

The value of the Name field should briefly describe the topic of the forum. The Description field should contain a longer description. Thus, good examples of forums are:

Name

General discussions

Description

If no other forum fits, write here

Name

Help

Description

If things do not work, ask here

Name

Development

Description

Anything about development should be written here

As soon as you create the first forum in a project, the Forums tab will be added to the project menu:

Forums

If you have only one forum, you will get its content once you click on the Forums tab, if you have more forums you will get their index first.

As you see, you can watch the forum by clicking on the Watch link or by subscribing to the Atom feed. If you have more than one forum, you will also be able to subscribe to new forums using the Atom link on the index page.

Now let's add a topic. When you click on the New message link the message edit form appears before the forum content:

Forums

Forum messages, as you see, also support Wiki formatting and you can also preview what you have written using the Preview link.

New elements on this form are the Sticky and Locked options. If the Sticky option is set the topic will always appear on the top of the list and if the Locked option is set, replies will not be allowed for this topic (consider it like closing the discussion).

After saving the message you will be redirected to the topic page:

Forums

The user who creates a topic is automatically added to its watcher list (that's why we have the Unwatch link on the screenshot).

To reply to a message, we can use either the Quote link, which will insert quoted content of the original message into the reply, or the Reply link. In both cases, an additional form, which contains just a text area, is shown under the Reply link.

Now let's check back to the forum page (I added several other messages):

Forums

Here you see how sticky and locked topics are shown. The RE: Just another topic link is a quick shortcut to the last message in the topic. The table is sortable by the Created, Replies, and Last message columns.

Calendar

The Calendar module adds a tab with the same name to the project menu:

Calendar

By default the calendar for the current month is shown under this tab. This calendar shows start and due dates of issues, if they are specified. Thus, the start date is shown with the green arrow pointing forward and the due date is shown with the red arrow pointing backward. If start and due date are the same the red rhombus is used instead.

If versions have the due dates, they will also get shown on the calendar:

Calendar

Here 1stDraft is the name of the project version, which is also a link pointing to the version page.

Hovering the mouse cursor over the issue invokes the issue details box containing such information as assignee name, priority, status, and so on, as shown in the following screenshot:

Calendar

You might have noticed that the calendar page contains a filter similar to the one which can be found on the issue list. In fact, this can be considered to be the same filter (as its settings are preserved when you move between the Issues, Calendar, and Gantt tabs).

The Calendar module is really useful if issue reporters and/or assignees always set the start and due dates. If an issue has neither it won't be displayed on the calendar at all.

Tip

Redmine ICS Export plugin

This plugin can be installed to let exporting issues and versions dates in the ICS format, which is compatible with most major calendar software: http://code.google.com/p/redmics/

Gantt

It seems that no project management software is complete without the Gantt chart. This type of bar chart is perfect for representing the flow of work on the project in terms of time and resources availability.

In Redmine, this chart is available under the Gantt tab in the project menu, of course, if the Gantt module has been enabled.

Gantt

Like the calendar, the Gantt module uses the same issue filter which is used for issues, which means that under the Issues tab, you can configure what to show on the Gantt chart. The Zoom in and Zoom out links allow you to zoom the chart down to week days, or up to months respectively.

The Previous and Next links under the chart allow moving between periods. For example, if the chart shows January – June 2012, the Previous link will move to July – December 2011 and the Next link will move to July – December 2012. The resulting chart can also be exported to PDF or PNG.

Tip

To be able to export the Gantt chart to PNG, you need to have RMagick installed.

When you hover your mouse cursor over a bar, the issue details box, identical to the one we get by hovering the mouse cursor over issues on the calendar, is shown.

Tip

Better Gantt Chart plugin

You may want to check the Better Gantt Chart plugin originally authored by Alexey Kuleshov, which adds many interesting features to the Redmine Gantt chart including arrows, that connect related issues on the chart: https://github.com/drewkeller/redmine_better_gantt_chart.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset