Major Enhancements

#680316, #681228, #691940 (Bugs #66717, #65503) Code reviews are now versioned. A historic copy of proposed work is maintained when the review is updated. This allows users to see each incremental change made to a review, as well as diff between adjacent versions to the review using the new Review Timeline.

#679062 (Bug #66799) Several notable enhancements to the JIRA module. When a change is submitted or a review is created/updated, we find any associated JIRA issues, via associated jobs or callouts in the description, and ensure the JIRA issues link back to the review or change in Swarm. Further, the JIRA project list is now fetched automatically so you no longer need to hard-code it in the config.php.

#676580 (Bugs #60923, #67538) Added support for committing streams-based reviews in Swarm. With this change, it is now possible use Streams-based projects.

#668325, #680003 (Bugs #67216, 67653) Added support for viewing office type documents, such as Word, PowerPoint, Excel, Visio and rich text file formats. LibreOffice must be installed on the Swarm web server to take advantage of this feature. The Swarm OVA comes with the necessary LibreOffice components installed to enable this feature.

#667587 (Bug #66586) Added support for previewing BMP, EPS, PSD, TGA, and TIFF formats. The ImageMagick PHP extension must be installed and enabled on the Swarm web server to take advantage of this feature. The Swarm OVA comes with this extension to enable this feature.

#667207, #677868, #688353 (Bugs #64759, #65017, #67979) Swarm reviews and changes now provide a richer jobs integration. Users can add or remove job associations for changes and reviews. Swarm now allows job selection in the 'Commit Review' dialog, similar to P4V. Also, if jobs are present when updating a reviews files the jobs will be added to the review.

Minor Enhancements

#695725 (Bug #60941) Users with permissions to edit projects can now also delete them via a new 'Delete' button in the 'Edit Project' page (confirmation is required via the tooltip).

#695350 (Bug #68256) The default diff mode is now side-by-side; your last used diff mode will be remembered so this change primarily affects new users.

#692127 (Bug #68153) Swarm now includes Linux variants of P4PHP that are built with glibc 2.3.3 to support older distributions, such as Red Hat Enterprise Linux 5.9. See the INSTALL.txt for more information.

#689920 (Bug #68028) Swarm's session name now defaults to 'SWARM' for web servers running on port 80 or 443. For Swarm instances running on any other port, the session name defaults to SWARM-1234 where 1234 is the port number in use. This allow running several Swarm instances on a single server differentiating them by port and session name.

#689744 (Bug #66724) Revised icons for added, deleted and edited files. These icons are colorful with larger +, - and pencil symbols. They should make it easier to distinguish between the various actions.

#689613 (Bug #67755) Swarm can now be configured to use a custom avatar URL pattern allowing administrators to provide their own avatar server or disable custom avatars altogether. By default, custom avatars continue to come from Gravatar.

#688945 (Bug #68046) Added a goto route for full or partial Git Fusion SHA1 commits that will redirect to the corresponding changelist. e.g.: http://myswarmhost/42697a7a79

#680508 (Bug #62181) Swarm now anchors the file toolbar to the top of the window on changes/review pages so it stays in view while you are scrolling through a file.

#675826 (Bug #67413) Added support for emoji shorthand (e.g. :smile:); see for the full list.

#672699 (Bug #66610) Users can now filter the history tab by user when browsing.

#672363 (Bug #63199) Added a apple-touch-icon for iOS (and apparently Android) devices. Just one size (144x144) for simplicity.

#671993 (Bug #67389) Restyled the error pages to incorporate our new mascot Bizzy Heisenbug and be more scalable/responsive.

#669938, #693013 (Bugs #66534, #68206) Swarm no longer emails the user who commented or performed a review state change. Other interested parties are still emailed. Additionally, editing a review's description no longer generates an email.

#666778 (Bug #67154) Added a new 'prevent_login' configurable to specify a list of Perforce users that are not allowed to log in to Swarm.

#665482 (Bug #67108) We now collapse multiple occurrences of certain characters (e.g.: ASCII lines) in the subject lines of change notification emails.

#664426 (Bug #67065) Added hooks for previewing non-web-safe file fomats. A custom module is required to add support for other formats. In the module's bootstrap method you can grab the format manager and add a new handler. See the Imagick or LibreOffice modules for example usage.

#664389 (Bug #65015) Added a 'My Reviews' filter to the review queue to show only reviews the current user is participating in.

#661459 (Bug #66679) Improve configuration error page displayed if PHP-specific misconfigurations are detected (such as an unsupported PHP version, or missing PHP extensions). All detected misconfigurations are now shown in a list. Also, the path to all php ini files is shown to ease administration.

#660436, #669261 (Bug #66573) Email notifications from Swarm now include additional email headers, 'X-Swarm-Host' and 'X-Swarm-Version'.

