Tuleap 10.x

Tuleap 10.11

Incorrect path to the Git binaries in the Gitolite configuration

If you have installed after Tuleap 10.5.99.15, Gitolite will not be able to find the Git 2.12 binaries. Tuleap instances that have been installed before that and that have followed the deployment guide while upgrading are not impacted. Gitolite is the software used by Tuleap to, among other things, do the access control management of the Git repositories.

The Gitolite configuration must be updated to set the path environnement to /opt/rh/sclo-git212/root/usr/bin:$ENV{PATH} instead of /opt/rh/sclo-git212/root/usr/bin/git:$ENV{PATH}.

The following one-liner can be used to achieve that:

#> sed -i "s#/opt/rh/sclo-git212/root/usr/bin/git:#/opt/rh/sclo-git212/root/usr/bin:#" /var/lib/gitolite/.gitolite.rc

Tuleap 10.10

Nothing to mention.

Tuleap 10.9

End of support of PHP 5.6

Tuleap now comes with PHP 7.2. All new installations defaults to this setup.

To switch on it, you first need to deploy the PHP FPM configuration for PHP 7.2.

/usr/share/tuleap/tools/utils/php72/run.php --module=fpm

Then stop the PHP FPM service running with PHP 5.6 and start a new one running with PHP 7.2.

On RHEL/CentOS 7:

systemctl daemon-reload
systemctl restart tuleap-php-fpm

On RHEL/CentOS 6:

service php56-php-fpm stop
chkconfig php56-php-fpm off
service php72-php-fpm start
chkconfig php72-php-fpm on # Useful if you want the service to be started on boot

Tuleap 10.8

Deployment of a new allowed command when doing Git over SSH operation

A new command must be allowed when doing Git over SSH operation for the support of Git LFS. You are concerned if:

  • you are running a RHEL/CentOS 6 server with the tuleap-plugin-git-gitolite3 package

  • you are running a RHEL/CentOS 7 server with the tuleap-plugin-git package

In the Gitolite configuration (/var/lib/gitolite/.gitolite.rc) the command git-lfs-authenticate must be added to the whitelisted commands.

The following one-liner can be used to achieve that:

#> sed -i -e "/# These are the commands enabled by default/a 'git-lfs-authenticate'," /var/lib/gitolite/.gitolite.rc

Apache configuration must be redeployed

In some cases the parsing of Apache logs was not done resulting in missing SVN usage statistics. In order to fix that, some configuration files might need to be redeployed.

You can use the following command to do so:

#> /usr/share/tuleap/tools/utils/php56/run.php --module=apache

Tuleap 10.7

Renaming of the Project Certification plugin

The Project Certification plugin has been renamed to Project Ownership. If you use this plugin, you will need to update the ForgeUpgrade configuration before the execution of the ForgeUpgrade utility.

You can use the following command to do so:

#> sed -i 's#/usr/share/tuleap/plugins/project_certification#/usr/share/tuleap/plugins/project_ownership#' /etc/tuleap/forgeupgrade/config.ini

Crosstracker nginx configuration

The nginx custom configuration file for the crosstracker plugin must be deleted. To do this, you have to delete the file /etc/nginx/conf.d/tuleap-plugins/crosstracker.conf and restart the nginx service.

Tuleap 10.6

Plugin Git with Gitolite3 now requires Git 2.12

The configuration of Gitolite must been manually updated to take into account the new path to the Git binaries. The update can be done with the following command:

#> sed -i "s#/opt/rh/rh-git29/root/usr/bin#/opt/rh/sclo-git212/root/usr/bin#" /var/lib/gitolite/.gitolite.rc

REST route POST /git/{id}/build_status is no more available

As announced in Tuleap 10.2, this REST route has been replaced by the REST route POST /git/{id_or_path}/statuses/{commit_reference}.

Your CI jobs and scripts that are still using the last route will need to be updated.

More information on how to configure your CI jobs and updated script to publish the feedback of your jobs to Tuleap can be found here: Configure Jenkins to Tuleap feedback.

Removal of the IM plugin

The IM plugin has been removed and is not available anymore in the Tuleap repository. If you still had the plugin enabled on your Tuleap instance, it will disappear after the update.

Tuleap 10.5

PHP-FPM does not restart after PHP-FPM upgrade

Tuleap configuration can conflict with the default configuration of the PHP-FPM package. We advise you to create an empty configuration file for the default configuration to avoid the recreation of the default configuration file.

touch /etc/opt/remi/php56/php-fpm.d/www.conf

Tuleap 10.4

New RPM repository for PHP packages

The Software Collection for PHP 5.6 is not supported anymore, therefore Tuleap has moved to the remi-safe repository. You will need to install to be able to upgrade.

To install it if you are using RHEL/CentOS 6:

yum install https://rpms.remirepo.net/enterprise/remi-release-6.rpm

To install it if you are using RHEL/CentOS 7:

yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

You can find find more information about the installation of the remi-safe repository on the Remi’s RPM repositories Repository Configuration page.

Once the installation of this repository is done, you will need to stop the existing PHP-FPM service before proceeding to the update (see Upgrade):

service rh-php56-php-fpm stop

After the update, you will need to deploy the PHP-FPM configuration for the new service and to start it:

/usr/share/tuleap/tools/utils/php56/run.php --module=fpm
service php56-php-fpm start
chkconfig php56-php-fpm on # Useful if you want the service to be started on boot

