Helix Swarm Guide (2019.3)

What’s new

This section provides a summary of the notable changes in Swarm for the 2019.3 release. Full details are available in the distribution's RELNOTES.txt file.

Important information

Upgrading from Swarm 2019.1 and earlier

Swarm 2019.2 introduced a Redis in-memory cache to improve performance and reduce the load on the Helix Core server. This replaces the file-based cache that was previously used by Swarm.

On Swarm systems with a large number of users, groups, and projects, the initial population of this cache can take some time. If you have a large Swarm system you should read through the Redis server connection and configuration options before installing or upgrading Swarm, see Redis server.

API support changing for Swarm User Interface release (2020)

We have started adding a new set of v10 APIs to Swarm. These will provide a new endpoint and response pattern, and are designed for use with the new rich User Interface that is being introduced in 2020. Swarm will continue to support the v9 APIs for some time, see API versions.

API support changed for Swarm 2019.3

APIs older than v9 are being deprecated, support for them will be removed in a future release. See API versions.

Workflow feature support changed for Swarm 2019.2

The Swarm workflow feature is enabled by default. If you are upgrading from an earlier version you will need to update your triggers, see Upgrade Swarm.

Custom module support in Swarm 2019.1

We have upgraded the version of Zend framework used in Swarm 2019.1 to Zend 3. If you have any custom Swarm modules they will need to be updated to work in Swarm 2019.1. For instructions on updating custom modules for the Zend 3 framework, see Upgrade custom modules to work with Zend 3.

PHP and Apache version support changed for Swarm version 2019.1

We have removed support for versions of PHP older than 7.0 in Swarm 2019.1. As a result of this change, support for Apache 2.2 has also been removed. This is part of our commitment to move away from using versions of platforms that have reached End-of-Life (EOL).
Ensure that you can install a supported version of PHP and Apache before upgrading to Swarm 2019.1. For information on versions of PHP and Apache supported by Swarm, see PHP and Apache web server.

P4PHP 2019.1 or later required for Swarm 2019.1 and later

The latest version of P4PHP is included in the Swarm package, OVA, and tarball installations.

New trigger scripts added for Swarm 2018.2

The swarm.enforce change-submit, swarm.strict change-content, and swarm.shelvesub shelve-submit trigger lines were added in Swarm 2018.2, these are a prerequisite for the Swarm Workflow feature.
If the Workflow feature is enabled (default), the trigger lines must be added to the Helix server trigger table. Any earlier enforce and strict triggers must be commented out, see setup the trigger table.

New trigger script added for Swarm 2018.1

A new trigger script called swarm.shelvedel shelve-del has been added, this is a prerequisite for the new process_shelf_delete_when configurable. The trigger script must be added to the Helix server trigger table.
Swarm checks for a supported Helix server version when you install or upgrade Swarm. If a supported version of Helix server is not found the swarm.shelvedel shelve-delete trigger and process_shelf_delete_when configurable are not supported, see Helix server requirements.

Upgrade process changed

The upgrade process changed for Swarm version 2017.3 and later.

  • If you are upgrading from Swarm 2017.2 or earlier you should run the index upgrade, this ensures that the review activity history is displayed in the correct order on Dashboard, and Reviews list pages. See Upgrading Swarm for details.
  • Note

    If you are upgrading from Swarm version 2017.3 or later, the index upgrade step is not required.

Major new functionality

Improved support for Continuous Integration and automated testing
  • You can now define multiple global tests in the Swarm config.php file, global tests are run whenever a Swarm review is started or updated. For instructions about configuring global tests, see Global tests
  • Global tests can be configured with a timeout value on a per test basis. This timeout is used when Swarm connects to your test suite, see Global tests
  • You can now view multiple test results for a review revision from the Test status button dropdown, see Test status
  • You can now view the build/test status of a review revision so that you know when you should start reviewing, see Test status
  • There are a number of new special arguments that can be used when configuring automated tests for projects, see Automated testing for reviews
  • Swarm API version v10 added to support integration with CI tools, see the Testruns: Swarm Test Integration
Helix Authentication Service support
Swarm now supports authentication using the Helix Authentication Service, see Single Sign-On PHP configuration.
Automatic-creation of new users in Perforce on login
Swarm now supports the automatic-creation of new users in Perforce on login if the Helix server is configured to allow it and the user exists in LDAP. No configuration is required for Swarm.

Minor new functionality

Hover over branches to view moderators in Project page
You can now hover over branches in the project page to view the names of the moderators on that branch.
Hover over branches to view moderators in Project settings page
You can now hover over branches in the project settings page to view the names of the moderators on that branch.
New API endpoints
A number of new endpoints have been added to the API, see the Swarm API.

Known limitations

Unsupported characters in user names and group names in Swarm 2019.2 and later
Swarm does not support the following characters in user names and group names: :@{}()
Swarm support for the "Private editing of streams" feature in Helix server 2019.1 and later
Supported: stream specs can be edited in your workspace using the Private editing of streams feature and they are displayed in reviews.
Not supported: Swarm cannot commit locked stream specs.
Multiple-Helix server instances on a single Swarm instance

Issue: Swarm will lose connection to all of the Helix servers if you edit the base_url configurable value in the environment block of <swarm_root>/data/config.php. This will stop your system working.

Fix: Remove the base_url configurable from the environment block of <swarm_root>/data/config.php.

Global Dashboard does not support MFA login
Issue: You cannot login into server instances from the global dashboard if you have MFA enabled on Swarm.
Workaround: Log in to each instance individually by including the server instance name in the URL, for example: https://swarm.company.com/serverA.
Project Commits tab can fail to show some Helix server commits in the top level view
The Project Commits tab top level client view is made up of all of the branches of the project.
 
For example, Project Alpha:
 
Branch: QA:
//depot/alpha/dev/QA/...
 
Branch: Dev :
//depot/alpha/dev/...
-//depot/alpha/dev/QA/...
 
The project commits tab view is generated by processing the branches in the order that they were created in and from top to bottom for the paths in each of those branches.
For the project Alpha example above:
The first path includes all of the directories and files under //depot/alpha/dev/QA/ in the project commits tab top level view.
The second path includes all of the directories and files under //depot/alpha/dev/ in the project commits tab top level view.
The third path excludes all of the directories and files in //depot/alpha/dev/QA/ from the project commits tab top level view.
 
Result: commits made to //depot/alpha/dev/QA/ that should be shown for the QA branch are not displayed in the Project Commits tab top level view.
 
When you have a simple branch structure this can be avoided by considering this issue when you create your branches. In the example above, creating the Dev branch first and then creating the QA branch avoids the problem because//depot/alpha/dev/QA/ is not excluded from the Project Commits tab top level view.
Tip

Individual branch views display the commits correctly.

Swarm OVA installation fails with a Run p4 login2 error
Issue: Swarm OVA deployment against an MFA enabled Helix server fails with a Run p4 login2 error.
Workaround: You must run p4 login2 for a super user account that has MFA enabled before deploying the Swarm OVA. For p4 login2 detail, see p4 login2 in Helix Core P4 Command Reference.
Task Stream Reviews
Pre-commit reviews in a task stream are not yet supported.