Enhancements

Test Management (Tuleap Enterprise only)

  • story #11493 have dedicated "Actions" and "Expected results" in tests

Tuleap test management steps with actions and expected results

Steps can now be divided in 2 phases

  • Actions, that corresponds to the things test executor should do.
  • Expected results, for what they are supposed to observe.

Steps still have to be written directly in the underlying artifact and configured manually (see previous release) but the data structure is final and won’t change. It’s a good time to give it a try !

Trackers

Tracker webhook administration

Webhooks are HTTP urls that are called every time an artifact is getting updated (including at creation). It’s useful when you want to automate integrations between various tools (like a deployment of a software). Until now it was possible to automate things with jenkins, webhooks are a generic version of that, not attached to a given transition of workflow.

You can configure them (as well as getting a status of previous executions) in Tracker administration > Workflow > Webhooks. The payload to be received is very close to what github or gitlab offers to people doing integration will be in known area. Keep in mind that the whole artifact state will be sent as a payload, including data that might be sensitive, tracker admin should be really careful to the configuration of the end point.

Under the hood, there’s been a rework of the way all webhooks are managed for being able to send them in parallel. You can even send them asynchronously if you configure a redis server. More details in request #11459 Retrieve data of multiple Jenkins jobs in parallel.

User preferences for tracker notifications

It’s an extension of story #11254 reduce notification sent by tracker to status change for the user preference part. Tracker users will be getting default notifications for a given tracker but they will be allowed to change if they want to.

The three semantics were added to move REST route. The whole thing will be accessible with a nice web UI in 10.4, stay tuned !

  • request #11622 Possibility to configure display name on email notifications from tracker on a per-tracker basis

Customize 'From' email of trackers

Tracker email notifications can now have a customized From email. Instead of having the default From: Tuleap <...> you can put your own string like From: Issue Tracker <...> or you can even make it contextual with variables %realname and %username. As From is a sensitive information in emails (often looked carefully by anti-spam filters) the informations are transformed with a "Slugifier". However if you observe mails not delivered you should disable this feature first before continuing investigations.

It’s the first contribution of new contributor Jonathan Palm from Ericsson, welcome aboard !

Git

Git repositories list, default view

It’s the beginning of a major overhaul (and overdue) redesign of the git service. Tuleap provides git repositories since 2010 and back the gitweb was the de-facto standard for displaying git repositories. Github changed the paradigm with a focus on the repository content rather than history (log) by default. With more and more developers getting used to git via github it became necessary to adapt, so here we are.

It’s the beginning of the epic and you can look at what the whole thing will looks like in the mockups. In this release we focused on the way git repositories are listed as well as the technical ground for being able to make the switch to Burning Parrot theme.

Git repositories are now listed by default in as a flat list ordered by last update date. The rational is to highlight and speed access to repositories that are updated often. It’s still possible to get a tree oriented view with a selector. You are also getting a filter to quickly access to repositories.

Git repositories list, tree view

This new screen is built on top of our public REST routes so we made some modifications:

  • GET /projects/:id/git is getting last_update_date as well as the number of open pullrequests. Warning – Changes
    • Repositories are now returned sorted by last_update_date (newer first). Previously it was sorted by repository id.
    • The total number of repositories represent the total number in the project including those you cannot see. Previously the total number was equal to repositories the user can see but it was way too inefficient for web use.
  • POST /git is a new route that allows to create a git repository in a project.

Timetracking (Tuleap Enterprise)

Timetracking widget time detail

Day to day usability improvement for time tracking. Users will be able to better see how they recorded their time over a given period. It should make weekly reporting easier.

Monitoring and instrumentation (Tuleap Enterprise)

  • request #11614 Allow usage of prometheus instead of statsd for instrumentation

Grafana dashboard of Tuleap metrings

After having installed and configured tuleap-plugin-prometheus-metrics, your prometheus instance will be able to scrap tuleap metrics. Those metrics can be then rendered with grafana (see previous picture) to monitor what’s going on in real time on your tuleap instance.

