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.
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 performedWHERE
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 semanticacknowledged_time
is the value of theacknowledged_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:
- 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. - 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