#657062 (Bugs #66598, #66599) We now show the text of comments and the description of file updates on the review history tab.

#656605 (Bug #66931) Added the ability to set the DATA_PATH via environment variable, SWARM_DATA_PATH. This can facilitate hosting multiple Swarm instances using a single Swarm installation.

Bug Fixes

#704590 (Bug #68710) Queueing tasks will no longer log a PHP warning in the Apache error log when multiple tasks are added in the same millisecond.

#703451 (Bug #68531) Fixed an issue where Swarm would display a 404 error if attempting to access the Apache info or status modules' handler paths. Swarm now detects if those modules are enabled, and if so, allows access to their paths.

#696121 (Bug #67233) Fixed an issue when using Safari where PDF documents would be cut off strangely at the bottom of the window.

#696076 (Bug #68041) Fixed an issue when using Internet Explorer where hitting enter in a text field would erroneously trigger nearby buttons.

#691483, #692576 (Bug #68129) Swarm no longer "linkifies" deleted user IDs when showing the author of a change, comment, activity, etc.

#689915 (Bug #68056) Fixed a bug where URLs using IP addresses were not being linkified.

#689661 (Bug #68044) Fixed issue where Swarm would fail if the 'json' or 'session' PHP extensions were not installed; Swarm now checks for the presence of these extensions.

#688137 (Bug #68043) Fixed .htaccess rules to allow viewing of documentation when PHP is not installed.

#686394 (Bug #67908) Fixed an issue where older systems (e.g.: RHEL/CentOS) would not recognize a form of regular expression named capture groups; Swarm now uses a more backwards-compatible form.

#686358 (Bug #67905) Fixed an issue where older systems (e.g.: RHEL/CentOS) would fail to fetch activity or reviews due to unexpectedly treating the ID as a float instead of an integer.

#685439 (Bug #66446) Fixed an issue where the initial activity import could result in out of order activity records.

#684802 (Bug #67816) Fixed an issue where token-based auth (alone) wouldn't work for deploy and automated test integration if require_login was enabled.

#681666 (Bug #67720) Fixed an issue where it was possible to get an unexpected connect exception when accessing Swarm with a partially expired session.

#681586 (Bug #67507) When logging warnings and errors, we no longer include context. Large values and excessive escapement made context useless.

#680229 (Bug #67669) Fixed a race-condition where committing through Swarm could fail if the change was renumbered upon submit.

#680188 (Bug #67652) Fixed display issues exposed in Firefox when navigating files.

#679223 (Bug #67616) Fixed validation of group names. The rules we were enforcing in Swarm did not match the rules enforced by the server.

#678458 (Bug #67592) Fixed a bug that prevented the minified consolidated web assets from being included in the distribution.

#676317 (Bug #67445) Fixed an issue where the Comments 'Archive' and 'Restore' buttons weren't labelled for screen readers.

#673297 (Bug #67431) Fixed a bug where Swarm only matched the first keyword and stopped. If someone used the [review] keyword at the start and end of their description this would have left one behind.

#671254 (Bug #67342) Fixed a bug where commenting above a padding line caused a comment indicator to appear on the padding line.

#671092 (Bug #67126) Added roles and ARIA labels to fix an issue where the All Projects/ My Projects dropdown was undiscoverable by NVDA, and where the Add Project Link wasn't being described at all by NVDA.

#669528 (Bug #67262) Fixed a bug where the display of ignored whitespace on context lines in Swarm was inconsistent with p4 diff/P4Merge if you used the 'Show Full Context' feature.

#668045 (Bug #67214) Improved handling of purged files in diff. We no longer attempt to show or diff purged files.

#668043 (Bug #67162) Fixed a bug where searching within Help was not working.

#667916 (Bug #67195) Improved Approve & Commit error handling to ensure the attempted change is deleted on failure.

#667915 (Bug #67106) Fixed an issue where the pdf preview area was very small on Firefox and Internet Explorer.

#667770 (Bug #67185) Fixed an endless loop that could occur when Swarm attempted to obtain a client to use from its client pool if file permissions were invalid.

#667226 (Bug #67166) Fixed an issue in Swarm Jobs Search where it would still reload your query on search blur even after you had just loaded the query using the enter key.

#666601 (Bugs #65684, #67055) Fixed an issue where using the back button on a Job page would take you back to search page with the previous search filled into the field, but not properly filtered in the results.

#665678 (Bug #67210) Fixed a bug where a changelist description that had a numbered list item could be linkified if the previous line ended with "change".

#657378 (Bug #66826) Fixed a bug where avatar selection was not consistent when using the Suhosin version of PHP. This is because srand() is disabled for security reasons.