Minor Enhancements

#1429617 (Bug #87938) Administrators may now set $config['environment']['external_url']. This setting allows generated URLs to point to a custom Swarm host, including a specific schema and port number, in case Swarm is being run in a complex environment. Example: 'external_url' => 'https://swarm.example.com:8443'

#1416420 (Bug #87634) Increasing Swarm API version to "v3" because of new functionality.

#1412045, #1417249, #1427139 (Bugs #79296, #86783, #87913, #88054) Comments API added which allows users to list, create, and edit comments through the Swarm API. This also enables flagging comments as tasks and archiving of comments. In addition to the comment "body", the parameter "topic" is required when creating a comment, and should look like this: - For changes: changes/1234 - For reviews: reviews/1234 - For jobs: jobs/job001234 Comment attachments, votes, likes, and file- and line-level comments are not supported in this initial version.

#1417855 (Bug #86453) Show the group id below name on "Groups" listing page if they differ.

#1417297, #1429100, #1427946, #1429616, #1430908, #1434985 (Bugs #85030, #87887, #88128, #87622, #88326) Make Swarm behave more consistently when using a BaseURL configuration. Under the 'environment' configuration key, a new 'base_url' key allows you to define which directory Swarm lives in. Some web server configuration changes are necessary to ensure that Swarm is actually reachable at the defined Base URL. Additionally, for calls to $.ajax() that do not need explicit baseURL logic, a new option has been added to the prefilter. You can specify 'skipBaseUrl: true' to avoid double-encoding of URLs.

#1400125 (Bugs #86718, #86719) Added 'worker.loop' event fired periodically during the worker lifetime cycle (before the task event).

Bug Fixes

#1433837 (Bug #88290) Project Add action now explicitly passes P4Admin to the blank project object. This fixes a rare situation where the browser could wait indefinitely when trying to load the Add Project form.

#1427904 (Bug #87793) Search now works for SSL-enabled Perforce servers. The P4TRUST path in search.php is now set to the trust file under the data directory. This will work provided that Swarm has already auto-trusted the server and generated this file.

#1427343 (Bug #77474) Fixed scaling issue when diffing images in specific versions of Firefox and IE.

#1427066 (Bug #84960) Deleted projects are no longer shown in search results.

#1425846 (Bug #88069) Fixed Projects API bug that accidentally erased member lists when editing a project and a list of members was not provided.

#1418164, #1424799 (Bugs #87821, #87869) Fixed Groups API to ignore Swarm-managed project groups. Groups that begin with "swarm-project-" are managed by Swarm and should only be modified using the Projects API.

#1417924 (Bugs #86836, #87590, #87591, #87617) Refreshing configure-swarm.sh to provide a better user experience. Also fixes the way configure-swarm.sh generates cronjobs so that they work better with Base URL configurations.

#1417831 (Bug #84762) Removing oversized attachments is now possible. Previously there was a small problem with the way error state was detected that prevented clicking the "X" icon.

#1416134 (Bug #85907) Searching by keywords fixed for values such as usernames that happened to contain a dot.

#1414580 (Bug #85256) Improved validation of branches in project configuration. Swarm now produces a human-friendly error if the path contains null directories ('//depot/main//branch') or relative paths ('.' and '..').

#1413309 (Bug #87640) Small fix for an anonymous function in the Emojify filter. Its syntax is now compatible with older versions of PHP.

#1408661 (Bug #86458) Unknown fields passed to PATCH methods in the Swarm API are now silently ignored.

#1400199 (Bug #86950) Older versions of the 'zip' command do not support the long flag '--symlinks', so Swarm now uses the shorter '-y' flag when archiving files for download.