Enhancements

Cross tracker search (Tuleap Enterprise)

Example of cross tracker search export to CSV in LibreOffice

It’s now possible to get a full export in CSV of a cross tracker search queries with all the fields:

  • id
  • tracker
  • project
  • title semantic
  • description semantic
  • status semantic
  • submitted on
  • submitted by
  • last update date
  • last update by
  • string (duck typed)
  • text (duck typed)
  • int (duck typed)
  • float (duck typed)
  • date (duck typed)
  • date + time (duck typed)
  • select boxes bound to users, groups or static lists (duck typed)
  • radio button bound to users, groups or static lists (duck typed)

Fields that produce several values (multi select box, open lists, etc) are not exported as there is no good way to export them is CSV.

If you didn’t remember what Duck Typing is, it’s a jargon to describe an automated matching between difference sources. In our case the base problem we have to solve is that 2 trackers can be widely different (think a bug tracker and a requirement tracker) so a cross tracker search between them is like comparing apples to pears. However if you want to search across "issue", "bug" and "request" trackers, it’s likely that you are going to find the same kind of information (eg. category, due date, etc). Duck Typing is this context means that if the 3 trackers have a select box field named "category", it’s likely to represent the same thing so it’s considered the same information and displayed in one column (even if the actual values are different).

The duck-typing rule was a bit relaxed comparing the previous release: fields are "duck typed" if at least 2 trackers got the same filed/type (previously the field should have been in ALL trackers).

Warning: for list fields, the binding type (users, groups, static) is taken into account: if ‘category’ is a list of users in one tracker and a static list in another one, they are not "duck typed".

Bug fixed and requests:

  • request #12573 Session should be closed as soon as possible for CSV export

Git

Introduce native Git Large File Storage support as a new Tuleap Community plugin.

Git LFS is a technology that offers a clean way to manage large binary files in git. Binaries are not well managed by "pure" git which was designed to deal with text only. Adding those binary files in git repo leads to huge repos that are very large and every developer has to clone them with the entire history (unless specified): more bandwidth is consumed, the server activity is higher because of large files and longer operations. Git LFS solves that by storing big files outside the git repository (but still versioned). Have a look at the documentation on how to get started with git lfs on your repository.

On Tuleap, gitlfs plugin must be installed and activated by site administrator and it’s then available automatically to all repositories. Projects only have to do the client side work et voila.

Warnings in Tuleap 10.8:

  • there is no check of file size whatsoever. It means that you can get a full disk on your partition with one git operation (try to add a 10TB file in your git repo).
  • support of locking is not yet implemented.

PHP 7.2

  • request #12557 Allow to instantiate a Tuleap instance with PHP 7.2
  • request #12517 Make Tuleap Mediawiki service working in a PHP 7.2 environment

After a year long effort, Tuleap is now ready to be run on top PHP 7.2 engine. You are encouraged to switch to it ASAP to get the performance boost (some pages got 5 times faster).

How to switch:

  • /usr/share/tuleap/tools/utils/php72/run.php
  • Check /etc/opt/remi/php72/php-fpm.d/tuleap.conf and adjust settings as needed (compare with php56 file)
  • service php56-php-fpm stop
  • service php72-php-fpm start
  • chkconfig php56-php-fpm off
  • chkconfig php72-php-fpm on

Congratulation, you run PHP 7.2 !

Tracker Workflow administration (Under development)

  • story #12187 configure workflow pre & post actions at target state level

The new admin interface is still under heavy development and is not usable at the moment. You can however have a look to the new UI by crafting the URL manually: /plugins/tracker/workflow/:tracker_id/transitions.

Document Manager

As part of the work on the new Document Manager UI 3 new REST routes were added. Those routes are:

  • GET /docman_items/{id}
  • GET /docman_items/{id}/docman_items
  • GET /docman_items/{id}/parents

In addition to that, the route GET /projects/{id} was modified to return a project documents entry point in additional_informations.

Performances

  • request #12564 [Dashboards / Tracker widgets] Load Graphs on trackers v5 data asynchronously
  • request #12541 [Tracker fields admin] Edition of a selectbox might be long
  • request #12520 [Dashboards / SVN Core widget ]Missing index on svn_commit

Prometheus instrumentation got a new metric:

Eclipse Mylyn connector

  • request #12224 The Tuleap Mylyn connector shows only public projects

Mylyn connector 2.4 got released (comptabile with latest eclipse releases). It fixes a long standing bug where private projects were not listed (hence queries were not possible). Thanks to Vincent Hémery for his contribution.

Ansible playbooks

Several PRs were integrated in Tuleap Ansible Playbooks to make them compatible with latest Tuleap deployment constraints (nginx, fpm from remi, etc). Thanks to Aurélien Tisné for his contribution.

Development

Releases stats

  • 865 files changed, 25889 insertions(+), 17797 deletions(-)
  • They made the release (number of commits, author, company)
    • 163 Nicolas Terray, Enalean
    • 125 Marie Ange Garnier, Enalean
    • 90 Thomas Gerbet, Enalean
    • 47 Joris Masson, Enalean
    • 26 Jibidus, Sogilis
    • 19 Manuel VACELET, Enalean
    • 11 Thomas Gorka, Enalean
    • 6 Clarck Robinson, Enalean
    • 6 Thi Mai, Sogilis
    • 4 Yannis ROSSETTO, Enalean
    • 3 Romain Lorentz, Enalean
    • 3 Aurélien Tisné, C-S
    • 1 Benjamin Dauton, Enalean
    • 1 Sandra Echinard, Enalean
    • 1 Vincent Hémery, C-S

Bug fix

Security

  • request #12522 CSV export of the cross tracker widget does not enforce field permissions
  • request #12521 Fields permission are not verified when accessing an attachment

Tracker

SVN

  • request #12552 Export of SCM statistics for SVN plugin is not sorted
  • request #12551 Export of SVN plugin statistics is broken
  • request #12546 Redeploy apache should redeploy logrotate config
  • request #12524 SVN stats are not well collected if user name has a space
  • request #12476 Identical user secrets should not be distinguishable in the SVN Redis cache

Git

  • request #12513 Commits associated with an empty email author address show a wrong author in the web UI
  • request #12512 Post receive hook does not work when the serialized hooks cache is used

Timetracking (Tuleap Enterprise)

  • request #12464 Update project rest route to get time tracked project

Test Management (Tuleap Enterprise)

  • request #12273 Not possible to delete a tracker that has been used in TTM

Misc

  • request #12562 Default nginx configuration for plugins might serve requests to the wrong plugin
  • request #12563 Cannot login via the OIDC plugin when the serialized hooks cache is used
  • request #12550 Mark personal access keys as usable in cross origin requests
  • request #12545 Permissions for deprecated services are not accessible
  • request #12542 Change avatar mgmt lib + make them available everywhere
  • request #12535 User avatar and profile are not accessible when the LDAP UID is not identical to the Tuleap username
  • request #12530 Cross tracker karma tests are no more launched by Jenkins
  • request #12518 Cannot instantiate Mediawiki service when the serialized hooks cache is used
  • request #12387 Extraction of references followed by an HTML entity is broken