What’s new
This section provides a summary of the notable changes in Swarm for the 2018.3 release. Full details are available in the distribution's RELNOTES.txt
file.
Important information
Custom module support in Swarm 2019.1
We are planning to upgrade 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. Custom module upgrade instructions will be included in the Swarm 2019.1 documentation.
Updated: PHP version support change from Swarm version 2019.1
We are planning to remove support for versions of PHP older than 7.0 in Swarm 2019.1. As a result of the change to PHP 7.0, support for Apache 2.2 will also be removed in Swarm 2019.1. This is part of our commitment to move away from using versions of platforms that have reached End-of-Life (EOL).
This means that you will need to ensure that you can install PHP 7.0 and Apache 2.4 when Swarm 2019.1 becomes available.
P4PHP 2018.2 or later required for Swarm 2018.3
P4PHP 2018.2 is included in the Swarm 2018.3 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 new Swarm Workflow technology preview feature.
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.
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
Multiple-Helix Core Server instances on a single instance of Swarm
Typically an organization only requires a single Helix Core Server but there are situations when you might have multiple-Helix Servers in your organization. You can now connect a single Swarm server instance to multiple-Helix Server instances. You can navigate directly to each instance in Swarm or use the Global Dashboard to navigate to Helix Server instances and reviews. For instructions about configuring Swarm to connect to multiple Helix Server instances, see Multiple-Helix Server instances.
Global Dashboard
If Swarm is connected to more than one Helix Core Server instance, your Global Dashboard displays a list of reviews that you may need to act on for each of the Helix Server instances connected to Swarm. The global dashboard can be filtered to display only reviews from a particular Helix Server instance, project, authored by a particular user, or matching a role. For an overview of the Global Dashboard, see Global Dashboard.
Helix SAML authentication
Helix SAML supports authentication using SAML 2.0 for Helix Core Servers. If your Helix Server is configured for Helix SAML, Swarm now supports authentication using SAML 2.0. For instructions about configuring Swarm for Helix SAML, see Helix SAML authentication PHP config.
Minor new functionality
- Dashboard Refresh button
- Your dashboard now displays a Refresh button when new content is available for your dashboard, see Refresh button.
- Queue info tab on the System information page - Admin and Super users only
- The new Queue info tab page enables you to check the number of tasks and future tasks that are in the queue. You can also manually start workers and temporary workers from the tab. For more information about the Queue info tab, see Queue Info.
- Display full names
- Swarm can now be configured to display full user names instead of userids. When configured, full user names are displayed on the Project settings page, the Group settings page, the Commits page, and the Edit reviewers dialog. For instructions on how to configure Swarm to display full user names, see Display full names.
- Global Dashboard improvements: for an overview of the Global Dashboard, see Global Dashboard.
- New log in link: Swarm has a new log in link in the Global Dashboard toolbar. This is in addition to the existing Helix Server instance log in buttons in the sidebar.
- Helix SAML log in: Swarm now supports Helix SAML log in from the Global Dashboard.
- CSS customization when Swarm is connected to multiple-Helix Server instances:
- If Swarm is configured to connect to more than one Helix Server instance, Swarm can be customized for each of the Helix Server instances it is connected to. This gives users an simple visual prompt as to which Helix Server instance they are currently viewing in Swarm. For instructions on customizing Swarm for individual Helix Server instances, see CSS customization when Swarm is connected to multiple-Helix Server instances.
- Custom log out redirect
- Swarm can now be configured with a custom log out URL. When configured, Swarm users are automatically redirected to the custom URL after they have been logged out of Swarm. For instructions on how to configure a custom logout URL, see logout_url.
- New API endpoints
- A number of new endpoints have been added to the API, see the Swarm API.
Technology preview features
Warning
Technology preview features:
Technology Preview features are currently unsupported, might not be functionally complete, and are not suitable for deployment in production. Technology preview features are subject to change and may be removed before they become fully supported features.
These features are provided to the customer to solicit interest and feedback, with the goal of full support in future releases. Customers are encouraged to provide feedback and functionality suggestions for Technology Preview features before they become fully supported.
Workflow
Workflow is a technology preview feature and is disabled by default.
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 - Technology preview feature.
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
Possible performance issues on large Swarm systems
The Workflow technology preview feature has not been fully optimized and tested on Swarm systems with a large number of projects, branches, and paths.
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 technology preview feature. The workflow triggers do not support the following trigger functionality available in Swarm 2018.1 and earlier:
-g group
: Specifies a group to exclude from enforce
or strict
verifications. Members of the group (including sub-groups) are not subject to enforce
or strict
verifications.
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 leave the Workflow technology feature disabled.
Known limitations
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 P4 Command Reference.
Task Stream Reviews
Pre-commit reviews in a task stream are not yet supported.