Major Enhancements

#647347 (Bug #66023) Replaced the grab/release review feature with multiple reviewers. It is no longer possible to grab or release a review. Instead, anyone other than the auther who participates in a review (e.g. comments on, changes the status of, pushes code to, etc.) becomes a 'reviewer'. Swarm now displays a row of reviewer avatars beneath the description of a review. The avatars are preceeded by the text 'Reviewers' and are aligned right. Users can click to add themselves to a review. On the reviews queue, the 'Reviewer' column has been removed and a new 'Reviewers' column has been added. The reviewers column shows a count of reviewers and, when hovered, lists the names of all reviewers in a tooltip. Similarly, the assigned/unassigned filter has been replaced with a has-reviewers/no-reviewers filter.

#647277, #647325 (Bug #65934) Swarm now requires a license to run against a licensed Perforce server. Without a Swarm license, Swarm's functionality is not restricted in any way, however a license violation notification appears for every page. Swarm does not require a license to run against an unlicensed Perforce server. If Swarm is licensed for fewer users than the Perforce server, only members of the 'swarm' group, or a sub-group, are allowed to login to Swarm. If a non-member attempts to login and the swarm group is not already at capacity, an attempt will be made to automatically add them to the group so long as: security => disable_autojoin hasn't been set to true (by default it is false). Auto-join is not available on Perforce Server versions prior to 2012.1. In that case it is akin to auto-join being disabled and Swarm will handle the login failure gracefully. Contact [email protected] to purchase a license or start a free trial.

#645705, #646629, #647327 (Bugs #63686, 65936) Swarm now has additional trigger types for review enforcement and strict content checking. The '-t enforce' type enforces that submits are associated to an approved review. The '-t strict' type goes further and ensures that the content being submitted matches the content of its approved review. Using '-g <group>' with either allows an exempt user group that isn't subject to the check. See the documentation on triggers for further information.

#645011, #645217 (Bugs #60966, #63100) Swarm can optionally act as a review daemon, emailing notifications about changes to paths that users have expressed interest in via reviews entries in their user form; see the documentation on email notifications.

Minor Enhancements

#652213 (Bug #66450) Swarm pages now include meta information that inform Internet Explorer to always use the latest document standards when rendering. This prevents users from accidentally running Swarm in Compatibility Mode, which is not supported.

#650691 (Bug #65055) Swarm now supports additional browser versions: Apple Safari 5.1+ and Microsoft Internet Explorer 9.

#648677 (Bug #66005) Added logic to automatically upgrade review records anytime they are saved. This is necessary to accommodate changes made to review records since 2013.1.BETA/629891.

#648653 Added .ico files to the list of 'viewable' (browser-safe) image file types.

#648129, #648274 (Bug #66473) The Swarm virtual appliance (OVA) is now based on Ubuntu 12.04.2 LTS. Connections to SSL-enabled Perforce Servers is now possible. The supplied config.php file contains more default entries to make customization easier (logging level, notifications to honor P4 reviews). PHP upgraded to 5.4.15 and is now available in the path.

#648004 (Bug #66467) Swarm now supports a facility for automated deployment for code reviews. When configured, a 'Try it out' button will appear on code reviews so that reviewers can run the code with minimal effort. This facility works very much like the automated tests integration. You can optionally specify a 'deploy' url and can pass it paramaters such as {change}, {status}, {review}, {project}, {branch}, {success} and {fail}. Everytime a code review is started or its files updated, the deploy url will be called. If the build works, your deploy script simply requests the {success} address and includes a 'url' get or post parameter. If the build fails, your deploy script can optionally request the {fail} address. Including a failure url parameter is optional but supported.

#647030 (Bug #66255) Changed the title for the personal activity stream from 'Activity' to 'Followed Activity'.

#646877 Removed the 'Re:' prefix from comment email subjects. They were interferring with threading in Gmail.

#646335 (Bug #66376) For Perforce activity initiated from Swarm, the Perforce Server log now correctly shows the client as Swarm instead of P4PHP.

#645421 (Bug #66365) Users can now associate additional submitted changes to an existing review.

#645245 (Bug #65597) Update the included P4PHP binaries from 2013.1/617119 to the latest patched version (2013.1/644389), which includes a crash fix.

#642465 Added two links to the committed change on the review page. One link is in the byline: '... committed 2 days ago in 54321' (the change number is a link). The second link is left of the add/edit/delete file count. Previously Swarm showed the change number in this location, but it was not a link.

#640209 (Bug #65894) From the Reviews page, Users can click the review state icon to go to the review detail page.

#640072 (Bug #65935) Swarm can now properly operate behind a forwarding Perforce replica. #639765 The Swarm trigger now tries to use 'wget' first, then 'curl', as 'wget' is more common. Also modified added the -o flag for displaying its trigger table entries.

