Enhancements

Tracker

This is the end of the work started 3 releases ago about being able to move artifacts from one tracker to another. Until now, everything was fully functional but reserved to people who known how to use REST API. Starting 10.4, the web UI is here for anyone. The "move" action is available in a new menu (see below). This menu groups all actions that are possible on an artifact.

Artifact actions menu with move

When target project and tracker are selected (move can be cross project) there is a confirmation screen that will tell what information will be moved and what fields will be lost (permanently, be careful).

At the moment, all "semantic" fields are moved:

  • ID
  • Title
  • Description
  • Submission date
  • Status
  • Initial effort
  • Assignee

All follow-up comments and changes on those fields are moved as well with authors and dates.

Artifact actions menu with move

Once the move is done, there is a dedicated follow-up comment to inform about the operation

Artifact after move

As "move" is a destructive operation (not all fields are moved), it’s considered by Tuleap as a "delete" operation, hence site admin must allow "delete" operations (Site Administration > Trackers > Artifacts deletion)

SOAP API for tracker v5 will be removed in fall 2018, this new end point was the only one feature that was still available in SOAP but not in REST. There are no more blockers to not move to REST now.

Pull requests

Git repositories can now be configured to only accept "fast-forward" pull requests.

Configuration screen to only allow fast forward on a git repository

Once activated, it won’t be possible to integrated pull requests that are not "fast forward" from the interface (it’s still possible to do it on the git CLI though).

This setting is configurable at project level (git service administration) and will be inherited at repository creation. It can also be set on project templates.

Dashboards and widgets

  • story #11911 have a project widget to write notes on dashboards

Markdown note on project dashboard

Project admins can add a new widget on their dashboard with markdown content. It’s a "Note" widget and it’s useful to give information to visitor about your project, how it’s organized, etc.

Until now it was possible to do that by having an embedded document widget but it was cumbersome and hard to work with. The new recommended way to have free text on a dashboard is the Note widget.

System administration

  • request #12067 Move to the remi-safe repository for the PHP dependencies

During development cycle we got a bad news: the RPM repositories from Redhat/Centos we were relying on for PHP packages got removed entirely. As PHP is quite important for being able to run Tuleap we had to switch to an alternative repository.

We selected the safe packages maintained by the Release Manager of PHP 7.2 line and maintainer of PHP RPMs for RedHat, Rémi Collet.

Please carefully read the deployment guide to know how to do the switch.

On the plus side, it will ease the migration to PHP 7 and we can know target the most recent version (7.2) that was not available in official repositories !

Development

Framework and internals improvements

On the road to PHP 7.2

Given recent troubles we had with offical (RHEL and CentOs) SCLs that got ditched out of the repo, we had to move to remi repos for PHP dependencies. Hence we decided to target PHP 7.2 (provided by remi but not by RHEL/CentOs).

As a matter of fact, 10.4 is a big milestone in PHP 7 support in Tuleap as all tests (Unit, REST, etc) are now run with both PHP 5.6 and PHP 7.2. For simpletest we finally got rid of the old simpletest (1.0.1) in favor of the last released one (1.1.7).

PHP 7.2 conversion stats:

  • 347 PHPCompatibility warnings (64 high, 283 normal)
  • 38954 Simpletest tests
  • 584 phpunit tests

Releases stats

  • 1241 files changed, 25970 insertions(+), 72757 deletions(-)
  • They made the release (number of commits, author, company)
    • 163 Yannis ROSSETTO (Enalean)
    • 113 Marie Ange Garnier (Enalean)
    • 95 Thomas Gerbet (Enalean)
    • 47 Nicolas Terray (Enalean)
    • 43 Joris Masson (Enalean)
    • 12 Thomas Gorka (Enalean)
    • 9 Romain Lorentz (Enalean)
    • 5 Benjamin Dauton (Enalean)
    • 4 Jonathan Palm (Ericsson)
    • 3 Benjamin Bouillot (Enalean)
    • 3 Manuel VACELET (Enalean)
    • 1 Clarck Robinson (Enalean)
    • 1 Lydéric Dubut (Enalean)
    • 1 Sandra Echinard (Enalean)
    • 1 Thomas Cottier (Enalean)

Bug fix

Security

  • request #12064 Missing CSRF protection in Git project template mirroring
  • request #11954 DOMPurify bypass on old Edge versions
  • request #11897 Stack traces can be displayed to end users when CLI command potentially leaking sensitive information
  • request #10426 Path traversal through the API Explorer

Instrumentation and monitoring (Tuleap Enterprise)

Scrum / Velocity (Tuleap Enterprise)

Scrum

Test Management (Tuleap Enterprise)

Tracker

Git

  • request #12104 UX issues in new Git repository list
  • request #11973 Support packfiles bigger than 2GB in the Git repo viewer
  • request #11565 Be able to use the Git repo path to publish a commit status with the REST API

Pull requests

  • request #12068 Fix french translations in pullrequest
  • request #11904 Update on a PR destination branch is not taken into account when source branch is rebased

Subversion

  • request #12055 When user have different name between Tuleap and LDAP ViewVC does not work properly

LDAP

Project administration

  • request #11948 Rework active and enabled labels for project services

Site administration

  • request #11918 Project members do not show up in Platform Admin view

Installation

  • request #11909 Setup script should not complain about on abouted version of RH/CentOS when installed on 6.10

Site wide

  • request #11878 Update favicon for both BurningParrot and FlamingParrot themes
  • request #11882 Create project button in project dropdown should always be reachable

Timetracking (Tuleap Enterprise)

PHPWiki

  • request #11883 Remove not usable and broken PDF export feature from the PHPWiki service

File Release System