What’s new
This section provides a summary of the notable changes in Swarm for the 2019.2 release. Full details are available in the distribution's RELNOTES.txt
file.
Important information
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.
Major new functionality
Workflow feature
The workflow feature has now been released for use in production environments.
Important
Workflow is enabled by default and can be disabled by your Swarm administrator, see workflow .
- Workflow rules
Swarm users can now create and manage workflows to ensure that changelists and code reviews in a project/branch follow the rules specified in that workflow. See Workflow overview.
A workflow is made up of a combination of the following rules (see Workflow rules for full details):
- On commit without review: determine what happens when a changelist is committed without a review. Allow the commit, automatically create a review, or reject the commit.
- On commit with a review: determine what happens when a changelist is committed with a review. Allow the commit or reject the commit unless the review is approved.
- On update of a review in an end state: stop a review from being changed if it is in a review state that is considered complete. The review states that are considered complete are set by the administrator. Allow the review to be changed, or reject the change.
- Count up votes from: define whose up votes count towards the Minimum up votes value set on the project/branch the review is associated with. All up votes count or only project member up votes count.
- Automatically approve reviews: enable automatic approval of a review when all of its voting requirements are satisfied. Never automatically approve a review or automatically approve review.
- Global workflow rules
Swarm administrators can now enforce individual workflow rules on projects/branches without an associated workflow or enforce a minimum workflow on the entire Helix Core server. For more information about global workflow rules, see Workflow global rules.
Swarm administrators can now configure specific groups and users so that they are excluded from following the workflow rules, see Workflow global rules. This applies to actions taken in the Swarm UI, the P4D command line, a P4D client, and the Swarm API.
- New Workflow trigger scripts added in 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 new Swarm workflow rules.
If the Workflow feature is enabled, 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.
Workflow caveats
Workflow trigger scripts have different functionality to the previous strict and enforce triggers
Trigger types checkenforced
, checkstrict
, and checkshelve
were introduced in Swarm 2018.2 for the Workflow feature. The workflow triggers do not support the following trigger functionality available in Swarm 2018.1 and earlier:
EXEMPT_FILE_COUNT
: When set to a positive integer, commits with a file count greater or equal to this value are exempt from enforce
or strict
verifications.
EXEMPT_EXTENSIONS
: A comma separated list of file extension. Commits with files having only these extensions are exempt from enforce
or strict
verifications.
To continue to use this functionality, you must keep your existing enforce
and strict
triggers and disable the Workflow feature. Support for these triggers will be dropped in a later release.
Improved Swarm cache
Swarm now uses a Redis cache server for improved performance especially on larger Swarm systems, see Redis server. Swarm caches data from the Helix server to improve the performance of common searches in Swarm and to reduce the load on the Helix server. By default Swarm uses its own Redis server on the Swarm machine, this is installed automatically with Swarm package and OVA installations.
Stream spec support added
Swarm now supports stream specs that are edited in your workspace using the Private editing of streams feature. If a changelist or review contains a stream spec, it will be displayed first in the Files tab with the prefix stream://, see Review display.
Minor new functionality
Pending changelist description can be updated when review description is changed
You can now update the associated pending changelist description when you edit a review description by selecting the checkbox in the edit dialog, see Edit description.
Comment mention blacklist improvements
You can now blacklist groups as well as users. Regular expressions can now be used for both user and group blacklists, see Comment mentions.
Mainline branch identification improvements
You can now use regular expressions in the mainline branch identification configurable and the project overview markdown file no longer needs to be in the mainline branch of the project, see Mainline branch identification.
Review list page improvement
When continuous integration has been configured for a project, a new tests in progress state
is available, see Reviews list.
Project settings page improvement
The Swarm administrator can now configure Swarm to allow project members to view a read only version of the project Settings page if the project is set to Only Owners and Administrators can edit the project, see Settings tab.
Perforce job links in JIRA issues improved
If you have Perforce job links configured, you can now specify a custom heading that your Perforce job links are added to, see Enabling Perforce job links in JIRA issues.
New API endpoints
A number of new endpoints have been added to the API, see the Swarm API.
Known limitations
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.
Zip file does not include files marked for Add
Files Marked for Add in pre-commit reviews and shelved changelists are not included in the zip file.
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.