Major Enhancements

#1024336, #1027042, #1035289, #1035631, #1039648 (Bug #66715) Added support for localization. User-facing strings now run through a translation component that supports string replacement, escapement and pluralization. The default and fallback locales can be set in the configuration file. The user's locale is detected from the browser's HTTP_ACCEPT_LANGUAGE header automatically (this behavior can be disabled). Both the web browser and the web server support translation. The same methods are available in each environment and behave in the same way. The same messages are available in both contexts and whichever locale is configured or detected on the server will be selected in the browser.

#993239, #1003694, #1029826, #1034069, #1038235 (Bug #71596) Files and folders can now be downloaded as ZIP archives. Any depot path can be archived, however, it must not be larger than the archives => 'max_input_size' setting. The default value for this setting is 512 MB. Archives are built in the background and a progress bar is presented to the user as files are synced and compressed. Each archive is cached for 12 hours (by default) before being erased. This ensures that subsequent requests to download the same archive go quickly. The archives => 'archive_timeout' setting controls how long a process can spend building a ZIP archive (default is 30m).

#1034946, #1035427, #1039713 (Bugs #66965, #77519) We now limit the number of files displayed in a changelist. Previously if you viewed a particularly large change (many thousands of files) Swarm might run out of memory. Now limit the number of files displayed to 1000 (by default). This can be adjusted via the p4 => 'max_changelist_files' setting. If the P4D server is 2014.1+ the number of files will be limited in Perforce. Otherwise they will be limited in Swarm. In the latter case, Swarm can still run out of memory on large changes. However, the threshold has been raised because the list of files is trimmed fairly early.

Minor Enhancements

#1038843 (Bug #77610) Enhanced JIRA integration to better find references to issues when they are surrounded by punctuation. Specifically, Swarm now detects JIRA issues that are wrapped in round brackets '()' and curly braces '{}'.

#1033167 (Bug #78159) Improved the XHProf module to automatically clean-up old report files. Previously if XHProf was enabled, the number of log files would continue to grow over time. Due to their large size these files could end up consuming a significant amount of disk space. Note: XHProf is a profiler developed by Facebook.

#1011531 (Bug #77468) Added a reviews => 'commit_timeout' setting to provide control over how long processes can spend submitting files to Perforce. By default this is set to 30 minutes.

#1006502 (Bug #67720) We now detect errors connecting to Perforce and report them as 503 (service unavailable). This should assist in debugging p4 port, user and password problems.

#1003872, #1005554 (Bug #78347) Minor visual refresh. User avatars now appear rounded. Rows in tables no longer appear with alternating background colors. These changes are purely aesthetic.

#1001768, #1006500 (Bug #77277) Added a notice to the top of the home page if there are no workers running. This should assist in debugging a common server configuration problem.

#991098 (Bug #76671) Improved the rules governing review state transitions. Authors are now permitted to approve or reject their own reviews if they are branch moderators.

Bug Fixes

#1039199 (Bug #74656) Fixed an issue where version 1.1 of the web-services API added a new required reviewers field and erroneously made it available to version 1.0 of the API. We no longer accept required reviewers on v1.0.

#1035544, #1035560 (Bug #66917) Fixed an issue that can cause a commit to be partially processed. In some cases if a user unshelved files in a review and one or more of those files had pending resolves, Swarm would be unable to remove files from the review and would abort processing the commit. If the server version is 2014.2+, we now use the -f flag to ensure that we are able to remove shelved files. Additionally, we ignore the error that will occur if this situation arises on an older version of P4D.

#1033935 (Bug #78332) The blame button is now disabled for files that have no content. Previously an error would occur if blame was used on an empty file.

#1022486 (Bug #76571) Fixed javascript error occurring when switching to History tab while viewing a file in Swarm.

#1022324 (Bug #77803) Removed legacy rewrite rules for adding tasks to the queue. These rules were left there temporarily for backwards compatibility. Currently, the tasks are added to the queue via posting to http://<swarm-host>/queue/add/<swarm-token> that has a separate rewrite rule.

#1019647 (Bug #77678) Fixed a bug where the swarm-trigger's optional 'strict' and 'enforce' modes did not work against a unicode enabled server.

#1016421 (Bug #71596) Fixed an issue where progress bar status text was not legible until the bar was at least as wide as the text. Now the text appears in black over the background and white over the finished portion of the progress bar.

#1011943 (Bug #78436) Fixed a performance regression where the projects sidebar could take a long time to load. This was most prominent when there was a bad link between Swarm and the Perforce server. In some cases, the projects sidebar now loads 8x faster.

#1006678 (Bug #77394) Improved validation of branches in project configuration. Previously the server would accept branches that had no paths defined. Now the server-side validation matches the client-side validation and such branches produce an error.

#1003822 (Bug #78437) Attempting to access the '/view' or '/download' URIs for a folder (not a file) now produces a 404 response.

#997596, 1015136 (Bug #77206) Minor aesthetic fixes. Adjusted the position of popover and tooltip arrows when the browser's view is magnified. Improved the contrast of keyboard shortcut hints.