If you had the sclo-php56-php-pecl-redis package installed, you will need to install the php56-php-pecl-redis package (yum install php56-php-pecl-redis).

After that your Tuleap instance should be running, you can then remove previous PHP56 packages coming from the RH PHP56 SCL and PHP56 SCLo with yum remove rh-php56\* sclo-php56\*.

If you previously had installed the CentOS Vault RPM repository you can also safely remove it from your system (rm /etc/yum.repos.d/centos-vault-rh-php56.repo).

Tuleap 10.3

Update of themes variants

The following theme variants does not exist anymore:

  • DarkOrange

  • DarkBlue

  • DarkGreen

  • DarkRed

  • DarkBlueGrey

  • DarkPurple

Please make sure that they are not anymore used by $sys_default_theme_variant and $sys_available_theme_variants variables in your /etc/tuleap/conf/local.inc file.

Monitoring and instrumentation

Instrumentation based on statsd has been removed in favor of Prometheus. See Monitoring with Prometheus.

Tuleap 10.2

Continuous integration jobs should use pullrequest target repository

Until now it was necessary to use the source repository when using continuous integration with pull requests. It is now recommended to update your jobs to use the target repository to retrieve data. The existing REST route to publish the build status has also been deprecated, in favor of a new route.

More information on how to configure your CI jobs and updated script to publish the feedback of your jobs to Tuleap can be found here: Configure Jenkins to Tuleap feedback.

Changes in Tuleap internal API to communicate with the database impacting external plugins

These changes only impacts users maintaining plugins outside the Tuleap codebase. If you are only using plugins from the official Tuleap repository you are not concerned and you can safely ignore this.

If you maintain a plugin, it is highly recommended to do the following changes:
  • any direct usage of \DataAccess must be replaced by \Tuleap\DB\Compat\Legacy2018\LegacyDataAccessInterface

  • any direct usage of \DataAccessResult must be replaced by \Tuleap\DB\Compat\Legacy2018\LegacyDataAccessResultInterface

If possible, your code should be updated to work directly the API proposed under the \Tuleap\DB\ namespace.

Theses changes will become mandatory in upcoming versions of Tuleap.

Deprecation of statsd for the instrumentation

Tuleap 10.2 is the last version supporting statsd to publish instrumentation data. Tuleap 10.3 will come with a native support of Prometheus which will be the only supported way of collecting and processing instrumentation data in Tuleap.

Tuleap 10.0

Git mirroring: necessary update of the gitolite admin update script

If you use the Git mirroring feature, you will need to update the gitolite admin update script on the mirrors so it can work with recent of gitolite.

You need to replace on the mirrors the content of the file /usr/local/bin/update_gladmin.sh by:

#!/bin/sh

git=$1
gitname="`basename $git`"

if [ $gitname = gitolite-admin.git ]
then
  cd $git
  export GL_BINDIR=/usr/share/gitolite3
  export GL_LIBDIR=$GL_BINDIR/lib
  $HOME/.gitolite/hooks/gitolite-admin/post-update refs/heads/master
fi

Improper certificate validation when communicating with Mattermost servers

This change only impacts users of the bot Mattermost plugins. Until Tuleap 10.0, certificates to communicate with Mattermost servers over HTTPS were not properly verified. The certificates are now properly verified as anywhere else in Tuleap, that means that connections to Mattermost might stop working if you use a certificate that is not signed by one of the certificate authorities recognized by your operating system. To solve it, you might want to use on your Mattermost server a certificate signed by a recognized certificate authority such as Let’s Encrypt or if you use your own internal certificate authority you will need to add it to the store of your OS as described here: Add a new certification authority to the CA bundle.

Apache configuration update to deal with an issue affecting Subversion copy and move operations

An issue affecting the Subversion copy and move operations has been discovered and fixed. Unfortunately, the fix requires from the administrators a manual update of the Apache configuration.

The following line needs to be added in the Apache virtualhost processing the Subversion requests:

RequestHeader edit Destination ^https http early

The corresponding configuration block can either be found in /etc/httpd/conf.d/tuleap-vhost.conf or if the file does not exist in /etc/httpd/conf/httpd.conf.

In /etc/httpd/conf.d/tuleap-vhost.conf, once updated the virtualhost block will look like this:

<VirtualHost 127.0.0.1:8080>
    ServerName tuleap.example.com
    ServerAlias www.tuleap.example.com
    ServerAlias lists.tuleap.example.com

    RequestHeader edit Destination ^https http early

    # Include all configuration files from conf.d (php, subversion, etc.)
    # (also included from conf/ssl.conf)
    Include conf.d/tuleap-aliases/*.conf

   LogFormat "%v %h %l %u %t \"%r\" %>s %b" commonvhost
   CustomLog logs/access_log commonvhost
   CustomLog logs/svn_log "%h %l %u %t %U %>s \"%{SVN-ACTION}e\"" env=SVN-ACTION
</VirtualHost>

In /etc/httpd/conf/httpd.conf, once updated the virtualhost block will look like this:

<VirtualHost *:8080>
    ServerName tuleap.example.com
    ServerAlias svn.*.tuleap.example.com
    RequestHeader edit Destination ^https http early
    Include conf.d/codendi_svnroot.conf
</VirtualHost>

If you use a Distributed Tuleap setup, you will need to replace the following section in your nginx configuration

set $fixed_destination $http_destination;
if ( $http_destination ~* ^https(.*)$ ) {
    set $fixed_destination http$1;
}

with

proxy_set_header Destination $http_destination;