What can be observed:

  • total number of access to Tuleap (broken down per router type: legacy, front router, soap, rest)
  • total number of access per services
  • total number of artifact view, creation, update
  • total number of project per status
  • total number of users per status
  • total number of errors reported by front or rest router
  • total number of logins by status (error, success)

More information about the setup in instrumentation documentation.

Development

Framework and internals improvements

On the road to PHP7

  • story #11146 Provide PDO by default for all Tuleap DB query
  • story #11144 Run a first REST test in PHP7
  • request #11675 Updating an artifact through SOAP sets an invalid comment format in database
  • request #11660 Replace deprecated PHP4-style constructors
  • request #11658 Functions can not have multiple parameters with the same name since PHP 7.0
  • request #11531 Introduce Prettier to ESLint in pre commit hook

PHP7 conversion stats:

  • 1021 PHPCompatibility warnings (912 high, 109 normal)
  • 18570 simpletest 1.0.1 tests
  • 12476 simpletest 1.1.x tests
  • 482 phpunit tests

Releases stats

  • 1629 files changed, 48628 insertions(+), 23394 deletions(-)
  • They made the release (number of commits, author, company)
    • 188 Yannis ROSSETTO (Enalean)
    • 174 Thomas Gerbet (Enalean)
    • 171 Marie Ange Garnier (Enalean)
    • 89 Joris Masson (Enalean)
    • 70 Manuel VACELET (Enalean)
    • 46 Thomas Gorka (Enalean)
    • 35 Nicolas Terray (Enalean)
    • 17 Benjamin Dauton (Enalean)
    • 3 Romain Lorentz (Enalean)
    • 2 Jonathan Palm (Ericsson)
    • 2 Sandra Echinard (Enalean)
    • 2 Aurélien Tisné (C-S)
    • 1 Benjamin Bouillot (Enalean)

Validation scores

Tuleap 10.3 results

Bug fix

Security

  • request #11822 Checkbox and radiobutton fields bound on users are vulnerable to XSS
  • request #11809 Restoration of deleted Git and SVN repositories should only be allowed to site administrators
  • request #11808 XSS when displaying the diff between changes
  • request #11685 XSS through the name of a color of select box values
  • request #11833 A XSS can be triggered via a user’s realname in the user mention autocompleter

Pull requests

  • request #11784 Pull request can not be accessed anymore if the Git history is rewritten
  • request #11693 Right-click in "checkout" dropdown should not close it in Firefox
  • request #11672 Do not try to reserve a Git reference when a PR is updated
  • request #11656 Pull request plugin depends on Git 2.9+

Trackers

  • request #11777 RNC must block empty label for list field value
  • request #11752 fatal error might occur on move/delete computed field
  • request #11745 Export of autocompute in archive does not deal properly with last changeset
  • request #11739 Tracker report graphs based on open-list always display NULL value
  • request #11711 Edit button can be hidden by the tracker field label in field usage administration
  • request #11695 Could not uncheck Include [Assigned to me] flag in tracker notification
  • request #11675 Updating an artifact through SOAP sets an invalid comment format in database
  • request #11180 Field not empty condition should be removed when a transition is deleted

Agile dashboard / Scrum

Subversion

Git

  • request #11846 Fatal error when accessing the Git repo list page with a char outside [A-z0-9-] as project name

Test management

  • request #11750 Dependency graph from TTM does not work in artifact view

Docman

Performances

  • request #11796 Too many SQL calls on "plugin" table done at each hit

Themes

Import & export

Site administration

  • request #11860 Export of SCM statistics is broken
  • request #11852 Wrong subject for notification of account creation/validation when done by a site administrator

Typo & translation

  • request #11699 Wrong translation for projectlinks creation
  • request #11692 Wrong URL for admin interface in the mail of project approbation
  • request #11689 Fix french translation for Notifiy on update option
  • request #11782 Spelling mistake in a french translation label of the project creation page

Misc.

  • request #11787 Console logger of the Tuleap CLI does not properly deal with warnings
  • request #11659 Force to have a recent enough forgeupgrade to execute PHP 5.6 code
  • request #11633 Description value not displayed in Service edition