#639202, #639414, #639415, #639426, #647014, #647348 (Bug #65937) JavaScript performance improvments were made to fix issues around logging in and commenting when having many files expanded. On a change with 20,000 lines of code, Chrome was taking 140 seconds to log in; now it takes under a second to log in or comment. The expand all on that change was taking around 20 seconds in Chrome, but now takes about 3 seconds.

#637198 Renamed comment 'close/reopen' to 'archive/restore'.

#636834 (Bug #64168) A notice is displayed if there is no activity to display.

#636826 (Bug #66031) Swarm now allows ticket based login for end-users.

#636565 Users @mentioned in change descriptions or comments were not previously notified.

#634561 Don't send email notification for passing tests unless they were previously failing.

#634313 (Bug #65893) Searching on the review page is now case-insensitive.

#633930 Swarm now shows the 'committed' icon for reviews that are both approved and committed. This is just one more visual clue that the review you are looking at is committed.

#630853 (Bug #65040) Swarm now has a new logo; ooh, ahh.

#620870 (Bug #65042) Improve the layout for editing a Swarm project.

Bug Fixes

#652570 (Bugs #64063, #65566, #65711) Dates and times of committed changes and created/updated jobs shown on various Swarm pages (Change, Changes, Job, Jobs, Review) were incorrect if the user's client machine was in a different timezone than Swarm and/or the Perforce server.

#652515 (Bug #65637) IE10 failed to load a single file change if your page first loaded with a tab other than Files, such as Comments or History.

#651899 (Bug #66551) The undocumented activity delete action would not function when using the -m <max> argument.

#651855 (Bug #66540) If require_login was enabled, console actions would not function.

#651312 (Bug #66593) Web-safe images were not being properly displayed if their filename extension was in upper case.

#647388 (Bug #65304) Branches with multiple paths did not map correctly into the project's file's branch folder.

#647380 (Bugs #65525, #65555) Filtering the activity or the review queue too quickly would result in the toggled filter buttons being out of sync with the actual filtered content.

#647349 (Bug #65831) Searching for jobs using an invalid field would cause an HTTP-500 error.

#646245 (Bug #65581) Logging in would always redirect you to the homepage instead of refreshing the current page if the config.php setting require_login=true was set.

#645363 (Bug #65053) The changes pages would show up blank when navigating to them using your back/forward buttons in your browser.

#645356 Made the 'already committed' change selector dialog work even if the current change has no base path defined. Previously, if there was no base path Swarm would report a 500 error.

#645338 Fixed an issue where the review state menu was inoperable if a commit was underway. This was happening because Swarm polls for commit-status every second and rebuilds the menu. Now, Swarm only rebuilds the menu if there is new data.

#645255 (Bug #65051) Avatars' height could be slow to render; Swarm now makes avatars take up their proper space before they are loaded.

#642636 (Bug #65052) Browsing history against a remote depot incorrectly would report 'no matching changes'; Swarm now correctly reports that change details are not available.

#640153 (Bug #64605) Email notifications would show occasional signs of corruption.

#638212 (Bug #66076) Invalid UTF-8 characters in a Perforce user name could prevent the add/edit project functionality from working correctly; Swarm now filters out invalid UTF-8 characters.

#637913 (Bug #66053) Swarm would not warn if the P4PHP extension was missing or not loaded; it now displays a message with a link to the documentation on how to configure it.

#637871 (Bug #66073) Authentication triggers that outputted additional text could prevent Swarm from processing the login correctly; Swarm is now more tolerant of "noisy" authentication triggers.

#637643 (Bugs #65236, #65474, #65491) Empty paths, embedded wildcards or non-existent depots in a project's branch definition would cause an error at the project's files page; these scenarios are now guarded against during entry.

#636855 (Bug #66021) Swarm would duplicate activity if activity occurred after its triggers were provisioned, but before any workers were provisioned.

#636427 (Bug #65632) If the user's ticket expired, an error to be shown the first time a page was shown after session expiration.

#635184 (Bug #65978) Browsing files for a project produced 404 errors due to malformed URLs in certain environments.

#634443 (Bug #64376) Collapsing comments in inline mode wouldn't work correctly in certain scenarios.

#633171 (Bug #65558) Under certain circumstances with user auto-creation, new users could not log in, due to the user form-commit trigger not firing; Swarm now handles this situation properly.

#632803 (Bug #65567) Swarm would incorrectly display a caret on the review state button if you weren't logged in.

#632794 (Bug #65833) The blame button would dissapear when using the view or download button in the file browser.

#631059 (Bug #65790) Plain text files were inappropriately syntax-highlighted. #630180 (Bug #65549) Line numbers could be duplicated in browse files view after revisiting the page.