Major Enhancements

#825537, #825687 (Bug #72144) Reviews can now optionally have required reviewers. A review cannot be approved until all required reviewers have up-voted the review. To aid in managing reviewers and defining who is required, a new 'Edit Reviewers' dialog has been added. The review author, perforce admins and perforce super users are always able to edit reviewers. Additionally, the following individuals may edit reviewers: - If the review is moderated, the moderators - If the review is part of a project, but not moderated, all project members - If the review is not part of a project, any authenticated user Lastly, individuals may now leave a review, make their vote required or make their vote optional by clicking their own avatar under the reviewers listing. This is in addition to the existing options to join, vote-up and vote-down.

#823254, #825263 (Bugs #67052, #67054) Branches can now optionally have moderators. If moderators are defined, only those users are allowed to 'approve' or 'reject' reviews under the branch. When a review is associated with a moderated branch: - Only moderators can approve or reject the review; they can also perform all other transitions. - Authors can move between needs-review/needs-revision/archived and can attach commits; they cannot approve or reject review (even if they are a moderator) - Members can move between needs-review/needs-revision and can attach commits; they cannot approve/reject or archive. - Users that are not project members, moderators or the author cannot perform any transitions. Note, for the author and project members, if the review is not presently in one of their permitted states (e.g.: it is rejected) they cannot transition it.

#805100, #805438 (Bug #66173) By default, reviews that are committed via the Swarm web UI will now be credited to the review author. Activity and email notifications will include both the committer and review author's details. This is a configuration option which defaults to true.

#804532, #820256 (Bug #67053) A project can now optionally specify one or more owners. When a project has owners, only the owners (as well as admin or super level users) can edit the project.

#796111, #796324, #804292, #803304 (Bug #69605) Comment boxes now support file attachments via drag-and-drop upload. To enable this feature create a "//.swarm" depot or set the depot storage base path to a location Swarm can write to.

Minor Enhancements

#834780 (Bug #72549) Updated the P4PHP binaries to be built with a patched P4API that does not reference the Heartbleed-vulnerable OpenSSL version.

#825849 (Bug #66469) The Swarm favicon is now larger.

#824751 (Bug #72388) Fixed a bug where trigger tokens were not protected from non-super users that requested JSON formatted '/about' output.

#820025 (Bug #71330) Multiple Swarm instances can now safely operate on the same machine where the address only varies by port, even if SERVER_PORT is misreporting.

#811552, #814057, #814086 (Bug #67051) Project creation can be limited to admin users by setting 'add_project_admin_only' under the 'security' config. This feature is disabled by default.

#810137, #812142 (Bug #66408) Ensured the horizontal scroll bar is always visible when viewing a change or review diff.

#805410, #805415, #805458 (Bug #72039) Upgraded Zend Framework from 2.1.4 to 2.2.6 for a number of fixes and enhancements.

#805070 (Bug #72042) Enhanced the queue status to report future-tasks separately.

#801759 (Bug #71598) Added support for GitHub style line links (e.g.: '#L123') and highlighting of linked line; additionally, if you specify a range of lines (e.g.: '#10-20'), Swarm will highlight all of the lines in the range.

#800253 (Bug #71712) Improved the configuration error message to alert the user if the data directory is unwriteable, or no php.ini is found.

#797479, #799428, #800567, #801819 (Bugs #71679, #71718) Added a new URL shortening feature. This adds a small 'bookmark' button to the file browser page. Clicking the button generates a short URL and displays it in a small popover dialog that the user can easily copy from. A short link like this will redirect the user to a (presumably) much longer address. Also added support for a dedicated short-link hostname; this is a domain to use for short links to make them even shorter. Short links are handy for email, chat, etc.

#796834, #803372 (Bugs #71521, #71738) Enhanced the trigger script to operate with in-place edits, or externalized configuration (implicit and explicit via -c config). This is helpful so that configuration can be more easily separated from the script itself.

#791347 (Bug #71159) Expose a configuration setting to allow suppressing the Reply-To: email header field. This is helpful when you don't want to expose Perforce user email addresses in email notifications.

