This release enhances project management with advanced cross-tracker search capabilities and improved dashboard functionalities, making it easier to oversee and manage your projects. 

Next level Cross-Tracker Search

Cross-Tracker Search is the ability to look for artifacts (user stories, bugs, epics, etc.) without having to know which tracker they were created in.

In spring, we extended the search ability to all types of fields using the ”duck typing” principle. Now you can choose what to display in the table columns, and how to select trackers.

Show me what is open in my project

Sure ! here we go. This example demonstrates how the new Cross-Tracker Search can quickly give you a comprehensive view of your project’s status, pulling information from multiple trackers into a single, easy-to-read dashboard.

Tuleap project dashboard with two widget, the new cross tracker search with all open query and heartbeat.
Cross tracker search widget with all open artifacts of the project

How did we do that ?

Cross-Tracker Search widget now has an ‘expert’ mode that allows the use of an extended version of Tuleap Query Language (aka TQL) which will sound familiar to the most tech-savvy among us. It’s based on the trilogy SELECT … FROM … WHERE …

  • SELECT tells what you want to display (the columns in the table)
  • FROM in which trackers the search should be performed
  • WHERE the search criteria you want to apply

The two new parts of 15.13 are SELECT and FROM.

SELECT some fields

Until now columns were fixed and based on semantics. The same technical challenges apply both to rendering columns across tracker and to searching values. So we applied “duck-typing” approach. We already detailed duck-typing in a previous release note, so we won’t repeat ourselves here. How does it apply for SELECT ?

Let’s take the following query SELECT @pretty_title, @tracker.name @status, acknowledged_time we have four different kinds of column

  • @pretty_title corresponds to a fancy display of artifact titles with tracker name and artifact id. Behind the scenes, it leverages the Title semantic.
  • @tracker.name is a special selector (not a field of an artifact) that will display the name of the tracker in which the artifact sits.
  • @status is the value of the Status semantic
  • acknowledged_time is the value of the acknowledged_time field. Here there is duck-typing.

For the latter, a value will be displayed if the artifact has field with that name AND if all trackers that have acknowledged_time have a common definition (either date or date/time). If acknowledged_time is a select box in one tracker, a text field in the second and a date field in the third tracker, Tuleap will raise an error because it cannot render values of incompatible types.

Of course, it’s not limited to date/time fields. You can SELECT fields of any types.

FROM some tracker(s), in project(s)

This is the second stage of the rocket. Selecting and filtering fields is great but to be really compelling, Cross-Tracker Search must allows flexible ways to select trackers, as well as projects. The basics are:

  • FROM @project.name = 'guinea-pig' AND @tracker.name = 'bug' means “bug tracker of guinea-pig project”
  • FROM @project.name IN ('moon', 'mars', 'jupiter') and @tracker.name IN ('story', 'epic') means “Story or epic tracker in the 3 projects”

But we also have wider selections

  • FROM @project = 'self' means “all the trackers of current project”
  • FROM @project.category = 'Scope::HelpDesk' AND @tracker.name = 'request' means “all request trackers of projects that are in the HelpDesk category

We even have a dedicated selector for projects that are using Program Management

  • FROM @project = 'aggregated' means “all projects that are aggregated to the current program”

Performances & perspectives

You might wonder how performances are doing with those new capabilities. It turns out that it works quite well. We have done tests with ~100 trackers and 10’000 artifacts and response times are good. So far, what seems to have the biggest impact on the performances are the number of columns displayed. The more you add, the slower it gets. This is something we will investigate.

Looking ahead, our roadmap for upcoming releases includes two key areas of focus:

  1. Enhancing the query capabilities: We plan to implement the ability to sort results using an ORDER BY clause, further improving the flexibility of the Cross-Tracker Search.
  2. Improving user accessibility: Recognizing that not all users may be comfortable writing TQL queries, we’re working on developing more user-friendly interfaces for constructing complex searches.

These enhancements to the Cross-Tracker Search represent a significant step forward in Tuleap’s ability to provide comprehensive, cross-project insights. By breaking down the barriers between trackers and projects, we’re enabling teams to gain a more holistic view of their work, regardless of how it’s organized within the system.

We’re excited about the potential these features unlock for our users and look forward to seeing how you leverage them to streamline your workflows and enhance project visibility. As always, we welcome your feedback and suggestions as we continue to evolve and improve Tuleap.


Bugs and requests

During the 15.13 release cycle, 33 bugs fixed and requests implemented. Bugs and security fixes were already back-ported on Tuleap Enterprise builds. You will find below a detailed list of fixes. The most notable ones are in bold.

Trackers

  • #39333 Fatal error in tracker reports with a TQL search looking for a non empty float field

Taskboard

  • #39022 Moving a card in Taskboard can have side effects

Git & Pull Requests

  • #38641 pull request dashboard should display branches
  • #38640 Pull request overview should inform about potential merge conflicts

Site administrators

  • #39347 Project category shortname should not contains ::
  • #39338 Homepage display is broken on large screens

System

  • #39355 Nginx should not try ipv6 for local node realtime server
  • #39021 Update Tuleap Metrics Grafana dashboard to include metrics about Tuleap Functions and FTS

Receive once a month the latest Tuleap updates