Manage relations between Trac resources like relates to or parent > child in tickets


This plugin provides a general system for relating different Trac resources. The kind of resource is dependend on the use case.

It comes with plugins for relations between tickets with the following link types:

  • simple relations between tickets without any special semantics (relates to)
  • allow a ticket to block another ticket
  • specify parent -> child relationships similar to what can be found in the ChildTicketsPlugin.
  • duplicate tickets

The relations are saved in the database and can be used in reports.

Enhanced ticket page

  • The plugin adds the relationship information to the ticket properties box when a ticket page is shown.
  • Manage relations between tickets from the ticket page using a popup dialog.
  • Buttons for direct creation of child tickets of different types.
  • When child tickets exist for a ticket they are shown as a tree below the properties box.

Duplicate tickets

When resolving a ticket as a duplicate the user may input a ticket number and a duplicate relation is automatically created.

Blocking tickets

Ticket validator checks for blocked tickets:

  • Disallowing closing of a ticket when open blocking tickets exist
  • Detecting loops in your dependencies
  • Making sure a blocked or blocking ticket actually exists

Child tickets

  • Child tickets may have one or several parents
  • Show a child ticket tree with proper indentation and configurable depth
  • Ticket validator checks for:
    • Disallowing closing of parents when open children exist
    • Detecting loops in your dependencies
    • Making sure a parent ticket actually exists
  • Allow/disallow child-tickets for a certain type of ticket
  • Define the table headers displayed in the child ticket depending on the type
  • Define a default for the child type to be created
  • Restrict the type of possible child-tickets for each parent ticket type
  • Define which fields are inherited by child-tickets

There are admin pages available for configuring the features but it is also possible to control them by settings in trac.ini. See the configuration section for more info.

Other plugins


Relation properties

Screenshot of child relations properties on ticket page

Modify relations form the ticket page

Screenshot of relations modify button placement

Manage relations

Screenshot of child relations manage dialog

Child ticket tree

Screenshot of child ticket tree

Resolve ticket as duplicate with ticket input

Screenshot of action controller resolving ''duplicate'' ticket.

Bugs/Feature Requests

Existing bugs and feature requests for TracRelationsPlugin are here.

If you have any issues, create a new ticket.


Download the zipped source from here.


You can check out TracRelationsPlugin from here using Subversion, or browse the source with Trac.


General instructions on installing Trac plugins can be found on the TracPlugins page.


When using child tickets it is necessary to create a ticket-custom field relationdata. This field will not be shown on the ticket page but is needed for internal use.

relationdata = text

The rest of the customization may be done with a new admin page Ticket Relations -> Parent Types.

You may also configure them with entries in trac.ini. Features can be specified separately for each ticket type.

parent.<type>.allow_child_tickets = True|False
if child tickets are allowed for this parent ticket type
parent.<type>.inherit = fieldname 1, fieldname 2, …
specify the ticket fields which should be copied to the child
parent.<type>.restrict_child_type = type 1, type 2, …
allow these types ase new child ticket types
parent.<type>.table_headers = fieldname 1, fieldname 2, …
the table headers to be shown for child tickets

In this example the configuration is for tickets of type defect:

parent.defect.allow_child_tickets = True
parent.defect.inherit = description,milestone,summary,project,version
parent.defect.restrict_child_type = defect,enhancement
parent.defect.table_headers = status,project,summary

Recent Changes

18231 by Cinc-th on 2021-04-17 08:40:34
TracRelationsPlugin: show Duplicate of} field in preview ticket box only if resolution is actually set to duplicate. Removed some test code.
18230 by Cinc-th on 2021-04-16 17:41:18
TracRelationsPlugin: support duplicate relations. These are automatically created when resolving a ticket as a duplicate and an id of the other ticket is provided.
18228 by Cinc-th on 2021-04-16 05:57:22
TracRelationsPlugin: file rename to make the usage more obvious.


Author: Cinc-th
Maintainer: Cinc-th

Last modified 3 years ago Last modified on Apr 16, 2021, 9:39:39 PM

Attachments (5)

Download all attachments as: .zip