#790928 (Bug #71396) When copying lines of text from a review or changes page, line numbers in diff no longer end up in your clipboard. All supported browsers still display the line numbers. IE still copies the line numbers if you multi-select lines.

#790472 (Bug #71366) Remove the border styles from the diff table to provide a cleaner look, and also reduce visual glitches to table borders.

#789318 (Bug #71717) Swarm now compresses JSON sent to the browser for better performance.

#789217, #789221 (Bug #66706) Upgraded jQuery from 1.9.1 to 1.11.1 for performance improvements.

#787961 (Bug #70991) Workers will effectively restart if Swarm detects the config.php file has been changed. This helps prevent the long running workers from using stale config.php settings.

#782170, 794566 (Bugs #71160, #71327) Improved the performance of the home page, particularly when there are large numbers of projects or activity events.

#781997 (Bug #70687) Display a tip at the bottom of review and change pages indicating the user can use the N and P keys to move between the changes.

#781805 (Bug #71393) Upgraded JSRender from 1.0pre to 1.0.0beta.

Bug Fixes

#833850 (Bug #72510) Fixed an issue on Safari 5.1 where comment user avatars were not being sized correctly.

#833609 (Bug #72505) Fixed an issue to ensure commits via Swarm keep the restricted or public type of the authoritative shelf.

#827517 (Bug #72362) Fixed an issue where it was not possible to @mention a user that contained a backslash (such as an AD domain user).

#826264 (Bug #72378) Fixed an issue with the job dialog automatically refreshing when attempting to select a row.

#821123 (Bug #72390) Fixed a race-condition where automated tests for a review could fail if the pending review was committed before the tests ran.

#821027 (Bug #72248) Fixed an issue where you could not change the review status of a review that was somehow stuck. Now, such a review can be transitioned to Needs Review, Needs Revision or Archive to clear the status.

#820630 (Bug #72225) Fixed an issue in Firefox where the archive comment tooltips would get orphaned.

#820120 (Bug #72391) Fixed an issue where the reviews queue would reload when the search input loses focus, even if the search value had not changed.

#820005 (Bug #71764) Fixed an issue where Safari 5.1.x would throw a JavaScript error when navigating files using the back or forward buttons.

#819959 (Bug #71459) Fixed a bug where protection table entries with spaces caused errors.

#819822 (Bug #72224) Fixed an issue where no error message was displayed for browser-to-Swarm network errors.

#814092, #824517 (Bug #64793) Fixed an issue where timezones were incorrect when Swarm was connected to a Windows p4d server.

#813797 (Bug #72064) Fixed an issue where modal cancel buttons were being marked as ARIA-hidden.

#809521 (Bug #71986) Fixed an issue with the 3D model viewer where it was looking at 0,0,0 instead of the center of the model.

#804290 (Bug #71851) Fixed a bug where the reviews page would issue excessive XHR requests, impairing browsing performance.

#800358, #801075 (Bug #72003) Adjusted avatar styles to only show the default avatars when the user's Gravatar has finished loading. This prevents a momentary flash of the default avatar that could sometimes occur if Gravatar was slow.

#799622 (Bug #71367) Swarm now normalizes the hostname specified in the config file to properly handle schemes and non-standards ports.

#799558 (Bug #71680) Swarm no longer prevents the browser from handling control/command clicks in the Swarm File Browser.

#794840 (Bugs #70317, #70295) Fixed several small issues with the file browser. Previously the handling of what controls were shown on different tabs was spread out and inconsistent. We also previously missed detecting all the cases where the tab had changed.

#792725 (Bug #65644) Fixed an issue on IE9 where the archived comments area would toggle twice the first time it was clicked, so you would need to click again.

#792034 (Bug #71138) Fixed an issue where certain special characters, like '@', '#', and '%' were escaped in email depot paths.

#790454 (Bug #70231) Fixed an issue where linking to an archived comment did not expand the collapsed archive area to scroll to the comment.

#790437 (Bug #71372) Enhance the N/P keydown listener to only handle one keydown per keypress. This should prevent issues with the focus moving further than expected.