Project administration

The long waited redesign of members and groups management is now there !

Project admin members tab

Good bye to old "permission matrix", everything is now managed as groups (e.g. being a News Administrator means that you are added as member of "New Administrator" group).

Project admin list of groups

When editing a group, everything is at hand: group metadata, members and ability to link to other groups (LDAP & co).

Project admin detail of one group


Kanban can now be setup on Scrum trackers, actually we removed all constraints on Kanban setup, so you can setup a kanban on any tracker in your project. This can be useful for a P.O. that can see progress of Epics in a Kanban with teams consuming the backlog in Scrum sprints.

With Filtered Kanban you can leverage on tracker powerful queries (either selectors or [TQL]({{ site.data.contact.uri.tuleap_doc.uri }}/user-guide/tql.html) based) in your Kanban board to only display a subset of the cards.

Filtered kanban animation

By combining the 2 new features introduced in 9.15 you could achieve easily a shared backlog between two (or more) teams that work either in Kanban or Scrum.

For instance it could be setup with a backlog of Stories managed in Scrum. Stories are configured with a "Team" select box field. Stories tracker has a "Team A" report that displays only stories for Team A (you don’t say…). Once done, the Team A will see on its board only stories assigned to them while Team B will see stories planned for their sprints.

File release system


Thanks to Tim Izzo Tuleap now runs on Jelastic cloud. You can test it in beta on Hidora the Swiss based Jelastic provider.

Bug fix


  • request #10854: XSS on pages where an Angular app can be loaded
  • request #10829: XSS in autocompleters API responses
  • request #10839: SQL injection in tracker report search when a criteria is a cross references or a permissions on artifact field
  • request #10849: XSS in reference tooltips

Project Administration


  • request #10880: Tracker administration link is displayed to non administrators
  • request #10865: Unable to comment an artifact that is using a hidden value of a required field
  • request #10860: Enlarge your max_input_vars
  • request #10844: None must be saved in MSB field is no value selected
  • request #10841: Information about some fields are retrieved in tracker report renderer but never used causing slow performances
  • request #10818: Default value from Open List not taken into account
  • request #10815: Each access to a report log information not needed

Pull Requests

  • request #10847: Impossible to access to modifications of a file that has been renamed in a PR

Dashboard & widget

  • request #10866: Dashboard with many jenkins widget takes ages to load
  • request #10838: Cross tracker search plugin throw fatal errors when many users are in project
  • request #10816: Adding a new widget is painfully slow when the user has access to CI jobs with empty name
  • request #10580: Kanban widget should not change the dashboard url


  • request #10874: Mediawiki cleanup tool doesn’t take into account configured DB name


  • request #10868: Logs unhandled exceptions thrown during a REST call
  • request #10864: Last modified by in card fields causes fatal error in REST routes
  • request #10859: Tuleap SOAP API does not work if you use a PHP 5.6 setup




  • request #10828: References are only listed when on the first line of commit message


  • request #10862: Downloading large files might reach PHP memory limit if buffering is enabled

Site Admin

  • request #10825: Tuleap backend logs should respect configured logger level




Libraries and version bump

Build and CI



Environment and setup

  • request #10820: Tuleap development environment should leverage docker-compose >2

Releases stats

  • 904 files changed, 24729 insertions(+), 37269 deletions(-)
  • They made the release (number of commits, author, company)
    • 162 Marie Ange Garnier (Enalean)
    • 155 Nicolas Terray (Enalean)
    • 97 Thomas Gerbet (Enalean)
    • 75 Joris Masson (Enalean)
    • 50 Yannis ROSSETTO (Enalean)
    • 29 Manuel VACELET (Enalean)
    • 24 Thomas Gorka (Enalean)
    • 16 Juliana Leclaire (Enalean)
    • 1 Benjamin Dauton (Enalean)
    • 1 Omar Zavala A (Ericsson)
    • 1 Seif Eddine Gamoudi (STMicroelectronics)

Validation scores