Release Notes for Helix Swarm Version 2022.1 Patch 4 Introduction Helix Swarm (hereafter referred to as "Swarm") enables collaboration and code review for teams using Helix VCS that will help your teams ship quality software faster. This document lists all user-visible changes to Helix Swarm for Release 2022.1 Patch 4. Perforce numbers releases YYYY.R/CCCCC, e.g. 2022.1/123456. YYYY is the year; R is the release of that year; CCCCC is the bug fix change level. Each bug fix in these release notes is marked by its change number. Any release includes (1) all bug fixes of all previous releases and (2) all bug fixes of the current release up to the bug fix change level. The most up to date version of these release notes can be found here: * http://www.perforce.com/perforce/doc.current/user/swarm_relnotes.txt Please send all feedback to support@perforce.com. --------------------------------------------------------------------------- Documentation Swarm Release 2022.1 Patch 4 documentation is included in the distribution under the "public/docs" folder. The documentation can be accessed from within Swarm from the "Help" icon in the toolbar when you are logged in. Additionally, the documentation is available online: * http://www.perforce.com/manuals/v22.1/swarm Supported Client Browsers Swarm supports the following client web browsers at the latest stable browser version: * Apple Safari * Google Chrome * Microsoft Edge * Mozilla Firefox We recommend the use of the latest stable version of the browsers listed above for the best experience when using Swarm. Other web browsers might also work, including prior, development or beta builds of the above web browsers, but are not officially supported. Swarm requires that JavaScript and cookies are enabled in the web browser. Installation and Supported Platforms Please see the installation section of the documentation: https://www.perforce.com/manuals/v22.1/swarm/Content/Swarm/chapter.setup.html Packages are available for Ubuntu 18.04/20.04, CentOS 7 and Amazon Linux 2. For RHEL based distributions, we recommend the latest supported versions of those platforms (so 7.9 or 8.5). Support for Ubuntu 16.04 has been dropped from release 21.1 onwards. Upgrading from earlier versions Please see the upgrade section of the documentation: https://www.perforce.com/manuals/v22.1/swarm/Content/Swarm/chapter-setup-upgrade.html License Please see the separate "license" file, a peer to this file, or: https://www.perforce.com/perforce/r22.1/user/swarm_license.txt Known Limitations Review Page Some review page features are not yet supported by the new review page preview. This will be addressed in a later release of Swarm. In the meantime, if you need to use any of the unsupported features, switch back to the original Swarm review page with the Preview toggle. Task Stream Reviews Pre-commit reviews in a task stream are not yet supported. Swarm OVA installation fails with a Run p4 login2 error Issue: Swarm OVA deployment against an MFA enabled Helix Server fails with a Run p4 login2 error. Workaround: You must run p4 login2 for a super user account that has MFA enabled before deploying the Swarm OVA. -------------------------------------------------------------------------- Upgrading from Swarm 2019.1 and earlier Swarm 2019.2 introduced a Redis in-memory cache to improve performance and reduce the load on the Helix Core server. This replaces the file-based cache that was previously used by Swarm. On Swarm systems with a large number of users, groups, and projects, the initial population of this cache can take some time. If you have a large Swarm system you should read through the Redis section of the documentation: https://www.perforce.com/manuals/v22.1/swarm/Content/Swarm/admin.redis.html -------------------------------------------------------------------------- Upgrade process for 2017.3 If you are upgrading from Swarm 2017.2 or earlier you should run the index upgrade, this ensures that the review activity history is displayed in the correct order on the Dashboard, and Reviews list pages. This step is only required the first time you upgrade your Swarm system to 2017.3 or later. Subsequent Swarm upgrades do not require the index to be upgraded. If this is a new Swarm installation, the index does not need to be upgraded. To upgrade the index, log in as an admin or super user and visit: http://SWARM_HOST/upgrade Please see the upgrade section of the documentation: https://www.perforce.com/manuals/v22.1/swarm/Content/Swarm/chapter-setup-upgrade.html -------------------------------------------------------------------------- Important Notices We are deprecating APIs older than v9, with a plan to remove them from Swarm in the 2022.2 release. We recommend that anything that uses the Swarm APIs is updated to use at least v9 by then. v9 is the latest complete set of APIs. The v11 APIs are not yet complete, and might undergo refinement in the upcoming releases. We have removed support for versions of PHP older than 7.2 in Swarm 2022.1. We have dropped support for CentOS 8. This is part of our commitment to move away from using versions of platforms that have reached End-of-Life (EOL). In Swarm 2020.2, we have changed the default batch size for results returned on the reviews list page, from 50 to 15. This should mean results are returned to the user faster. However, if users have large screens then multiple requests will be made to the server to populate the entire page, which might impact overall P4D server performance. See the filter-max configurable in the documentation if you need to configure this. The Zend Framework was forked to the open source Laminas project, and Swarm was changed to use this in 2020.1. If you have existing custom Swarm modules created for Swarm 2019.3 or earlier, you must update them to use the Laminas framework. This means that you will need to ensure that you can install PHP 7 or greater before you install Swarm 2019.1 or greater. -------------------------------------------------------------------------- Major new functionality in 2022.1 Patch 4 Bug #109012 The "p4 groups" call checks if a group exists on the Helix Core Server. This was causing a high lock contention. The "p4 groups" call is now optimized to reduce server load. -------------------------------------------------------------------------- Minor new functionality in 2022.1 Patch 4 #2311397 (Bug #110908) When there are a large number of groups, the index size of the activity feed can become excessive. A new option enables you to reduce the index size by no longer tracking certain activities in the activity feed. -------------------------------------------------------------------------- Major new functionality in 2022.1 Patch 3 #2301077 (Bug #108485) The links to JIRA issues are now correctly linkifyed from the review page. #2295479 (Bug #109396) In the review page, you can now view side-by-side diffs for PDF and Office files. -------------------------------------------------------------------------- Minor new functionality in 2022.1 Patch 3 Bug #106657 The default setting of the emulate_ip_protections configurable in the SWARM_ROOT/data/config.php file is now set to false. With modern Helix Core Servers, this is no longer required as it can cause inferior performance in environments with complicated protection tables. However, if required you can set the emulate_ip_protections configuration item to true. #2302988 (Bug #111046) The WebLinks section in JIRA is updated when a submitted change description is edited. #2299242, #2297695 (Bug #110664) You can now mark a comment as read with a single click. #2298002 (Bug #110959) In the review page, when you add a job to the review, the list of Perforce jobs is filtered by the project that the review belongs to. #2292020, #2291343, #2291343, #2291326 (Bug #108675) In the review page, you can now re-calculate the project membership from the Refresh Projects option in the Review actions button. #2291997, #2293332, #2296169, #2296945 (Bug #100292) You can now send all comment notifications immediately from the review page. -------------------------------------------------------------------------- Bugs fixed in 2022.1 Patch 3 Bug #111162 Jira links are now visible on the preview review page. Bug #110716 Links to users with double quotes in their user name are now created correctly. #2304998, #2304998 (Bug #106422) The log data for a Helix Core Server instance in a Multi-P4D system was some times written to the wrong log file. This has now been fixed. #2302416 (Bug #111146) Attachment thumbnails are now displayed correctly for all Helix Core Server instances in a Multi-P4D system. #2301873 (Bug #110624) The prevent_login configurable in the SWARM_ROOT/data/config.php file now works correctly for mixed case user names. #2301737, #2297907 (Bug #109027) When the display_fullname configurable is set to true in the SWARM_ROOT/data/config.php file, the collapsed icons no longer display the user names incorrectly. #2300265, #2300249 (Bug #111101) The Time Display information about how long ago events happened is now correctly translated in non-English locales. #2299020 (Bug #110129) When using the Safari web browser, the list of files remains collapsed when navigating between files in the review page. #2296208 (Bug #110924) Private projects that were visible to non-project members in the review summary has been fixed. -------------------------------------------------------------------------- Major new functionality in 2022.1 Patch 2 #2292671, #2292656, #2292568, #2292074 (Bug #110646) The diff colours used in the review page have been changed to make the text more readable. Previously, the combination of diff colours and syntax highlighting was causing readability problems. #2285869, #2284645, #2279851 (Bug #109253) You can now open a file in a new window from the new review page. #2284127 (Bug #108390) You can now view image files on the new review page. A slider on the image enables you to move between the old and new version of the image. #2281887 (Bug #100302) You can now mark all comments as unread on the new review page. #2281887 (Bug #100300) You can now mark all comments as read on the new review page. -------------------------------------------------------------------------- Minor new functionality in 2022.1 Patch 2 Bug #102077 Added an API to mark a file in a review as read. #2288369 (Bug #110740) TCL syntax highlighting is now supported. #2287571, #2285193 (Bug #108429) Configuration options for which users are included in @mention drop downs on the new review page are now being honored. #2287449 (Bug #109679) You can now resize the file list width on the review page by dragging the panel divider. #2286957, #2286664 (Bug #110622) Support has been added for displaying vsdx, dotx and odt files. #2281978 (Bug #110532) There is now an API endpoint to mark all comments as read or unread on a review. -------------------------------------------------------------------------- Bugs fixed in 2022.1 Patch 2 #2290191 (Bug #110575) File level comments were being attached to the wrong version of the review. #2289591 (Bug #109891) When updating the task state of a comment, an email is sent to say that a comment has been added, rather than that the task state has been changed. #2288366, #2288366 (Bug #110761) The new task list was causing an error if trying to filter on an empty list. #2287769 (Bug #110751) The Jenkins configuration was trying to guess if a URL was remote or relative, and was too specific in its checking. This resulted in some remote URLs being interpreted as relative. The check now assumes anything that has a protocol prefix is a remote URL. #2287373 (Bug #110684) Long user and group names were breaking the Information panel on the right side of the review page by forcing the addition of scroll bars. Long names are now truncated in the display. #2287042 (Bug #110729) The Swarm server-side extension was not always honoring the value of the ignoreErrors flag, and was sometimes blocking server events if Swarm was unavailable when it shouldn't. #2287024 (Bug #110286) Activity links were not going to the right instance in a multi-p4d environment. #2286663, #2286663 (Bug #110644) Backslash characters (\) in usernames were being written as forward-slash characters (/) when generating the URL from the required reviewers list on the review page. #2286336, #2285916, #2285916 (Bug #110687) The use of double quotes in user names was causing problems with the rendering of review pages. #2285356, #2285332, #2283544, #2283407 (Bug #110576) The complexity calculation for reviews was incorrectly calculating the value for the previous version of the review for reviews with multiple versions. #2285191, #2281478 (Bug #110557) If a moderator approved a review, and the review's state was later changed back to 'Needs Review', then the moderator wouldn't be able to approve the review again. #2284101 (Bug #109859) The icons on test runs have been updated to make their function more obvious. #2283329, #2283329, #2282860 (Bug #110533) The mark file as read option wasn't being persisted after a page was reloaded. Marking files as read is now remembered. #2281456 (Bug #109262) The comment count on a review wasn't including replies to comments on the description. #2279530 (Bug #109255) You could edit archived comments. This does not make sense and has been fixed. -------------------------------------------------------------------------- Major new functionality in 2022.1 Patch 1 #2275474 (Bug #109717) On the review page, attachments are displayed as thumbnails for supported filetypes. This makes it easier to see what the attachments are without opening them. #2273132, #2271667 (Bug #109718) On the review page, it is now possible to delete an attachment when the comment is being edited. #2272804, #2269811 (Bug #109740) On the review page, you can now add attachments to comments. Files can be dragged onto a comment while it is open for edit. #2268773, #2266663 (Bug #109714) On the review page, comment attachments are displayed as icons. This enables multiple attachments to be displayed concisely. #2263189 (Bug #108538) Swarm validates the current user's ticket with the Helix Server whenever a new request comes from the client. This results in a large number of "login -s" calls. Because a web page can make multiple API requests, this can result in many login calls for a single page. This ticket information is now cached by default by Swarm for a period of 10 seconds. This cuts down on the number of "login -s" calls made. Swarm has a new configurable that controls the cache time: session => user_login_status_cache -------------------------------------------------------------------------- Minor new functionality in 2022.1 Patch 1 Bug #109184 On the review page, you can now remove jobs from a review. Bug #104655 On the review page, you can now add a comment that just has an attachment. You do not need to have any text in your comment. #2279079, #2276796, #2276796 (Bug #108998) On the review page, a link to a comment from an activity entry or an email now takes you directly to the comment. #2278142 (Bug #109558) On the review page, you can now access some of the right-hand menu functionality when the menu is collapsed. #2276759, #2276759 (Bug #110185) On Swarm installation, the configuration script now automatically creates a .swarm depot for storing attachments if the user requests it. Protections are also automatically set on the depot to secure it. #2275618, #2276202, #2276712, #2276820, #2277124 (Bug #110003) On the review page, comment attachment thumbnails are created for non-image files. For example, PDF files. #2272418, #2272419, #2272868, #2273037, #2274695 (Bug #109723) On the review page, Swarm now creates thumbnails for images attached to review comments. #2271473, #2270878, #2270677 (Bug #109720) On the review page, we have added an option to download comment attachments. #2270544, #2273465, #2274499 (Bug #109713) A new GET endpoint has been added to the API to fetch a comment attachment thumbnail. #2266010, #2266013, #2266022, #2266393, #2266472, #2267252, #2268246 (Bug #109721) On the review page, when an attachment is added to a comment, a low-quality 'blur' of the attachment is created which can be displayed quickly on the review page. #2263907, #2264346, #2264470, #2265335 (Bug #109711) A new POST endpoint has been added to the API to upload comment attachment content. #2262482, #2263023, #2263839 (Bug #109712) A new GET endpoint has been added to the API to fetch the content of a comment attachment. #2260470, #2259640, #2259099, #2259034 (Bug #109724) A new GET endpoint has been added to the API to fetch information on comment attachments. -------------------------------------------------------------------------- Bugs fixed in 2022.1 Patch 1 Bug #95581 On the review page, comment attachments can now be added to inline and file-level comments. Bug #110528 Fixed problem where the user's avatar icon would disappear if the user had been deleted. Bug #104635 If a comment is edited, attachments are no longer being erroneously removed. #2280752 (Bug #110512) The libreoffice executable was not being correctly found on RHEL 8, so display of office documents was not functioning correctly. #2280707, #2280707, #2278688 (Bug #110367) If there were multiple replies to a comment, the later ones could not be marked as a task. #2279551 (Bug #109944) Quick URLs for a specific review version were not working correctly. #2279509 (Bug #110497) The PHP version check would always report an error since it was looking for the wrong version string. #2279079, #2276796 (Bug #110296) Linking to comments was not working correctly on the review page. Improvements have been made to how we create and follow links to comments on a review. #2279056 (Bug #110051) If a review was updated by another user whilst the review page was open, switching versions could end up showing files for the wrong version of the review. #2276713, #2276541 (Bug #109864) On the review page, test results were not displayed correctly for iterating tests. #2274680 (Bug #110279) The php-fpm service on RHEL/CentOS was being referenced by the wrong name so it wasn't being restarted correctly on install. #2273634 (Bug #110266) The shelvedel trigger was not correctly ignoring deletes performed by Swarm itself in a multi-P4D environment. #2272228, #2269776 (Bug #110033) On the review page, filenames containing % characters could be displayed incorrectly. #2272176 (Bug #110034) On the review page, the tooltip for the filename is now left-justified against the file list on the review. #2271699, #2269634 (Bug #109628) On the review page, the state changes in the Change state menu have been updated to use the correct tense. #2270004 (Bug #110060) The count of changed files was incorrect on a review when an integration was performed. #2268709, #2268709 (Bug #109691) On the review page, error messages were not being cleared when the edit reviewers dialog was closed and reopened. #2268208 (Bug #110079) Links for review tasks on multi-P4D environment have been fixed. #2265602 (Bug #109964) Previously, any changes to the Redis configuration would be overwritten by the packages when swarm was upgraded. The redis configuration file is now marked properly as a configuration file. #2264300 (Bug #109836) On the review page, the scrollbar was obscuring the last file in the file list. -------------------------------------------------------------------------- Major new functionality in 2022.1 Bug #94544 Added support for Amazon Linux 2. #2240369 (Bug #109271) There is a new switch on the review page that allows a user to toggle between the original view of the page and a preview of the new page. The preview does not yet have feature parity with the original page but has some new features not previously available. #2183047 (Bug #101689) The post-installation configuration script now has the option to install extensions when configuring Swarm. -------------------------------------------------------------------------- Minor new functionality in 2022.1 Bug #97839, #97838 The display of the current review status has been made clearer by the use of color, icons, and their placement on the review page. Bug #97838 We have added an icon and text above the description on the review page to label the review as pre-commit or post-commit. Bug #94590 We are making the avatar less important in the display of activity and reviews, ensuring that the user's name is also clearly visible. Bug #94483 Button toggle states on the review pages are now clearer. Bug #90547 Code snippets in comments are now syntax highlighted. Bug #87906 Comments now move as the code lines above them are changed. Bug #86589 All comments on a file are now also displayed beneath the file. This means they can all be viewed in one place, even if the line they are attached to no longer exists. Bug #78183 Swarm now expands lines of code around comments to avoid missing comments. Bug #72207 Comments not close to a diff change are now shown properly. Bug #107328 Added an API to create a reply to a comment. Bug #105689 Long diff lines are now wrapped, so horizontal scrolling is no longer required. Bug #105568 The default avatar in the new UI has changed from an image to the first letter of the user's name. Bug #102397 The current review state is now shown separately from the new "Change state" button. The new "Change state" button is used to set the state of the review. This makes changing the review state more intuitive. #2239747, #2240379, #2240865 (Bug #100320) The list of review tasks is now displayed in the new review information panel on the right side of the review page. #2239661, #2240380, #2241001, #2241006 (Bug #109229) There is a new dialog for displaying and editing the reviewers on a review. This makes it easier to view and edit the users, with a clearer indication of their required status. #2238199 (Bug #109125) Improvements have been made to how we track line changes when displaying comments. A comment will now be moved to account for deletions or insertions in the lines above it within a review. #2235950, #2236153, #2236312, #2236533, #2237950, #2238244, #2238250, #2238327, #2238799, #2240276 (Bug #107316) There is a new dialog for adding jobs to a review. #2229433 (Bug #108911) The version of Redis shipped as part of the Swarm package has been updated to 6.2. #2222717 (Bug #108587, #105260, #90061) An inline comment in a diff that isn't near any changed lines of code is now displayed properly on the review page. #2214676 (Bug #77665) The configuration script no longer forces you to set an email host during installation. If no host is set, Swarm will use local email configuration (such as Sendmail) instead of routing via an external server. #2204114 (Bug #108197) Hostname configuration in the trigger configuration should not have trailing slashes. We now automatically remove them if they are present. #2201566 (Bug #92474) Added support for syntax highlighting of VHDL files in the review page. #2196930 (Bug #107034) Added an API to mark comments as read or unread. #2196904, #2198663, #2201612, #2201768 (Bug #105417) Added an API to mark files as read and unread in a review. #2196813, #2198234, #2201528 (Bug #105418) Added a new API to send all outstanding notifications for a review. #2196186, #2201859, #2202373 (Bug #108071) Have added an API endpoint to get the read/unread status of files in a review. #2195895, #2196621, #2196874 (Bug #107036) Added an API to archive and unarchive comments. #2193408, #2193477, #2194314, #2195662 (Bug #106750) The review description now supports GitHub flavored Markdown format. #2188739 (Bug #100313) Reviewers and their votes are now displayed in the new review information panel on the right side of the review page. This makes the voting status for individuals and groups much clearer. #2185029 (Bug #99425) Swarm now supports syntax highlighting for a variety of languages on the new review page. #2182309, #2182847, #2182943, #2184340, #2186275 (Bug #107864) Added an API endpoint to get information on a group. #2163585, #2164408, #2164825, #2164944, #2166112, #2168198, #2170047 (Bug #107445) Added an API to fetch list of files associated with a change. #2142050, #2143512, #2146405, #2150823, #2153354 (Bug #105439) A new v11 API for getting the list of activity events has been added. #2137008 (Bug #106311) A new GET API for comments has been added, making it consistent with the rest of our new API framework. #2132879, #2133446, #2137152, #2137153 (Bug #101919) A new API endpoint has been added to allow comments to be edited. #2131132, #2133475, #2135726, #2135842, #2137793, #2138106, #2138700, #2139117, #2139293 (Bug #101918) A new POST API for comments has been added which allows comments to be created. #2124696, #2124792, #2125097, #2125473, #2126335, #2127276, #2127304, #2127308, #2127389, #2127398, #2127464, #2127492, #2127542, #2127547, #2128110 (Bug #106500) v10 APIs have been uplifted to support v11. -------------------------------------------------------------------------- Bugs fixed in 2022.1 Bug #97705 The visibility of toggle button states has been improved. Bug #96892 If a review has an error on submit, the error message no longer obscures the actual state of the review. Bug #92783 Comments added when changing the status of a review are now automatically added to the current page. Bug #92768 If an individual is only a member of a review via a group, they are no longer shown under the list of individual members. Bug #91817 Markdown changes have improved how single backtick marks are handled. Bug #90061 Comments on a review that are not close to a diff section are now correctly displayed. Bug #69443 There were problems with the horizontal scroll bar not being visible in the diff view. This has been resolved by wrapping long lines rather than requiring the use of a scroll bar. Bug #62810, #90061 The position of Inline comments on diffs are now moved to track changes in lines above the comment. Bug #108400 Non-ASCII characters are less likely to break the review display on non-Unicode servers. Bug #108353 Display of hypertext links in markdown has been improved. Bug #106262 Spaces in URLs in markdown text were breaking links. Bug #105788 The first lines of a diff are no longer scrolled out of view when the diff is opened. Bug #105262 Fixed the list of possible review transitions shown after a review has failed to submit. Previously, invalid transitions were being shown when a review was in an error state. Bug #105260 Comments added to a review which were not near to changed lines were not being displayed by default. This has now been fixed. Bug #105207 Problems with horizontal scrolling in the diff view resolved by wrapping long lines instead. Bug #104560 The right end of lines in a review were being hidden off the page due to the use of multiple scrollbars. This has been resolved. Bug #104306 Block quote syntax in comments was not always working properly. The markdown engine has been changed and this is no longer a problem. Bug #104195 URL content in review comments were sometimes displaying badly if the content matched an emoji sequence. This has been resolved. Bug #102965 Markdown in comments for links with multiple words in the link text is now displayed correctly. Bug #102727 Unusual characters in comments were causing problems in the activity feed. Handling of these characters has been improved. Bug #102629 Display of HTML characters in comments has been improved. Bug #100971 The review description no longer incorrectly encodes ";" in URLs. Bug #100192 Fixed the display of special characters in markdown for inline code blocks. #2258078, #2254437 (Bug #106946) It was not possible to remove a deleted user from the list of reviewers if the deleted user had already voted for the review. #2256447, #2256447 (Bug #109768) The Swarm configuration script was overwriting the Apache site configuration file whenever it was run. It now takes a copy of any previous site configuration files in case custom changes had been made. #2252660 (Bug #109657) Sometimes the project cache would not be fully populated. #2231707, #2228884 (Bug #108995) Fixed bug where upvotes from users with non-lowercase usernames weren't being counted towards votes on a review on a case insensitive server. #2195825 (Bug #103610) Support for tables in markdown has been improved. #2189436 (Bug #107915) Fixed bug when getting a diff for a stream spec that predated recent server changes. #2171559 (Bug #107625) Fixed issue with the zip utility not being found on some RHEL systems. #2157869, #2157869 (Bug #106993) We have removed old unsupported versions of p4php from the distributions. #1510874 (Bug #89680) Links that contained parenthesis were not displaying correctly in the markdown used in comments. The markdown engine has been updated, and this has been fixed. -------------------------------------------------------------------------- Bugs fixed in 2021.2 Patch 5 #2211823 (Bug #108650) When logging users in using SSO, email addresses were being compared using a case sensitive match. They should be case insensitive. This has now been fixed. -------------------------------------------------------------------------- Bugs fixed in 2021.2 Patch 4 #2192270 (Bug #106587) When a test is re-run, or an OnDemand test is run, the {projectNames} and {branchName} fields are not populated if they are used in the request. With this fix, OnDemand tests and tests that are re-run will have the {projectNames} and {branchName} fields populated if they are used in the request. -------------------------------------------------------------------------- Bugs fixed in 2021.2 Patch 3 #2181115 (Bug #107777) There was a small timing hole immediately after a review was created where it was possible to approve the review before projects and workflows were attached to it. This allowed the workflow validation rules to be skipped. New reviews now cannot be approved until they have finished being processed. -------------------------------------------------------------------------- Bugs fixed in 2021.2 Patch 2 Bug #107564 A combination of Apache alias and virtual-host configuration together with base-url configuration in Swarm could prevent some options on the navigation bar from being displayed. #2167029 (Bug #107187) If a review was updated whilst tests for the review were still being started, then it was possible for test data to go missing from the review. This was unlikely to happen unless the tests were taking a long time to start. #2166123, #2165784 (Bug #107371) If a client browser was using a locale for which there weren't localisation files, then the request for the files would be forwarded to P4D to check for any matching groups, users, jobs etc. This was causing a performance hit, so now any requests for locale files are forced to be served only from the file system. -------------------------------------------------------------------------- Bugs fixed in 2021.2 Patch 1 Bug #107049 Left click on the test results on the review page were not being processed correctly, you had to middle/right click (open in new page) to open a link to the test results. Bug #105221 Some non-ASCII/non-UTF8 characters from a non-unicode P4D server could break the review page. An extra pass is now performed to convert characters to UTF-8. #2151183, #2150323 (Bug #107103) If there are a large number of groups and subgroups, performance could be poor because Swarm was trying to perform the group membership calculations itself. This was an attempt to reduce the number of calls to P4D. However, P4D does this significantly quicker, so these operations have been moved back to P4D. -------------------------------------------------------------------------- Major new functionality in 2021.2 #2120931 (Bug #97170) A new #wip keyword has been added to Swarm which, when added to a shelved changelist description, prevents any review associated with that changelist from being updated. This allows changes to be shelved without creating a new review version each time. Remove the #wip keyword and update the shelf to update the review. The keyword can be changed or disabled. #2120605 (Bug #105234) There is now an option on a test definition that allows a single test to be run multiple times against a review if that review spans multiple projects or branches. The test iterates over the list of applicable projects and branches, running a new instance of the test for each one. #2114081, #2115533 (Bug #105236) When a test is added to a workflow, it is now possible to define that test to block approvals. This means that the test must pass successfully before any reviews in that workflow can be approved. #2107739, #2108116, #2108177, #2109121, #2110505, #2110863, #2111436, #2112361, #2114040 (Bug #105235, #70247, #66541) You can now configure a test to be "On Demand". These tests are not run automatically but are added to the review and a user can start them manually. They are for optional or heavyweight tests that don't need to be run every time a review is updated. This also allows any test to be re-run manually without having to update the review. -------------------------------------------------------------------------- Minor new functionality in 2021.2 #2120033, #2120033 (Bug #106288) In the case of a misconfiguration in Swarm, the error page has been updated with a list of the more common problems that can cause Swarm to fail to start. #2115015, #2115385 (Bug #105826) Within a workflow, it is now possible to define a test to block a review from being approved until the test has passed successfully. -------------------------------------------------------------------------- Bugs fixed in 2021.2 #2133363 (Bug #106608) Fixed problems caused by a workflows when a submit is performed against an edge server. The workflow pre-submit triggers were unable to locate content in a changelist if that changelist was on an edge server, even if changelists had been promoted. #2130461 (Bug #106658) In IE 11, double cancel buttons would sometimes be displayed in drop down boxes on the dashboard and review pages. #2129520, #2123864 (Bug #106303, #106596, #106583, #106561) Fixed problem with legacy javascript content not being properly removed when browser forward button was used. #2128388 (Bug #106643) On some browsers the logo on the main navigation bar would appear as corrupt. This has been fixed. #2127425, #2127418, #2127404 (Bug #106624) Buttons to add or cancel a test definition in a Swarm workflow were missing from the workflow page on IE11. #2125491, #2121688 (Bug #106293) There were errors in the way that email notifications were sent out after tests had completed, causing too many emails to be sent. Now emails should only be sent on test failure, or on first success after failure. #2114315 (Bug #105478) The new review GET API did not support the ability to define which fields were returned in the response. This has now been updated. #2113640 (Bug #106069) Notifications were blocking the main menu, preventing it from being clicked on. The notifications have now been reduced in size. -------------------------------------------------------------------------- Major new functionality in 2021.1 #2084993, #2086477, #2090297 (Bug #105055) A new option has been added to the SSO support to allow a user to choose whether they use SSO or not. This allows a mix of SSO and non-SSO users in the system. Previously, if SSO was enabled then all users would be immediately redirected to the IdP. #2076187 (Bug #105324) The Swarm OVA has been upgraded to Ubuntu 20.04, and the mechanism used to build the OVA has been changed to make it easier to upgrade it in future. #2075386 (Bug #105230) When a changelist spans multiple streams across imports, and the client is on an edge server, Swarm could miss files that were in the review. Swarm now works out the full list of files from all the clients. #2073559 (Bug #105289) The dashboard page has been updated to the new UI style that is being used by Swarm. This includes the addition of review Complexity data and vote/comment data to the dashboard. #2067012, #2067012, #2067011 (Bug #104589) The activity feed has been given its own top level position in the main navigation bar. It was previously a sub-tab on the dashboard. #2062046, #2062755, #2076284, #2079138, #2079738 (Bug #99976) The search component has been updated to take advantage of the new API calls provided by P4Search, and to fit in better with the new page style. -------------------------------------------------------------------------- Minor new functionality in 2021.1 Bug #90758 The project filter on the dashboard should provide a text search of the filters, just like the filter on the reviews list page. Bug #104088 P4PHP has been updated to support threading, which means parallel sync behaviour within Swarm should be improved. #2108393, #2108393 (Bug #106036) We have changed the HTTP headers so that if IE is being run in compatibility mode then Swarm will be correctly identified as a site that should be interpreted in Edge mode. #2104842 (Bug #105965) The unzip library is now included in the OVA so that the Download ZIP functionality will be enabled by default on the OVA installation of Swarm. #2095055, #2094995 (Bug #105649) The text search bar on the reviews list page has been changed to be dependent on the tab ('open' or 'closed') selection. This allows each tab to have its own search criteria. #2093118, #2093121 (Bug #104599) It is now possible to select and filter on multiple projects at a time on the reviews list and dashboard pages. #2087613 (Bug #105632) Compression of Javascript content has been enabled in the Apache configuration provided with Swarm. This can greatly reduce the time to load Swarm pages across a network #2083199, #2076857 (Bug #104440) Jira integration now supports a second URL which is only used for API calls. This allows links which users use to have one URL, and for API calls that update Jira tickets to use a second URL. If the API URL is not configured, then the normal user URL is used instead. #2082964, #2087280, #2088063 (Bug #105374) The Swarm OVA has been updated with some minor improvements to aid in usability and make it easier to investigate connectivity problems. #2081764, #2081764 (Bug #105323) Sometimes workers would fail on start, and the job would be put back into the queue to be retried. The logging error when this happens has been changed to a WARN from an ERROR. #2078673 (Bug #104576) The swarm package installations now provide a configuration in /etc/logrotate.d which by default will rotate the Swarm logs daily and keep them for 14 days. This configuration can be changed if desired. #2078497, #2078578, #2078656, #2078839, #2079480, #2080939, #2080940, #2080979 (Bug #105348) The list of filters for the dashboard has been updated to bring them in line with what is now available on the reviews list page. This includes the addition of a text search filter. #2076931, #2076931 (Bug #105349) A new "My Dashboard" menu option has been added to the navigation bar to make the user's dashboard easier to find. #2074431 (Bug #105232) Have added descriptive titles to all the web pages in Swarm which were missing a title. #2073424, #2077499 (Bug #104588) Created a new v10 version of the dashboard API to support the new dashboard page. #2070182, #2069402, #2068796 (Bug #104641) The project filter on the reviews list page will now search on both project names and project ids. Previously it was only searching on the name of the project. This may make a difference if the project has been renamed since creation. #2067982 (Bug #94656) There is now a facility to recalculate which projects a review belongs to. This has always been done whenever a review is updated, but if a new project is created after the review, updating all old reviews could be problematic. There is an option on the review page to recalculate the project membership for the current review, and also an API endpoint so that it can be scripted for many reviews. #2065487 (Bug #103173) It is now possible to receive email notifications for spec changes by use of the 'honor_p4_reviews' option. #2065300 (Bug #104913) The version of Redis packaged with Swarm has been upgraded to 6.0.10. #2064071, #2071638 (Bug #104377) Added a new v10 API endpoint for retrieving a list of users. #2063657 (Bug #104360) Documented how to strip the @mention from a review description using the existing configuration options. #2062767 (Bug #104986) The Swarm configuration script which is run on first install was saving the Swarm password in clear text if the P4D security setting was lower than 3. #2062303, #2062514 (Bug #104961) Cleaned up Javascript console errors which were being caused by the interaction between the React code and legacy javascript. This would sometimes show up as oddness in how pages were displayed. -------------------------------------------------------------------------- Bugs fixed in 2021.1 Bug #105095 If the reviews list page was opened after viewing the dashboard page, an extra API request was being made to the server. This has been removed. #2112510 (Bug #106088) Fixed bug where strict workflow rules would not always catch changes when multiple files were being submitted. #2108395 (Bug #105985) Fixed type issues in the workflow API where the id was sometimes an int and sometimes a string, leading to incorrect equality comparisons. #2107693 (Bug #106011) Fixing the inconsistently cropping in email subject line. #2106862 (Bug #106005) Fix bug where the Log in text on the login dialog gets split between two lines on IE once text was entered into the fields. #2105024, #2102441 (Bug #105865) When using a Windows P4D server if the case of a userid in a group differs from the case of the actual user id, then emails were not being sent to that user. This has been fixed. #2100958 (Bug #105288) Newline characters at the end of a changelist description could sometimes cause an extra event record to be created within Swarm. Newlines are now trimmed from the end to prevent this. #2098230 (Bug #105825) When trying to repeat a search in the global search bar, the search would not be run a second time. This has been fixed. #2090949 (Bug #105641) Usernames with a slash ("/") in them were causing problems due to the URL not correctly handling them. Support for slash in usernames has now been improved, and the Apache configuration has been updated to include the "AllowEncodedSlashes NoDecode" option. The Apache site config file will not be automatically upgraded when Swarm is updated, so if you need this option you will need to copy it manually from the new perforce-swarm-site.conf file in /opt/perforce/etc #2088853 (Bug #105463) Reviews could be displayed in the wrong date order on the reviews list, depending on the order in which various links and buttons were clicked. This has been fixed. #2087743, #2084660 (Bug #105543) The logout_url was no longer working with the new login dialog. This has been fixed. #2086861 (Bug #105618) When Swarm initially loads the user can see either a blank page or a page header/menu bar with blank content while the javascript bundles load and initialise. There should be a visual indication that the application is loading. #2084943 (Bug #105506) If a user had a backslash "\" in their username, then errors would be raised when clicking on their profile due to the way that the URL was being escaped. We now allow backslashes and slashes to be escaped in the URLs. #2083726 (Bug #105479) The UserAPI was validating each user multiple times and also failed to cope with a user who has been deleted. These issues have been resolved. #2083561 (Bug #105368) Not all page headers were using internationalisation text. #2083323 (Bug #103653) Searching for UTF-8 content against a Helix Search server was not returning any results. This has been fixed. #2082084, #2077756 (Bug #104621) Under some circumstances a test result would simply show a failed result without actually re-running a test. This has been fixed. #2080908 (Bug #105475) Previously the /review URL would just show a bank page, whereas other similar URLs (/project, /group) would give a 404. The /review page has been updated to be consistent with other pages. #2076067 (Bug #105386) If a review mentions users who have since been deleted, Swarm would give a 400 error. We now cope with this situation by allowing users that don't exist in the user list. #2074365 (Bug #105350) We have re-enabled the rendering of 3D models by default in Swarm. #2073457 (Bug #105098) In small browser windows the review description was sometimes being cut off on the reviews list page without providing a "..." expander option. This has now been fixed. #2069928 (Bug #105073) Fix to the padding on the reviews list page when it is opened after viewing a different page. #2067866 (Bug #105181) Fixed bug where the "I have commented on" filter on the reviews list page would not always show the full list of reviews due to a mismatch in type comparisons. #2062072 (Bug #103683) The updated time of the review was being shown twice on the reviews list - once in the column if the 'Updated' sorting was selected, and once in the review description. If reviews are sorted by 'Updated' time, we now hide the time in the description. #2061211 (Bug #103512) Notifications were still being sent when silenceNotifications was enabled when adding a comment via the API. This has been fixed, and the silenceNotifications flag is now correctly honoured. #2061146 (Bug #104455) Updated the v10 reviews API endpoint to allow a list of fields to be specified, to limit the amount of data returned. #2060257 (Bug #104972) Removed unwanted selection borders around some elements of the login dialog. -------------------------------------------------------------------------- Minor new functionality in 2020.2 Patch 1 #2061611 (Bug #104737) Improvements to how the reviews list is displayed when sorting by activity date when there are a very large number of reviews modified on a single day. #2059484 (Bug #104922) Added option to always run project tests even if nothing has changed. #2058472 (Bug #104413) Once the reviews list has run out of results to show, it now displays a 'nothing more to display' message at the bottom of the list. #2057747, #2057747 (Bug #99329) If p4search was enabled, then file search would still perform an inefficient search against P4D even though this was no longer required. #2056823, #2056823, #2053938 (Bug #104640) The role filter on the reviews list page was only searching on the user's full name. It now searches on both the full name and user id. #2055656 (Bug #104887) When there were a large number of users, the processing of the Swarm queue could be slow. Have improved the performance of the user processing in these situations. #2055607 (Bug #104858) We have changed the text of the "I have not voted on" reviews list filter to make it clear that it only applies to reviews that you are participating in. -------------------------------------------------------------------------- Bugs fixed in 2020.2 Patch 1 Bug #99401 Fixed display of chevrons in reviews. #2064474 (Bug #105038) Some of the CSS styling on the global dashboard had been broken by some of the new styles introduced in 20.2. #2060336 (Bug #105006) Setting a filter directly from the URL would sometimes result in incorrect values being set on the reviews list. #2059951, #2059414 (Bug #104720) When a reviews list text filter had no text in it, the clear icon was still appearing even though it is not needed. #2059694 (Bug #104974) When the search filter was used on the reviews list page, the 'loading' message never went away even if there were no more results to fetch. #2059207, #2059207 (Bug #103414) Fixed an issue where some non-ASCII characters would not be shown at all in a diff view for non-UTF-8 content. #2059152 (Bug #104924) When bookmarking the reviews list page, though the content of the search field was recorded, it was not re-populated when the bookmark is used. #2056590 (Bug #104867) The configure-swarm script would store the plain text password in Swarm's config.php if the P4D server had a security level of 4. #2056045, #2054532 (Bug #104581) Added a clear icon to the review search field. This allows the current content of the field to be easily cleared. #2056038, #2051298 (Bug #98820) If a Job Id was a pure numeric (1234 rather than job1234), then attaching them to reviews would cause commit of the review to hang due to validation checks failing. #2055269 (Bug #104894) Fixed intermittent error on the reviews page that would appear in the console log. -------------------------------------------------------------------------- Major new functionality in 2020.2 Bug #102978 We have added Linux packages to support installation of Swarm on Ubuntu 20.04. This includes support for PHP 7.4 on this platform. Bug #102977 We have added Linux packages to support installation of Swarm on RHEL 8. Swarm now depends on the Remi PHP repository, allowing the use of PHP 7.4 on this platform with the standard Apache server. Bug #102976 We have added Linux packages to support installation of Swarm on CentOS 8. Swarm now depends on the Remi PHP repository, allowing the use of PHP 7.4 on this platform with the standard Apache server. #2007047 (Bug #103181) The reviews list page has been updated to take advantage of the new Javascript framework, providing a more modern look and feel. Extra information has been added to the page, in a clearer format, to enable choices to be made about which reviews need to be worked on. This is part of our work to move all of Swarm to the new framework over the coming releases. #1990244, #1993528, #1999257 (Bug #103043) We now display an estimate of the complexity of a review on the reviews list page, to allow reviewers to see which reviews are most likely to be simple, and which complicated. The complexity is based on the number of lines changed across all the files in the review. -------------------------------------------------------------------------- Minor new functionality in 2020.2 Bug #96005 We have added the ability to see usernames on the reviews list page without needing to wait for hover text from an avatar. Bug #92918 There are problems on CentOS with different versions of PHP. Swarm has been updated to make use of the Remi PHP packages, which should provide a more consistent experience. Bug #87695 We are moving to displaying full user names rather than just user ids on the new reviews list page. This change will be applied to all pages as they are updated over the coming releases. #2050841 (Bug #104800) The default 'page size' of results returned in the reviews page has been changed from 50 to 15. This reduces the time before initial data is returned to the user on large systems. #2045520, #2044073 (Bug #104485) The Role filter on the reviews page has been updated to now include a "Reviews I'm an individual reviewer of", which will list all reviews that a user has been directly added to, as opposed to those they've been added to by being a member of a group. #2042375, #2040681 (Bug #104115) If Swarm is unable to start properly, the error page now recommends checking any SELinux settings since these are a common source of problems. #2027613, #2024020, #2024020 (Bug #103757) It is now possible to retrieve a workflow using the API by providing its name rather than only by its id. #2012218, #1999922, #1999663 (Bug #100037) We have upgraded CentOS and RHEL packages to use the Remi package repository for PHP 7.4. This allows all our supported CentOS and RHEL releases to be using the same version of PHP. #1990065, #1996234, #1996329 (Bug #103101) A v10 version of the reviews API has been added to support the new reviews list page. This follows the same structure as the existing v10 APIs, and is a replacement for the old v9 reviews API. #1984569, #1984589, #1985386 (Bug #102949) When a review is created or updated, we now calculate a complexity value which is stored against the review. This is based on the number of lines changed in the files, and provides an indication of how complicated the review might be. -------------------------------------------------------------------------- Bugs fixed in 2020.2 Bug #104607 The reviews list page shows a count of the number of reviews in the open and closed tabs. This is possibly an over estimate of the number to display. Swarm now updates this number as the user scrolls down the page as more information becomes available, so the number can change to something more accurate. #2050437 (Bug #104771) Users who are members of a group were not being counted when checking minimum votes were needed for approval. Members added to a project via a group should now count towards votes. #2048113, #2048113 (Bug #104710) The menu navigation bar was fetching information on private projects that it shouldn't be able to see. Private projects that a user does not have permission to see are no longer be returned to the client by the navigation APIs. #2046648, #2044745 (Bug #104582) When expanding a multi-depth stream spec in a review, Swarm would return a '500 internal server' error. This has been fixed. #2041954 (Bug #104477) The help button on the login page was missing a message translation. This has now been fixed. #2038602, #2036927, #2036927 (Bug #103649) Added 'branchName' back into the documentation for test parameters, since it is required by Jenkins. It was always present, just not listed in the documentation. #2038241 (Bug #104288) New Javascript UI was not honouring the translator->locale option in the config.php. #2037180, #2037180 (Bug #104416) Private projects with numeric user ids would cause warning messages to be output into the logs. This has now been resolved. #2034440 (Bug #103939) Private projects were not being properly listed on case insensitive servers. This has now been resolved. #2027650 (Bug #103977) When the CentOS/RHEL packages were updated to use the SCL version of PHP, the ImageMagick dependency had been moved from the optional package to the core package. It has now been moved back to make things consistent with the Ubuntu packages. #2024431 (Bug #103877) On CentOS during package upgrade, the Swarm package shutdown the Redis server when the old package is removed. This happens last in the sequence, so Redis would then need to be manually restarted. The Redis server is now only shutdown on uninstall, not on upgrade. #1990682 (Bug #102938) If the login fields were pre-filled by a browser, then the Login button would be greyed out, requiring two clicks to activate it. This has now been fixed. #1988355, #1985176 (Bug #101523) If Swarm was running without HTTPS behind a proxy which was using HTTPS, then avatar requests would incorrectly use HTTP rather than HTTPS. This has now been resolved. #1986420, #1984303, #1984303 (Bug #98769) When a ZIP file is downloaded from a case insensitive P4D server that is running on Linux, some pathnames could produce errors. A check is now made for the case sensitivity setting of the server and the correct string operations performed. #1984579, #1984579 (Bug #102866) Text columns on the system info page sometimes overlap in small browser windows. This has been resolved. -------------------------------------------------------------------------- Bugs fixed in 2020.1 Patch 4 #2028501 (Bug #104118) If there were invalid characters in a job description, then Swarm would fail to return those jobs when requested to by the API. The job content is now passed through our UTF-8 filter to cope with invalid characters. #2028485, #2027037 (Bug #104166) The Dashboard incorrectly lists reviews from a project if the user is a moderator on any branch in the project. -------------------------------------------------------------------------- Bugs fixed in 2020.1 Patch 3 Bug #103793 Resolved some performance issues when workflow was disabled. Swarm was checking for workflows every time it checked a project path, rather than once at the start and dropping out early. #2021749 (Bug #103991) When 'Log in' is clicked when Swarm is using a P4D instance that has sso_enabled => true the Swarm log in is displayed instead of the user being redirected to the IDP. #2021739 (Bug #103963) If a review belongs to multiple branches, then we display each branch for that review, as a link to the project. This means we can have many links to the same location. On complicated reviews spanning dozens or hundreds of branches, this consumes screen space, is slow to render and doesn't add much benefit. With this fix a single link will be created for each project with the branches as part of the link text #2019121, #2018709 (Bug #103928) When Swarm checks to see if content has changed in a review, if that content had RCS text then the checks could produce a false positive. We now perform a second (slower) diff2 check if a ktext file is determined to be different. #2017620 (Bug #103890) If a large number (thousands) of projects are configured to sync with Jira, the PHP regexp matching was failing. The project list is now broken down into smaller chunks and each chunk is processed individually to get around the PHP limitation. #2017537, #2017537, #2011844 (Bug #103701) The check to see whether a test should be re-run on the submit of a review was incorrectly flagging the review as having changed since the previous test run. This has been fixed. #2017186 (Bug #103892) Fixed bug where the login logo would not appear if a baseUrl was configured, and the default Apache DocumentRoot was not pointing at the Swarm directory. #2016747 (Bug #103845) When baseUrl is configured, errors were being displayed in the Swarm logs. This has now been resolved. #2016724 (Bug #103712) With a Windows P4D server in case insensitivity mode, Swarm was not correctly comparing user names for user membership tests. This has now been resolved. #2015542 (Bug #103792) If a review belongs to multiple branches, then a workflow rule check can be carried out multiple times for the same project and branch combinations. On complicated reviews spanning dozens or hundreds of branches, this can lead to unnecessary calls that slow down display of pages. #2014926 (Bug #103775) When baseUrl and Apache's DocumentRoot are configured, some of the Swarm icons were broken. This has been resolved. -------------------------------------------------------------------------- Minor new functionality in 2020.1 Patch 2 #1995433, #1990714, #1990714 (Bug #103203) When deciding whether a test needs to be run on submit, we check to see if any content in the review has been changed. In order to improve performance on large systems with complicated reviews, the scope of the diff has been tightened and unnecessary data is no longer being retrieved from the server. -------------------------------------------------------------------------- Bugs fixed in 2020.1 Patch 2 #1997601, #1997601 (Bug #103287) Links in comments would be incorrectly escaped if they were longer than 256 characters. There is a maximum length limit for which we consider when looking for URLs, and this has been increased to 1024 characters. #1996785 (Bug #103374) When base_url was set in the configuration, a null would be shown in place of the server id. This has now been fixed. #1996127 (Bug #103361) The default timeout for http calls has been increased from 5 seconds to 10 seconds. Sometimes tests would fail with a default of 5 seconds if Jenkins was slow to respond. #1991513 (Bug #103271) It was not possible to login if a base_url had been set in Swarm. This has now been fixed. -------------------------------------------------------------------------- Bugs fixed in 2020.1.1 Bug #103114 There were problems with package dependencies on some RPM based distributions, in particular dependencies for the ImageMagick library. ImageMagick is now not installed by default, but see the documentation on how to enable it on platforms where it is supported. Bug #102966 If using multi-p4d, then the verification option for the Redis server would hang. This has now been fixed. -------------------------------------------------------------------------- Major new functionality in 2020.1 #1966171, #1965117 (Bug #102344) Test Definitions which are associated with a workflow are now displayed on the workflow's configuration page. This is also true for the global workflow. #1965117 (Bug #102367) It is now possible to associate a test definition with a workflow, so that the test will be executed when reviews affected by that workflow are updated. #1963290, #1963245 (Bug #102187) When a review is submitted, any test definitions that are applied to a workflow as 'OnSubmit' will be executed. These are executed after the review has been submitted, and will be executed even if the content of the review has not changed. #1963189, #1960593 (Bug #102120) Added the ability to edit Test Definitions within the UI. #1963189, #1960593 (Bug #102119) It is now possible to create a new Test Definition in Swarm within the UI. Test Definitions can be added to a workflow which defines how they are executed. #1962497, #1962561, #1962580, #1963083, #1963245, #1963290 (Bug #102185) Any test definitions that have been added to a workflow as 'OnUpdate' will be executed whenever the content of a review is updated. These tests will not be run on a submit unless the content of the review has changed between the last successful test run and the submit. #1961233 (Bug #102117) Added a page which displays a list of all the Test Definitions that can be viewed and used by the user. #1956746, #1955154 (Bug #102162) It is now possible to configure the global workflow configurations from within the UI of Swarm, rather than editing the config.php. Who has permission to do this can be controlled by the workflow itself. #1956498, #1955275 (Bug #102160) The global workflow settings are now displayed on the workflows page within Swarm, where it will be possible to edit them through the UI. Any configuration in config.php will be automatically migrated. #1954764, #1953985 (Bug #102058) Any global tests which are defined in config.php will be migrated to key data the first time that they are used. This brings them under the control of the UI, and after this point the definitions in config.php will no longer be referenced. #1947289 (Bug #70408) Added the ability to edit a text file directly from the file page within Swarm. This is currently a technical preview feature. #1938617, #1920608 (Bug #101354) Allow the inline editing of text files to be disabled or enabled from the configuration file. System owners who do not want users to have this feature can disable it system wide. #1935827, #1928649 (Bug #101532) Added a file API to support the updating the content of files directly from within Swarm. -------------------------------------------------------------------------- Minor new functionality in 2020.1 Bug #97672 It is now possible to pass more information to CI systems when a test is run, such as the status and version of the review. Bug #102310 Added an option to specify XML content type when executing a test. Previously only JSON and URL encoded were allowed. #1973686, #1965117 (Bug #102368) Added the ability to modify the tests definitions which are associated with a workflow. #1972872, #1967353 (Bug #99591) We now display the state of any Redis verification to admin users, and allow them to run a new verification immediately. #1969720, #1970158 (Bug #102404) An automatic process has been put in to perform a validation of index data for projects and workflows when they are saved. This will repair any invalid index data which may have been caused by bug #102353 #1968482, #1967442 (Bug #102503) Create an activity event when a test definition is updated. #1967419, #1966767 (Bug #102369) Added ability to remove test definitions from a workflow. #1964728, #1963995 (Bug #102179) Swarm now logs an activity event when a workflow is deleted. #1959604, #1958970 (Bug #102142) We have reduced the number of notifications sent out for test result updates, so users are only notified on important changes to state. #1958008 (Bug #102252) Workflows definitions now include the list of tests that are associated with them, along with any rules for those tests. #1952998, #1952996, #1952996 (Bug #101120) application.config.php has been added to the list of configuration files in the rpm and deb packages, so that it is not overwritten when Swarm is upgraded. This allows the config caching to be disabled without it being overwritten each time. #1947904 (Bug #102063) Updated package to include the latest 19.2 versions of P4PHP libraries. #1944027, #1944248, #1944331, #1944675, #1945460, #1947784, #1947972, #1948679, #1949443 (Bug #101945) The Workflow API has been upgraded to v10, to make use of the new standardised json format that Swarm is moving to. The v9 API will be marked as deprecated at some point in the future, before being removed completely. #1942691, #1944655 (Bug #101929) The first time that Workflow data is requested after an upgrade to 20.1, the system will automatically migrate any configuration in config.php to key data. #1942651, #1942720, #1942895, #1942971, #1944276, #1947173 (Bug #101953) The default workflow configuration in config.php has now been defined as a Global Workflow object in key data. -------------------------------------------------------------------------- Bugs fixed in 2020.1 Bug #102780 Now that menu items use SVG icons, there is a new way to customise those icons. See https://www.perforce.com/manuals/swarm/Content/Swarm/extending.clients.html #1976932 (Bug #102819) Improve performance when working out review transitions by not fetching information on all the groups in the system. #1974100 (Bug #102778) Swarm was handing mixed case user names incorrectly on case insensitive servers. This has now been fixed. #1970284 (Bug #102666) There was a bug where if a branch was added to a project, then it wasn't possible to add a workflow to that branch until the Project had been saved and re-edited. This has now been fixed. #1965705 (Bug #102533) Swarm now uses PHP 7.2 on CentOS 7. This fixes a problem where a required PHP library was not available natively on CentOS 7 for PHP 7.1, which forced us to use a CentOS 6 version of the library which sometimes caused errors. #1962431 (Bug #102501) The format of the data returned by the reviews//testruns API endpoint has been corrected so that it fits the format of the other APIs. #1959613, #1950017 (Bug #101931) Fixed bug where a workflow would pick up the current excluded users list when it was created. This could have unexpected behaviour if the list was changed later, especially since excluded users on individual workflows isn't supported in the front end but would be applied on the server. #1957437 (Bug #102353) Fixed a bug where index values were not being removed from indexed key data. If an indexed value on a key is changed, the index is updated to include the new value, but not to remove the old value, so the key will still be found when searching for old values. This caused an efficiency problem where more workflows than necessary were returned when pre-filtering them, though functional behaviour was still correct. #1953953, #1953953 (Bug #102085) When setting the name of a workflow, if it had spaces in it then the duplicate name check was not functionality correctly. This has been fixed. #1951989, #1951989 (Bug #102045) If an automated test failed to communicate with the CI system, then an error would be displayed in the test results, along with the URL. If this URL contained authentication tokens, then they would be displayed to all users. Swarm now strips out anything other than the basic hostname and path before displaying the URL. #1949333 (Bug #101968) Deleting files from a shelf when specifying an absolute file path rather than a depot path would incorrectly prepend the cwd to the path when processing the shelvedel trigger event. This has now been fixed. #1942722 (Bug #101782) We would sometimes report that a running test was failed in the activity and notification email. This has now been fixed. #1936411 (Bug #101225) Swarm was being over eager in its escaping of URLs in test calls when using JSON encoding. We have reduced the amount of escaping so that it is JSON safe in these cases. #1928698 (Bug #101326) Fix problem when removing files from a review whilst in the root of a Windows file system. The trailing backslash on c:\ was escaping the closing quote on command line arguments to the trigger. Also resolved an issue that was causing infinite recursion of the trigger script on Windows if any argument had a space in it. #1928697, #1928697 (Bug #101626) For large shelvedel operations, with a long list of filenames, data from the trigger was being truncated at 1024 bytes. The limit has now been removed so that a shelvedel argument list should now only be limited by the operating system. #1922395 (Bug #101448) A change has been made to fetch user data from Redis rather than P4D, which will reduce excessive load on the server for busy systems. -------------------------------------------------------------------------- Minor new functionality in 2019.3 Patch 2 #1908924, #1908924 (Bug #100656) Improved visibility of button state. Previously it was quite hard to tell what state a button was in because the color change was small. This mostly affects buttons on the review page. #1908879 (Bug #100826) The depot path shown at the top of the 'Files' page used to have spaces inserted into it between path elements. If it was copied and then pasted into the command line it would not be valid. These spaces have been removed from the underlying text, so when copied the depot path is valid. #1908826 (Bug #100619) The redis-cli-swarm binary has been added to the path when installing from packages, to make it easier for administrators to access the Redis server from the command line. #1906480 (Bug #101027) The 'non_utf8_encodings' configurable in the translator array is now documented, see https://www.perforce.com/manuals/swarm/Content/Swarm/admin.locale.html. Previously it was undocumented. #1897025 (Bug #100850) The curl utility has been added to the Swarm OVA packages by default, so that it is available for administration and support use in an environment that doesn't have access to the public internet. -------------------------------------------------------------------------- Bugs fixed in 2019.3 Patch 2 #1912733 (Bug #101199) The emulate_ip_protections configurable can now be set for each P4D instance in a multi-P4D setup. #1912410, #1912206 (Bug #101101) It is now possible to define the proxy_mode for each individual P4D in a multi-P4D setup. Previously, all connections had to have the same setting. By default this is true, which means the IP address of the user is considered when resolving protection table restrictions in P4D. Setting this to false means that P4D will only consider the IP of the Swarm server in the protections table. #1911508, #1911459, #1908672 (Bug #92625) Fixed a bug when marking up URLs in comments and other text. If there was an '&' in the URL then it would be displayed as '&' instead of being displayed as a simple '&'. #1911444 (Bug #100844) Fixed a bug where project names with UTF-8 characters stopped the 'Test in progress' icon being displayed. #1908316 (Bug #101069) Fixed a bug where a very long list of Jira projects caused the PHP limit on RegEx size to be exceeded. The project list is now split into sections before generating the RegEx to prevent the size from being exceeded. #1908239, #1906930 (Bug #100913) Fixed bug where a period (.) followed by an upper case character in the depot name prevented the branch path from being recognised. #1907358 (Bug #100843) Fixed bug where Unicode characters in the branch path of a main branch would prevent the overview tab being displayed for a project. #1907277 (Bug #100972) Fixed a bug where filtering projects with UTF-8 characters on the dashboard did not work. #1902045, #1893605 (Bug #100631) The package removal script was not properly checking which version of PHP to clean up on Ubuntu. We now check for the PHP version before trying to remove the Perforce PHP module. #1897363, #1896897 (Bug #100811) If a group had associated key data, for example, because notifications had been configured against it, then only admin users would be able to modify or delete the group. #1893621 (Bug #95670) Fix problem with comments not being displayed in reviews even though they were displayed in the project activity. -------------------------------------------------------------------------- Bugs fixed in 2019.3 Patch 1 #1885227, #1884757 (Bug #100496) Fix issue where usernames with mixed case on a case-insensitive server were always being converted to lower case. After upgrading, you will need to flush your user cache by either making sure that Redis has been restarted or if your Redis cache is being persisted to disk then you will need to clear your user cache directly. See the documentation on deleting the user cache here: https://www.perforce.com/manuals/swarm/Content/Swarm/swarm-apidoc_endpoint_config_cache.html#Redis_cache_delete -------------------------------------------------------------------------- Major new functionality in 2019.3 #1854311 (Bug #97139) Added new API endpoints (v10) for managing automated tests within Swarm. Allows extra information to be passed back to test results for a review, and for an external system to attach their own test results to an existing review. #1849256, #1850356, #1850672, #1850711 (Bug #97140) Allow a review version to display the results of multiple tests that have been executed on the code changes, for when a code change causes tests to be run from both multiple projects and system wide global tests. A history of test results can now be viewed on each version of a review, to see which revisions failed or passed the tests. #1847306, #1847410, #1847480, #1847507, #1847785, #1848038, #1848118, #1849387 (Bug #97797) Added new system wide configuration options to define global CI tests that will run when any review is created anywhere in the system, regardless of whether it is part of a project. -------------------------------------------------------------------------- Minor new functionality in 2019.3 Bug #97840 Provide a history of test jobs for each version of a review with a link and a pass/fail status for each one. Bug #91045 Add an ability to link test status to a version of a review. #1862167, #1861501 (Bug #99945) Add support for extra parameters in web hooks to test systems when a test is executed. You can now reference a review's status and changelist description. #1860032 (Bug #99268) Swarm now allows a configurable HTTP timeout to be specified when invoking test URLs to an external system such as Jenkins. #1858307 (Bug #89120) Test results are displayed for each version of a review, so that a record of successes and failures for older versions remain visible. #1858294 (Bug #99282) Global tests are executed whenever a review is created anywhere in the depot, regardless of which project (if any) that a review belongs to. #1845665 (Bug #94115) Add ability to auto-create users when logging in to Swarm, if auto-create is enabled on the P4D server and the user exists in LDAP. This is to handle situations where the user exists in LDAP but hasn't been synced to the P4D server yet. The user will now be synced when the login is attempted. #1844645, #1842780 (Bug #96549) Fix UTF-8 characters in mail headers which were causing Office365 to reject Swarm emails. -------------------------------------------------------------------------- Bugs fixed in 2019.3 #1868080 (Bug #100087) Swarm 19.2 cannot handle (:@{}()) characters in data such as user and group names, and throws 500 errors on the reviews page. This is due to the serialisation at the Redis backend. Error handling in this area is now improved, and a workaround provided in situations where use of these characters can't be avoided. #1862763 (Bug #100021) When Swarm is upgraded from the packages, the configuration cache is not updated so we get 404 errors when trying to access new (uncached) modules. Package upgrades now clear the config cache. The config cache is automatically rebuilt when Swarm restarts. #1844992 (Bug #99567) Fixed issue where if a review was updated in a browser page, if the review diffs were accessed in an another browser page they would result in 404 errors. This was because the links were stale. #1843214 (Bug #99351) If Redis has been restarted and is still loading its dataset from a file, then Swarm would give a 500 error message. Have improved error detection so that Swarm provides a friendly message that it is starting up. -------------------------------------------------------------------------- Major new functionality in 2019.2 #1838181 (Bug #99449) Performance improvements for the 'Projects' page when dealing with a project data set with a large number of branches and paths #1834789, #1838131 (Bugs #99335, #99461) New event listeners that detect if the Redis cache is in need of verification and update. #1830208 (Bug #99330) Enabling workflow triggers by default, and removing reference to them as technical preview. #1826865 (Bug #99083) Adding Support for Stream spec changes within a review. #1823119, #1831052 (Bugs #98258, #99116) Included a config option that allows Admins to setup a list of users and groups that will be ignored by workflow rules. Any user or group defined within this will not be gated by workflow rules. Example of alice bob and eve being ignored would be: 'workflow' => [ 'workflow_rules' => [ 'user_exclusions' => [ 'rule' => ['alice', 'bob', 'eve'], 'mode' => 'policy' ], ] ] If you want to have all members of the managers group exempt you would define that within the group_exclusions section: 'workflow' => [ 'workflow_rules' => [ 'group_exclusions' => [ 'rule' => [managers'], 'mode' => 'policy' ] ] ] #1785857 (Bug #97934) Swarm now connects to a Redis server to store a local cache. #1780587 (Bug #95203) Added the ability to blacklist groups like you can with users. This allows you to do a regex pattern. #1777990 (Bug #97591) Including a compiled version of Redis server and cli within swarm. This helps ensure that the version of Redis that is used is the same as we have verified and tested against. Minor new functionality in 2019.2 #1834020 (Bug #99308) New API endpoint to trigger the Redis cache verification process. Just calling '/api/v9/verify' will trigger the verify to start. If you append a context of "user, group, project or workflow" it will only trigger for that context. If Swarm finds differences between the data it holds in its cache and the data in the Perforce Server, it will update the cache. #1832149 (Bug #99334) Config settings to support cache integrity checking. By default this is set to '03:00' and will trigger a verify daily at 3 am. This takes input of 24 hour clock or number of seconds. #1826202 (Bug #94779) You can now use regular expressions in the mainline branch identification configurable. The project overview markdown file no longer needs to be in the mainline branch of the project. This allows you to set a standard php regex pattern that matches your preferred mainline. For example if you don't use the default 'main', 'mainline', 'trunk' or 'master' but have branches like 'Secret-code-main' or 'library-main' you could add a regex like '.*-main' This would match both of these branches and use library readme if it had one. By default we do an exact match on your string within the mainlines config first. Using the two previous branch names and adding 'secret-code-main' to the mainlines config then we would find the readme from that branch. As we put an ^ (caret) at the begin of every string and an $ (dollar sign) at the end. This means you get the freedom to write any regex pattern you wish. Be aware we do not remove the four default entries, your new mainline patterns are appended not replacements. The first branch (alphabetical by Branch Name) that is found with a readme will be used. #1826076 (Bug #98885) Config option added to allow you to change the location Swarm puts the links under in Jira. By default Jira puts links within the "links to" section if you have setup Jira to work with Swarm. #1823924 (Bug #98224) Swarm will now put an activity feed entry into Project Activty if you are creating or updating a project. This is to help track who is changing the project settings. #1816178 (Bug #98676) The new blacklist config is now respecting group and users blacklist by default. #1810331 (Bug #94767) Adding the ability to allow members of a Project to view the project settings page even if they are not allowed to edit them. This allows members to see who the required reviewers, default reviewers and moderator are for a given project or branch. To enable this feature edit the config to this: 'projects' => [ 'allow_view_settings' => true ], By default we hide the deploy and test settings from members. Owner and Admins can still see and change them. #1808334 (Bug #98802) Implemented a new API that allows you to clear the redis cache. If you provide a context of "user, group, project or workflow" Swarm will clear the cache for each of them. If you do not provide a context it will clear all of them. #1789762 (Bugs #98139, #98447) Update the ui to provide a running icon on the review list, to use an svg icon and to make the button neutral in colour #1787850 (Bug #94745) Added the ability for Authors of a review to sync their review description back to the associated changelist. Only available if you are editing the description of a pre-commit review and you are the original author of the changelist that created the review. #1786907 (Bug #90633) Swarm reports a more meaningful message when a user tries to access a private project that the user is not a member or moderator of. #1780656 (Bugs #98158, #98159) We now cache the config.php file, this is for performance purposes. This does mean that if you tweak the config.php you will need to clear the cache using the new API that clears the config cache. This is a "DELETE" method only endpoint. /api/v9/cache #1762882 (Bug #97857) A few enhancement to help with logging. - Updating the public/queue.php file to work with multiple P4Ds to log the add task. - Adding logging into queue manager to output the queue status when we shutdown an event. - Adding a log entire into Swarm log when we add a task to the queue list. Bugs fixed in 2019.2 #1839357 (Bug #99495) Fixed the review approval logic that should have prevented approval if someone votes the review down. #1830503 (Bug #98232) Handle the case of a user not being present on a pass/fail test callback URL #1830175 (Bug #99185) Swarm 2019.1 mails not sent if headers contain non-ascii: Invalid header value detected errors #1829765 (Bug #99126) An email should be sent for 'A committed change comment is created' #1809271 (Bug #86472) Spaces in protections and clicking to download a zip generates a 500 error and throws InvalidArgumentException error. #1782802 (Bug #97330) Swarm log, report if notification emails are not sent due to restricted change #1776907 (Bug #98049) Catch the exception about project or group name being too long from spec depot. Dropping max bytes down to 950 as this ensures we don't hit the identify error we were getting. -------------------------------------------------------------------------- Bugs fixed in 2019.1 Patch 1 #1829459 (Bug #99283) Always render comment markdown in safe mode, to prevent xss #1826690 (Bug #99198) Fixed a non-blocking operation that was causing the group cache to become locked. #1826282 (Bug #99082) Swarm cache file for Jira project wasn't being created or updated. Fixed the issue where if the Jira project cache hadn't been created we wouldn't link to change, commits, jobs or reviews. -------------------------------------------------------------------------- Major new functionality in 2019.1 #1769492 (Bug #91389) Add a 'Markdown' view option in the Files section of Swarm that obeys the 'markdown' configuration settings. This will enable files to have an additional Markdown view in the 'Files' section of Swarm. #1747980 (Bug #97027) Upgrade Zend Framework to latest and improve our internal setup to support PHP 7.0 and greater. Minor new functionality in 2019.1 #1771944 (Bug #94210) Archiving/Unarchiving comments now puts events into the activity stream. #1770668 (Bug #85252) Putting a 'started' status on tests to highlight that a test has been fired off and then show this on the review as a blue spinner icon. #1770625 (Bug #72068) Making the activity feeds follow the display_fullname logic. If enabled show full name if not enabled show only the ID. #1770603 (Bug #97932) Review page, display prominently which revision is being viewed and total number of revisions. #1764671 (Bug #91997) Making the html email contain the markdown rendered version of a comment instead of pure text. #1762929 (Bug #91391) Add more markdown file extensions for project overview #1762088 (Bug #91440) Upgrading the Parsedown to 1.7 #1746372 (Bug #97282) Add an api/session endpoint for create/get/delete of session data. Bugs fixed in 2019.1 #1773031 (Bug #79931) Jira issue ID's will not linkify unless surrounded by whitespace See comments on Jira card for implementation notes #1771954 (Bug #95392) Add activity for when a workflow is created or updated. #1770828 (Bug #97821) Large refactoring of the event listener order and priority level. For more information on this please do reference the documentation. #1770225 (Bugs #93752, #95148) Ensure we credit the user that has changed the description in the history tab. #1770062 (Bug #97936) Fix issues with mixing Emoji's and markdown. #1768841 (Bugs #93983, #93984) Creating a project or group with a name over 950 characters causes a 500 error on the page. #1764615 (Bug #97935) Fixing a typo in our Emoji for disappointed #1764161 (Bug #97915) Configuration to support markdown and raw view for files/project readme. #1762063 (Bug #93208) Fix issue where error messages coming back from Jira are causing json encode errors in the logging process. #1760510 (Bug #91088) Fixing swarm diff issue when filetype has been changed between revision. If the file type was set to utf8 and then shelved for review and then in the next revision changed the filetype to text swarm won't have displayed the content change if any. It will now use the diff2 option of '-t' which force context diff even if filetype are different. #1745267 (Bug #97342) Re-instate the 'groups' stored on a review #1745119 (Bug #97327) Fix emoji's for multi p4d #1745078 (Bug #97256) Adding the OBJLoader.js to allow Obj files to be rendered. #1744877 (Bug #97271) Added support for @mention of unicode user names. #1740186 (Bug #97239) Add sso_enabled to Server definition in react #1739272 (Bug #96994) Putting a loading icon onto each of the instances. If you login to a server and hit reload the turning arrows will appear till it has checked the connection and helps prevent being able to double connect. #1739259 (Bug #97228) Missing subproject with parent activity can fail to show projects page #1733247 (Bug #97108) Prevent server list overlap when error message is shown #1733196 (Bug #97073) Global dashboard keyword search should include review id #1732755 (Bugs #97070, #97071) Better support for Okta as an SSO test instance, handle require_login=true #1729542 (Bugs #96992, #97032) Correctly filter dashboards by instance, using a class rather than excluding servers as the latter results in a re-mount when reinstated. Use blank strings rather than un-i18n for empty filters, the net effect of the un-i18n strings was that the filters were never being not applied, but the filtered list contained the correct data. #1728925, #1729010 (Bugs #96473, #96517) Server side changes to support SAML #1728877 (Bug #97047) Update the iconset and correct missing usage thereof. -------------------------------------------------------------------------- Bugs fixed in 2018.3 Patch 1 #1746000 (Bug #97332) Fixing the data attribute selector to allow multi P4D to have different CSS or JS run against. #1745600 (Bug #97223) Adding a login form to the global dashboard top navigation bar. #1740955 (Bug 97129) Additional feature with the new SSO login, if you require a custom logout URL you can now define this for Swarm. By default this is set to null and is ignored. To set your own please use the following: 'environment' => array( 'logout_url' => , ), #1738681 (Bug 96359) Introduced a new config to allow the ability to show full names instead of user IDs. This is a config under 'users', by default is disabled. To enable, add the following to your config: 'users' => array( 'display_fullname' => true, ), This is used on page such as Settings pages, Commit pages and the Edit reviews dialog. #1738259 (Bug #97228) Added some logic around the project data to ensure we can display project when they are missing. -------------------------------------------------------------------------- Major new functionality in 2018.3 #1710576 (Bug #96470) If your Helix Core Server is configured for SAML SSO, Swarm now supports Single Sign-On (SSO) using Security Assertion Markup Language (SAML). #1710560 (Bug #96366) You can now connect a single Swarm server instance to multiple-Helix Server instances. If Swarm is connected to more than one Helix Core Server instance, your Global Dashboard displays a list of reviews that you may need to act on for each of the Helix Server instances connected to Swarm. Minor new functionality in 2018.3 #1714885 (Bug #96373) Display the Queue info status in the System info page, this is the same information that is displayed by the /queue/status page request. Added a new endpoint of /queue/future that allows you to see what future tasks are left to process. This is also displayed in the Queue info tab to enable better debugging of queue workers. #1714765, 1725435 (Bugs #96582, #96922) Updating the compiled latest patched P4PHP against 2018.2 API. Also requiring an upgrade to the P4PHP if you manually install the PHP extension. #1707219 (Bug #89892) Your dashboard now displays a Refresh button when new content is available for your dashboard. Bugs fixed in 2018.3 #1704671 (Bug #91070) Fix the download zip of a review that contains files in multiple folders. #1701752 (Bug #96339) Removing the default maximum fetch value and setting it to 0 #1701133 (Bugs #95933, #96157) Fixed an issue where review revision would be false. Swarm is now able to handle these values and display the review revision correctly. -------------------------------------------------------------------------- Major new functionality in 2018.2 #1685903 #1687010 #1693690 (Bugs #95811, #95968, #95984, #96172) Prevent default reviewers being removed from reviews associated with projects, and branches with Retain default reviewers enabled #1684341 (Bugs #81136, #91070, #95771) Allow exclusionary mapping in Project branches. Removing the overlay client spec for branch views. Zip for reviews has been improved, the zip archive no longer flattens the folder structure. The project branch view was built using the "+" overlay sign. This means that the client view would look strange when browsing to http://Swarm-host/project/PROJECT/files/BRANCH/ Removing the + notation from the client means that you will get extra folder structure if the common path is higher or lower than the first branch path. #1669829 (Bug #95426) If you create a review with multiple branches with different moderators, we have introduced a configuration option that allows you to choose if any moderator can approve or if you require a moderator from each branch to approve. By default it is set to "any" which means if any moderator from any branch on a review approves the review it will be approved. If you use the option of "each" this means that a moderator from each branch needs to have approved the review before the review will move to approved state. #1659857 (Bug #72443) Implemented a way for Authors or Admins to Obliterate a review from Swarm. An obliterated review cannot be reinstated. By default, obliterate is disabled for authors. This is to prevent authors obliterating reviews by mistake. To enable this feature for authors you must enable the the option in the reviews section of config.php: "allow_author_obliterate" => true This allows authors to obliterate their own reviews. WARNING: There is no way to recover these obliterated reviews if this is used. #1654107 (Bugs #93924, #94453) Make projects as an item in the top menu with a separate page. Tech preview in 2018.2 Technology Preview features are currently unsupported, might not be functionally complete, and are not suitable for deployment in production. Technology preview features are subject to change and may be removed before they become fully supported features. These features are provided to the customer to solicit interest and feedback, with the goal of full support in future releases. Customers are encouraged to provide feedback and functionality suggestions for Technology Preview features before they become fully supported. Implementing Workflow rules for a project or branch. This has introduced lots of different ways to restrict the way in which a review or commit is processed. New trigger entries have been implemented to deal with these workflows and must be enabled to allow workflow to work correctly. By default this new feature has been turned off. To enable this feature you need to enable: 'workflow' => array( 'enabled' => true, ), Then you will also need to include the three new trigger lines: swarm.enforce, swarm.strict and swarm.shelvesub You can get the correct output for these by running the trigger example output: perl /p4-bin/scripts/swarm-trigger.pl -o You can include the "-c" flag and the conf file location. This will give you examples of the trigger lines. If you previously used the enforce or strict triggers you will need to comment these out to use workflow triggers. Minor new functionality in 2018.2 #1695162 (Bug #96183) Introduce a short term cache for project data to improve performance. #1692714 (Bug #96151) Added configurable for the trigger timeout, on both HTTP::Tiny and curl. Added configurable to control what happens on either a timeout, or a missing Swarm server. Admin has the option to ignore such errors so they don't prevent a commit if they are taking too long, or if Swarm is down. New trigger options are: TIMEOUT=30 IGNORE_TIMEOUT=0 IGNORE_NOSERVER=0 Also updated the errors returned when unusual events happen, to hopefully simplify and clarify. #1689661, #1691533 (Bug #95939) Adding the logic to the transition method to check if the minimum number of up votes have been met. #1688912 (Bug #95954) Disable the voting requirements menu when a sticky minimum is set to required and an existing review minimum of 1 is increased to required. #1667459 (Bug #94705) API endpoint to support voting #1657916 (Bug #94615) Adding a new API endpoint to allow you to fetch a list of users and their details. Ability to limit by a list of users or limit the fields that are returned. #1687349 (Bugs #95942, #95943) Adding the UI and the filter for minimum up vote work Bugs fixed in 2018.2 #1698992 (Bug #96241) Remove unnecessary 1201 search #1698600 (Bug #95711) Last moderator has the option to approve the review without voting. #1697033 (Bug #95048) Ensuring the Overview tab is shown on all pages within the project view if a readme.md is present. An individual review page will not show the project toolbar if the review spans multiple projects. #1696896 (Bug #95466) Ensuring the upgrade path doesn't throw an error if the review hasn't been defined. This normally happens if the upgrade is rerun. #1696314 (Bug #95509) Added Alt text for home and help icons in the toolbar. #1695676 (Bug #95993) Removing the need to run 2012 key search from the users page. #1695184 (Bug #95640) Improve handling of moderation on the dashboard by only showing reviews that the moderator can action. #1693692 (Bug #95554) Reload the reviews page on login #1693667 (Bug #96195) Fixing API docs bug with broken table due to use of pipe in parameter description. #1692748 (Bug #96165) Change the getAffectedByChange from using the handler to using a foreach as this seems to improve performance. Additional performance improvements are: - Keeping a hash of all the maps we are using for branches - Keeping a hash of all paths being used. Both of these are improvements to help us not issue additional calls we don't need to. #1692723 (Bug #95701) If the digest is missing for a ktext file, skip comparison. This occurs if a file has been deleted as part of this changelist, so we don't need to do a digest comparison. #1692721 (Bugs #95969, #96181) Default retained reviewers are kept on the review when an update to a review is done or reviewers are modified. #1692055 (Bug #96164) Optimise Project isInvolved to avoid unnecessary calls #1691973 (Bug #96146) Project fetch by ids should not clone the entire cache before filtering #1691357, #1691981 (Bug #96145) Filter by ids should not modify the cached iterator #1691251, #1692094 (Bug #95727) Use p4 counters instead of the cache for getting individual projects. This is a performance improvement in 2 scenarios where there are a high number of projects: 1) Project save will not need to wait for the cache to reload prior to the page refresh 2) Where we get data for individual projects the cache file will not need to be loaded into memory #1687016 (Bug #95981) Use array_keys/array_flip instead of array_unique on change/review job list. This avoids having gaps in the array passed to change->setJobs, which in turn prevents a core dump on save. #1686998 (Bug #95857) Enforce that branch name is provided in the UI #1686467 (Bug #95940) Adding the new MinimumUpVotes to Project model. #1685923 (Bug #95813) Prevent UI elements from reducing the minimum voting requirements for reviewers(user&groups) that are sticky(i.e. have a minimumRequired value) #1684941, #1685656 (Bug #95792) Optimisation of the calls to find which projects are affected by a given changelist. #1684315 (Bug #95810) UI for default reviewer retention #1683848 (Bugs #95814, #95844) Add default reviewer retention property to project and branch models. #1683367 (Bug #95737) Home page performance has been improved. #1679236 (Bug #95617) Do not send batched email notifications for comments if all the comments have been closed #1675488 (Bug #95543) Prevent a review becoming approved or committed when there are still moderator approvals needed, remove approve from moderators who have approved already #1674364 (Bug #95618) Validate stream query parameter passed to activity call #1673664 (Bug #95427) Take account of new moderator approval rules #1673065, #1673377 ,#1691958 (Bug #95287) Prevent unwanted mail notifications when the role on a project cannot be determined #1671988 (Bug #95504) prepend link with fully qualified base #1671950 (Bug #95204) Update a review's branch membership on content change #1671363 (Bug #95236) Putting in some locking to help prevent the review listener from taking control of the review before the commit has finished processing the task. #1670024, #1671954 (Bug #95425, #95428) Support the approvals field in the Review model; allows get/set/approve. This is to help with the multi branch moderator approval feature. #1669912 (Bug #95511) Project review branch filter search box shows "Project" not "Branch" with no search term entered #1664399 (Bug #95037) Creating a new endpoint that allows you to see the next transition state. /api/v9/review/{id}/transitions { isValid: true, transitions: { needsReview: "Needs Review" } } #1663905, #1666401 (Bug #95209) Fixing the double line ending when expander is used. #1663853 (Bug #95235, #95269) Projects page add button should be privileged and have the correct link #1663667, #1666444 (Bug #95238) Fixing the dashboard dropdown to contain the correct data to display the project name rather than the project ID. #1662517 (Bug #95207) Adding %quote% tag around shelve-delete trigger. #1656048 (Bug #88953) Removing the old add activity endpoint and moving it to API only. Allow non-admin users to create their own events #1655197 (Bug #94135) Silence notifications when specified #1654199 (Bug #95056) Delayed comment notifications were always seen as comment edits #1654149 (Bug #93971) Fixing the username and email wrapping problem on the user page. #1653515 (Bug #93743) Fixing the Group vote icon when the review is updated and the vote becomes stale. This is now reflected in the review page. #1652700 (Bug #94626) A description comment should indicate that it was made on a description #1652689 (Bug #94206) Changing the wording on the history tab when a user replies to a comment. It used to read "5 days ago bob commented on review 23456801" after this change it will read "5 days ago bob replied to a comment on review 23456801" #1651426 (Bug #94507) Removing the likes from a comment when the content of the comment has been edited. #1644280 (Bug #94815) Don't remove the inReplyTo header from an email if this is the first email in a thread. This header shouldn't be needed in the first email, but removing it seems to cause problems for Thunderbird, in that it fails to thread correctly if it's missing. -------------------------------------------------------------------------- Bugs fixed in 2018.1 Patch 2 #1699267 (Bug #96277) Diff is not shown after garbled characters. #1691958 (Bug #95287) Prevent unwanted mail notifications when role on a project cannot be determined. #1688445 (Bug #096053) If the Operating system does not have HTTP::Tiny installed for perl, the Swarm trigger falls back to using Curl instead. The payload that was generated for the shelvedel, wasn't being attached to the curl request. -------------------------------------------------------------------------- Bugs fixed in 2018.1 Patch 1 #1659947 (Bug #95186) Fixing the Timestamp display time. Timestamp was displaying the wrong time and date on the review revision selectors. #1657813 (Bug #95127) Fixing the show more lines button at the bottom of a file. Instead of showing a few extra lines, it was mistakenly showing all of the lines to the end of the file. #1656932, #1657772 (Bug #95108) Fixing swarm-trigger.pl which was not handling extra parameters being passed to it. Also put some extra checks around the processing of the shelvedel event to ensure we do not empty a review by mistake. #1656897 (Bug #95056) Delayed comment notifications are always identified as comment edits even if all comments are new. Fixed to only be identified as edits if there are any edited comments. #1650837 (Bug #95016) Comments have lost their width restriction on rendering -------------------------------------------------------------------------- Major new functionality in 2018.1 #1635329, #1635613 (Bug #91807) Enhancing the delay comment email feature. By default the delay tick box is being removed and all comments will be delayed by 30 minutes/ 1800 seconds. If you want the comment emails to go out without any delay time, you can set the new config option to 0 and this will send notification immediately as comment is posted. Each time a comment is added or edited the delay time will be reset to 30 minutes. Once the last comment is add or edit and 30 minutes has passed Swarm will automatically send all delayed comments out in one email batch. #1623050 (Bug #89713) The review revision slider bar has been changed into two drop downs to allow users to select the two revisions they would like to compare. We have also introduced the additional options of being able to select the base revision of the review to diff against or the head revision of the review. Head was added to allow users to see if their review needs resolving. #1620890 (Bug #94101) Updating trigger to cope with the shelve-delete case. Adds a number of new arguments to the trigger script, since we have to pass CWD, CLIENTNAME, USERNAME and list of file arguments to the trigger now. Process the file arguments to ensure they are all beneath the same root. This requires checking for and removing any .. parts of the path, and changing the CWD to account for this. Some file arguments may be depot paths, and they will be passed to Swarm as depot paths. There could potentially (though unlikely) be a mix of local filenames and depot paths. Adding the following prerequisites to the triggers: Ubuntu: libjson-perl CentOS: perl-JSON Windows: Already included as part of Strawberry Perl. Perl CPAN module: JSON #1619070 (Bug #94103) The event listener for the delete shelf trigger. This will handle the event and remove file(s) from a review depending on if we are able to. #1614852 (Bug #94102) Adding the config option to enable shelf deletion detection. By default the trigger will be turned off with an empty states array. If you want to be able to delete files from specific review states add the state(s) you want to include in the states array. Valid review states are:'needsReview','needsRevision','rejected', 'approved' We don't recommend that you add the approved:commit and archived states to the lists. The reason for this is that when you want to tidy up your own pending changelist you might mistakenly update the review with the deletion of all the files in the review. #1612156 (Bug #92266) Adding the ability to use the second factor authentication in P4D server within Swarm. #1604122 (Bug #64898) Adding threaded comments to Swarm. You can now create a threaded comment to a depth of 4. The thread depth can be increased or decreased at a system level. Minor new functionality in 2018.1 #1640585 (Bug #93964) Adding check for the server version to the trigger script. If the server version is too old, or not patched, then the shelvedel part of the trigger is not supported. To do this, we need to parse a %serverVersion% argument to the trigger, so that we can check the major and patch level. We have an array of patch levels for the versions we support. Anything older than 2016.1 is rejected, and anything newer than 2018.1 will be automatically accepted. For versions in between we need to check the patch level (changelist number) for that version. #1639013 (Bug #91986) Allow user to choose if they see dates in Timeago format or Timestamp. This is selectable in the user’s settings page. By default we keep it as Timeago. If admins want to have timestamp as the default this can be done in the config.php file. #1638416 (Bug #94592) Spawn a child process on Windows because fork() is not available. Because Windows does not have a fork() it is necessary to spawn a child process to simulate what fork() would have done. To achieve this, a new undocumented option (-z) has been added, and the code skips past the fork call if -z was passed. The -z is added when the script is being run on Windows and is about to invoke fork(). Instead of fork(), Win32::Process::Create() is called, launching perl.exe, passing the script and its options (and -z) as arguments. #1638315 (Bug #94753) Making the pop up text for mark comment/file read/unread clearer. #1637379 (Bug #94138) Add the action that caused the email to be sent to the mail header. This will help people filter emails based on the action that caused the email. #1636747 (Bug #94692) Adding a post and notify button to each of the comment boxes to allow users to send their comments immediately. #1635642 (Bug #94885) Added the ability to mark all comments as read. There are now two new buttons on the top bar of the review that allow you to mark all the comments within this review as read or unread. #1634173 (Bug #87696) Enhanced the file expanders used to show more context. You can now show 10 lines above or below current diff with two separate buttons, you can show all of the content between two diffs with a another button. Added the ability to show all lines to the top of file and to the bottom of file using two separate button. This allows users to control how much of the file they want to see. #1633429 (Bug #66560) Added the ability to mark a comment as read. This is very similar to how mark a file as read works and it just greys the comment out and limits the amount of space it uses while viewing the files within the review. #1631768 (Bug #94215) Removed the project sidebar opacity on member count. Swarm was making the members count on the sidebar on the home page fade out and when you get to large numbers of projects you almost could not read the member count. #1631061 (Bug #94478) Introducing a new configurable at the system level to change how many lines the "show more context" buttons can display. We default to 10 as this seems to be an acceptable number of lines to understand the context of the change. #1630870 (Bug #72451) Support added to allow users to comment on change and review descriptions. #1626174 (Bug #84866) The review history page now includes the version the activity happened against. This gives you a clear view of what happened on each revision of the review. #1623437 (Bug #94284) Adding the ability to add a pending changelist to a pre or post commit review. #1623067 (Bug #94329) Sort owners and members on the Group settings page #1621863 (Bug #77332) Adding the ability to clearly see if a review is post commit or pre commit review type. Displaying this by using the same icons as P4V uses for pending and committed. #1620929, #1621914 (Bug #88951) Project edit page should show members etc in alphabetical order. #1617842 (Bug #94058) Lift all api controllers to support v9 #1617796 (Bug #68470) Front end work to show the ability to add a new changelist as append or replace. #1617441 (Bug #93962) Support append and replace within the changelist description in the same way we support #review. To append the files within your changelist to existing review you add #append-XXXX. This will add your files to that review. To replace the files within the review with your current files you can add #replace-XXXXX. This will replace all the files within that review with your files in your changelist. #1615959 (Bug #93959) Add support for a new parameter, mode=[append|replace] , to the /api/v9/reviews/:id/changes endpoint #1613704, #1613740 (Bugs #61441, #94007, #94008) UI for user review preferences and their application to changes and reviews #1613258 (Bug #67406) Make "My Projects" the default on the dashboard page. For authenticated users, who have not yet set their default projects view (my vs all), default to "my" projects rather than "all". #1613254 (Bug #94007) Allow diff/review preferences to be stored against a user #1610131 (Bug #93403) When you save a group/project you now remain on the settings page for them. This allows user to verify what they saved is what they wanted changed. #1605657 (Bug #87242) Prevent approval for a review with outstanding tasks (configurable to keep the old behaviour by default) #1604157, #1604159 (Bug #93423) Adding the ability to link back to P4 jobs when using JIRA. If you would like to be able to link your JIRA cards to P4 Jobs then this is possible by turning on “link_to_jobs” and also having P4DTG enabled. #1603058 (Bug #93314) Some work to get same functionality out of Swarm that p4review2 had that notified people if they had //depot/jobs in their review spec it would send them an email about it. #1602144 (Bug #92742) 'My projects' to include projects that I own #1601014 (Bug #92626) Work to make the hover over user userid show full name. #1600771 (Bug #93578) Better support of charsets Bugs fixed in 2018.1 #1643364 (Bug #94581) p4 protects -m should not run for every comment #1642759 (Bug #94516) Eliminate unnecessary p4 search (1202) commands for project lists #1642187 (Bug #94803) Fixing an issue when the setting for “display_change_email” is disabled could result in an error about no email templates. #1639957, #1643301 (Bug #94674) Adding some loading status to the transition dialog to help user know that Swarm is still processing the work in the background. This helps prevent closing of the transition dialog when approve and commit happens and leaving swarm review in a "committing..." state. #1638383 (Bug #94508) Enhancing the email notifications for private projects. If the private project has unticked the send all members and moderators and email on review creation, then we ensure we do not include them. #1635695 (Bug #93926) Fixing an javascript error you could get when inputting text into reviews page search boxes. #1631631 (Bug #94502) Swarm was not sending emails out to reviewers of the review when the review was committed outside of Swarm. #1631630 (Bug #94170) Fixed an issue when you added a filename into a project branch mapping it could cause Swarm to not display the project. #1625385, #1626126 (Bug #94217) Fixed an issue were if you were to edit a group notification you would get an error about must have owner. This was fixed for older version of PHP that works differently. #1622116 (Bug #94327) The apple ⌘ key was mistakenly being escaped and showing html encoding in the shortcut dialog #1621915, #1623987 (Bug #92244) Treat inline `code` the same as block ```code``` in linkify. Otherwise, comments with `<` or other HTML entities are escaped and become < in the rendered text. #1619592 (Bug #90815) Trim _ and * from words in linkify code to handle markdown better. When encountering something like _word @user_ the linkify code would not recognize the @user and would produce unexpected results (link would be HTML escaped and it had the wrong reference). This change strips underscores and asterisks from the word to better recognize the @mention. The drawback is that users and groups cannot have trailing _ and * and still be referenced correctly. #1617772 (Bug #94140) Remove the 'Check all' from user preferences #1617736 (Bug #) Updating the compiled latest patched p4php against 2016.2 API #1617547 (Bug #93623) Special case _url config values and do not lowercase their values. The customer states that when the avatars URL values are retrieved from the config, they are lower cased. This is problematic. However, it seems that Swarm wants to lowercase values for easy comparison. As such, special case any config value whose path ends with _url. #1615266 (Bug #90604) Avoid URI limits in reviews request for users with many projects. The reviews page was sending every project identifier that the user was a part of on the URL, and exceeding the default Apache LimitRequestLine value. This change replaces that filter-value with a new "projects-for-user" along with a user ID, which the reviews controller then replaces with the actual project IDs. This avoids any drastic changes to the code. #1612538 (Bug #) Fixing the mistakenly logging users out when closing any modal dialog. Also noticed the success.png wasn't been found when in partial mode so resolved this. #1604561 (Bug #93687) Fix email notifications for opt_in users that have no role #1604163 (Bug #93753) Tooltip adjustments to show id and full name #1604100 (Bug #93491) Adjust the wrapping for id/description columns in dashboard. #1603741 (Bugs #93764, #93788) Improved the display of group names that are long. They now wrap to allow display of the other information on the page. #1602047 (Bug #90443) Do not show moderator role on the dashboard if the review cannot be approved yet. #1600772 (Bug #91741) When calling projects API with option fields readme should only return when listed #1600757 (Bug #93620) User name tooltip to be consistent #1596793 (Bug #90087) Improved the scrolling of review transition dialog, when you have lots of different job status. #1597534 (Bug #89230) Fixing Inline comments not breaking when lines are very long -------------------------------------------------------------------------- Bugs fixed in 2017.4 Patch 2 #1622027 (Bug #94142) Fixed the scenario when a user is added as a reviewer but is not a member or follower of the project, the user will not receive the commit email. The user will now receive an email. #1621905 (Bug #94371) Updated the P4PHP binary included with Swarm to fix an issue in the API. Users without a password were rejected because crypto exchange expects a token. Users without a password can now log in to Swarm. #1621582 (Bug #94228) Improved handling of comments with no revision number. Now when you click on a comment without a revision number the latest revision of the review is opened. -------------------------------------------------------------------------- Bugs fixed in 2017.4 Patch 1 #1607458, #1608076 (Bugs #93764, #93806, #93928) Improve long Group/Project name wrapping for Microsoft browsers. #1606326 (Bugs #93863, #93901, #93905) Fixes to the JavaScript to better support Microsoft browsers. - Unable to make a default reviewer a required reviewer via the branch drop-down setting dialog on Internet Explorer. - No drop-down dialog appears when '+Add Branch' button in project settings page is clicked on Internet Explorer. - 'Map' is undefined JavaScript error on Internet Explorer 10. #1605687 (Bug #93687) A non-member of a project does not receive email notifications when a review spec is setup and honor_p4_reviews is true #1605669, #1609142, #1610151 (Bug #93846) Projects with a member project can fail notifications -------------------------------------------------------------------------- Major new functionality in 2017.4 #1590566 (Bug #92193) Add support for default reviewers at the branch and project level. #1587857 (Bug #92780) Adding the ability to @@mention a group auto adds them to the review participants list. If you @@* it adds the group as require all. If you @@! it adds the group as require one. Minor new functionality in 2017.4 #1595196, #1595203 (Bugs #93504, #93506) API endpoint to get a list of default reviewers for a given changelist ID #1594153 (Bug #90292) Provide a configurable to enable swarm to support more encoding types. #1593079 (Bug #93415) Add an api endpoint to provide projects affected by a changelist #1592102 (Bug #92839) Show dashboard role as reviewer if user is in a quorum group that has met criteria #1592081 (Bug #92596) Prevent use of moderators-groups as a project in the API #1591817 (Bug #93350) Give the author change block a right margin, used the same value as tasks so that the spacing will be the same with change review author disabled #1591640 (Bug #93062) Create an API for changes including default reviewers #1591638 (Bugs #92195, #92196) Project API request to include default reviewers for version 8 #1590126 (Bug #92991) Adding the ability to remove all followers from your own user page or another user's page if you are admin or super. #1589583 (Bug #93325) Project display name should be shown in auto-suggest #1588528 (Bugs #92402, #93239) "Show More Context" row no longer appears at the end of the file 1. Re-instated the 'Show more' bar 2. Improved the messaging when diffs are truncated #1584512 (Bug #89741) Configurable for test disable on approve and commit Bugs fixed in 2017.4 #1595827 (Bug #93554) Fixing performance issue with projects fetching readme and searching too deep down the depot tree structure. #1595336 (Bug #91034) Fixing the issue when swarm is running against a Windows P4D server the unzip can fail due to camel case protections. #1594753 (Bug #93508) Dashboard performance improvements. Modified a few of the dashboard queries to make them more efficient and improve loading speed. #1593203 (Bug #93389) Improved the Upgrade of swarm key data to not update the review last updated date when issuing the upgrade endpoint. #1592554 (Bug #92922) Prevent linkify parsing off the end of code blocks and ignoring subsequent @mentions #1592082, #1593106 (Bug #93412) Wrap items in the project sidebar rather than let them overflow the dashboard. Applied the existing .force-wrap class to the sidebar project attributes #1591346 (Bug #92570) Don't offer the current group in the members dropdown #1589558 (Bug #92781) Putting Display name onto Groups and projects. #1589542 (Bug #93327) Observations on Show more Context fixes #1587990 (Bug #93312) Fix to remove the $this->p4 from the closure and pass the connection in instead. #1587727 (Bug #93096) Fixing an issue where the change will return an event of mail with no template. This meant it was causing an ERR about no valid template. #1584513 (Bug #93059) Reduce the amount of calls to fetch the timezone of the connected P4D, now cache the timezone to help reduce performance impact. -------------------------------------------------------------------------- Major new functionality in 2017.3 #1576709 (Bugs #92887, #92890) Expand projects into groups then groups into members when the group is not using a mailing list. #1574656 (Bug #92805) Removing the users avatars from the review page if they are a member of a group which is a participant on a review. #1573690 (Bug #92461) Now only show group avatars in project sidebar instead of exploding the group out into individuals. #1573175, #1574693 (Bug #92650) Update the api version docs to v7 and allow anonymous /api/version. #1570712 (Bug #92203) UI for group notification settings. #1569595 (Bug #92681) Make approve and commit take account of groups. #1569358 (Bugs #92635, #92720) When the current logged in user is a part of the review due to being a member of a group that is a reviewer, their menu items will be shown differently. Currently they will be shown the menu items of: Vote Up, Vote Down, and Join Review. The reason they get "join review" is due to them as individuals not being a participant until they cast their vote. If they click the "Join review" button their menu items become: Vote Up, Vote Down, Disable Notification, and Leave Review. Disable Notifications will prevent them from getting notifications sent directly to them for this review, though they will still get notifications sent to a group mailing list (if there is one defined). Leaving the review will clear any of their votes and remove them as a direct participant. However, they will still be a member of the review via the group. #1569194 (Bug #92206) Allow group_notification_settings to be saved in group metadata. #1569165 (Bug #92205) Update notification settings to work with groups. #1567846 (Bug #92190) Added groups to be included in the @mention list and only show groups if you start typing @@ #1567844 (Bug #91173) Mentioning a group in a review description using @@(*|!) will link to that group and add it as a participant. @@ = add the group as a reviewer @@* = add the group as all required reviewers @@! = add the group as one required reviewer. #1567037 (Bugs #92229, #92230) Improved the dashboard to now include actions you as an individual have to take due to being apart of a group. #1563741 (Bugs #92149, #92179) Ability to view groups as reviewers from the API request. Each group will be prefixed with 'swarm-group-'GroupID. The GroupID is the perforce group name. #1563243 (Bug #92198) Groups can now be viewed on the review page alongside the individual’s reviewers that have been added. The group reviewer has a menu to show all the direct and subgroup members. Users also have the ability to change the group role on the review from optional, Require One or Require All. The group avatar will show the correct vote state based on the members of that group. #1561671, #1563195 (Bug #92201) Groups can now be added as reviewers to a review. #1557483 (Bug #92493) Groups now have the ability to use an avatar in the same way users can. #1553115 (Bugs #92207, #92247) Added the ability to change the email address in the group settings page. #1552877 (Bug #92208) Added the ability to add a group email address via the API. #1548638 (Bug #72452) Configurable added to set the default sort order on the reviews page. This can be set to 'updated' or 'created', to list reviews by most recently activity first, or by most recent created date first. #1546810 (Bug #91718) Changing the roles filter of review search, so user can filter reviews according to whether I am "just an Author", "a Participant but not an author", or "a Participant or Author". Minor new functionality in 2017.3 #1573194 (Bug #92809) Dynamically manage the overflowing and scrolling of the edit reviewers modal; so that autosuggest never disappears but lots of reviewers still allows scrolling to the form buttons. #1571516 (Bug #92586) Autocomplete allows * or ! before the username or group in at mentions. #1569931 (Bugs #92511, #92594) Adding additional global notification settings. - review_opened_issue - review_required_vote - review_optional_vote These can only be set at a global level. #1566967 (Bug #92633) Removing the bell icons from the groups page. #1560222 (Bug #90023) Better distinction between users and groups by showing a title above each grouping. #1557324 (Bugs #90018, #92491) Enhanced the user page to show the user's email address on the sidebar. #1553022 (Bugs #91719, #92429) Add additional Notifications for Global and User: - I am the moderator of a review, and files in the review are updated. - I am the author of a review, and the review is committed. - I have changed the state of a review (should default to false). - I am the author of a review, and tests on the review have completed (tests have passed, or tests have failed). #1552908 (Bug #91999) The progress bar for the reviews page has been improved. #1551363, #1551811 (Bugs #92180, #92181) Update the API doc to include the moderators-groups as a field in the branches. #1549768 (Bugs #92172, #92174) Allow groups to be added as modertators in a project moderator branch. #1543562 (Bug #70512) Allow a deleted project to be undeleted with a curl request #1543281 (Bugs #86639, #92285) Add X-Swarm-Review-Id/Author headers to allow emails to be filtered and set utf-8 encoding. Bugs fixed in 2017.3 #1556959 (Bug #92529) Added some validation to ensure that project members where not being added to the notification list when a review was updated. #1553867 (Bug #92448) Added some handling around the reviews page fetching more records then it required to load the page. #1552791 (Bug #92432) Put some handlers in place to deal with unexpected character encoding that swarm did not handle. If Swarm does not understand the encoding will convert the character into ? to allow the show more button to continue to work #1550088 (Bug #92444) Fixed the review State Filters that was not working in IE11 #1548609 (Bug #91969) Users interested in a project did not always get commit emails if opt_in_review_path is set #1542425 (Bug #92019) Fix to resolve the reviews not updating. The issue is due to workspaces having files in pending changelist when it should have been cleaned up. -------------------------------------------------------------------------- Bugs fixed in 2017.2 Patch 2 #1549954 (Bug #92444) Review state filters in the Reviews page on Swarm/2017.1 and Swarm/2017.2 show a console error with MS IE11. #1550085 (Bug #92285) Re-instate MIME encoding of email headers removed after Swarm 2016.1. -------------------------------------------------------------------------- Bugs fixed in 2017.2 Patch 1 #1539964 (Bug #92340) Fixed an undeclared property which was failing when accessing users fullname against no unicode enabled servers. -------------------------------------------------------------------------- Major new functionality in 2017.2 #1532256 (Bug #92061) Fix issues with display of limited diffs. #1529588, #1529647, #1533980 (Bugs #90654, #91642, #91650, #91769) Improve the user experience when reviewing large files. Two new configurables have been created to allow admins to tune and improve the page load time. Size of the file in bytes displayed in the browsing 'files' array( 'max_size' => 1024 * 1024, ), Number of diffs shown before file is truncated 'diffs' => array( 'max_diffs' => 1500, // maximum number of diff lines // without manual user override ), #1524707 (Bug #91782) Improve performance for the Vote up and down filter. This means the request only fetches reviews which the logged in user is a participant of. This helps limit the amount of data we have to process on post filter. #1524597 (Bug #91756) Introduce a new configurable to limit the number of files to be displayed. This configurable controls if 'Expand all' is available for reviews by specifying a file limit over which the option will not be available. 0 signifies always on. 'reviews' => array( 'expand_all_file_limit' => 10, ), #1523805 (Bug #91798) Zend have a built in cache class which helps improve load time of pages. We have configured Swarm to use the cache class loader. #1521677, #1524714, #1525522 (Bugs #91673, #91695, #91755, #91780, #91781, #91782, #91811) Removing the resetting of the FETCH_MAXIMUM which was causing us to fetch all the reviews and hit memory limits. This does cause the reviews page to do lots of Ajax calls to try and fill the page up if you have fewer reviews for X filter. #1520113, #1520876 (Bug #90952) Implementing the 'I have not voted' filter for reviews. This is to allow the user to get a list of reviews they are participating in and have not yet voted or their vote has gone stale. Minor new functionality in 2017.2 #1523878, #1524740, #1524624, #1533964 (Bugs #91833,#91834, #91835, #92130, #92145) Re-branding of product updated. #1531205 (Bug #91930) The comments filter now includes the author as a participant when fetching reviews. #1529997 (Bug #89066) Allow longer time to download a file - configurable value default to 30 minutes same as archive 'files' => array( 'download_timeout' => 1800, // Time allowed before download of a // non archive file will error default // 30 minutes (must be in seconds) ), #1528515, #1528516 (Bugs #87586, #89689, #90701, #90702, #91286, #91953, #92053) Removing the need for curl/wget in the swarm trigger script. This should simplify configuration and installation, especially on Windows. VERIFY_SSL - Defaults to 1, if 0 then will not verify SSL certificates, allowing self-signed certs to be used on a web server. Also now outputs the error reason if there is a non-200 response from the server, and checks to ensure that no content has been returned even if there is a 200 response. Since the Swarm endpoints don't return any content from a trigger call, if we see content then possibly we're not configured to talk to the correct web server. #1528166 (Bug #91240) Introduced a review cleanup script as example of how to tidy up reviews that may have many pending changelists associated with them. This can be found in the API section of the documentation. #1520123 (Bug #90855) Moving the activity stream to its own page if a readme.md is present or not disabled. #1520087, #1521604 (Bug #91627) Added feature to check if group tab is disabled. If it is disabled we remove groups from the search box. #1519006 (Bug #91670) Ensuring that shelved changes in Swarm only show the @mention users based on the mentions mode that has been set. #1519005 (Bug #91598) Upgrading Jquery to 3.2.1 #1517927 (Bugs #91395, #91432, #91433, #91434) Making sure the mention mode for pages like reviews/changes and jobs have taken effect. Bugs fixed in 2017.2 #1533627 (Bug #79136) Fixing bug with trigger SSL verification, and making sure a ping command outputs any errors to the console. #1532234 (Bug #91857) Fix to make the state buttons on the reviews page sticky. #1532216 (Bug #91962) Corrected the display of file history where in some edge case integrations were being left off or displayed incorrectly. #1531115 (Bug #91839) Email threading not working correctly for outlook users. Corrected the threadIndex and added additional debug output. Also added new configurable to allow the threadIndex to be turn off or on. 'mail' => array( 'index-conversations' => true, ), Some mail application and servers can deal with the indexing themselves. #1530952, #1531161 (Bug #91866) When using the delay email (batching) it wasn't taking the configuration option 'notify_self'. This meant that the Author wasn't being added to the recipients list. #1530881, #1530904 (Bug #92033) Upgraded Zend to 2.2.10 due to PHP 5.3.3 compatibility limits. #1530040, #1532193 (Bugs #92002, #92003, #92004) Fixes for cleanup API return values both with and without the reopen parameter. #1530007 (Bugs #91417, #91612, #92141, #92159) Comments mentions and project owners/members search should use user full name. #1529630 (Bug #89986) Improved the frequent calls to the groups command, which now uses a local cache to help speed the request up. This also helps lower the number of Perforce commands Swarm issues. #1529623 (Bug #91913) If a review author has been deleted we don't log this as an error when getting the review. #1529616 (Bug #91860) Fix review index storage when a review commit fails. If a review is approved:committed and it fails (perhaps due to resolution needed) the review state index remains at approved. This is because the indexes get updated before the commit runs. If the commit fails we should roll back to the previous state so the index value and the review agree. #1529602, #1529923 (Bug #91783) Fix the global search functionality that wasn't able to fetch data from the cache. #1526033 (Bug #91742) Fixed the mail module that would exit without warning if the Perforce user was deleted. #1523803 (Bug #91640) Fixed Unicode character issues searching full name. #1518979 (Bug #91549) Add some defensive code to cope with user clone errors. -------------------------------------------------------------------------- Bugs fixed in 2017.1 Patch 2 #1516348 (Bug #91548) Dashboard incorrectly showing user as Moderator. #1516683 (Bug #91510) URL to documentation from pending changelist dialog is not correct if Swarm is running on non-default URL root. #1517575 (Bug #91613, #91592) Comment boxes at the bottom of files are not visible, making it difficult to add comments in this situation. -------------------------------------------------------------------------- Bugs fixed in 2017.1 Patch 1 #1514634 (Bug #91503) Fix to documentation for the new notifications configuration. -------------------------------------------------------------------------- Major new functionality in 2017.1 #1507398 (Bugs #91013, #91014) Added User settings UI page for email notifications. #1504132 (Bug #90741) Adding new functionality that allows the automation of cleaning up user's pending changelist, if settings are enabled. #1502499, #1503697, #1504157 (Bug #89906) Added support for Global notification configuration. #1499167 (Bug #90426) Implemented the support to display Readme.md file for Projects. #1496945, #1508873 (Bug #86498, #90885) Added support for Markdown in comments. Markdown in comments is limited to syntax which doesn't break the flow of the page. #1493811, #1496152, #1496156 (Bug #90559, #90562, #90671, #90672) Additional review filters have been added to allow users to filter their reviews list based on: If they have commented on a review and if they have voted on a review. #1488307 (Bug #89886) Implemented Action Dashboard on home page to allow user to see what reviews require their action. #1485432, #1485462, #1489449 (Bug #86758) Added support for PHP7 in P4PHP and Swarm. #1481965 (Bug #89025) Adding functionality to change the author of a review. To enable this feature you need to change this to true. 'allow_author_change' => false, Minor new functionality in 2017.1 #1510372 (Bug #91320) Added ability to disable and limit what markdown is rendered. Settings will be: 'projects' => array( 'readme_mode' => 'restricted' // Modes, "disabled", "restricted", // "unrestricted" ); Disabled = means now markdown rendered at all. Restricted = Will render default markdown but not html elements Unrestricted = Will render everything it can in the file with no restrictions. #1508474 (Bug #90730) Remove old legacy trigger scripts. #1507806 (Bugs #90584, #90759) Configurable project sort order for 'All projects' on the home page #1507137 (Bug #90795) Changed the Reviews page a little to allow it to display a reviews with lots of reviwers on it. Also made it so the actionable buttons like Tasks, Author change and Reviewers buttons go onto a new line once a screen size is too small. #1503645, #1503754, #1503714 (Bug #91012) Implemented user notification settings storage #1499644 (Bug #90703) Adding the ability to cleanup the users pending changelist related to a review when committing the reviews. #1496624 (Bug #90637) Remove the fullname of users from the buttons when added to project so they don't look like the name is being truncated. #1496523 (Bug #90388) Changes to email headers. This change changes how email headers are constructed for reviews. Previously we were assigning random timestamps to emails coming out of reviews, this resulted in users not being able to filter the email notifications coming out of Swarm. Main principle is - all messages should have proper Message-ID and In-Reply-To headers - if this is a new review then the email should only have a Message-ID. All messages coming out of a review should have the header of In-Reply-To pointing to the message-ID of the first email in the chain (new review being requested). All comments to the review itself should be accumulated under one thread, all comments to a specific line in a file in a specific version should have their separate thread. All other messages - actions taken on the review - should have a distinguishable value ie. "action-voted_up" and a timestamp to avoid confusion between messages. The part after "@" sign should be configurable and default to 'swarm'. #1492280, #1498080 (Bug #88949) Enhance Swarm RESTful API to allow retrieving a list of inactive reviews and archiving the inactive reviews in bulk. #1492207 (Bug #87136) Autosuggest dropdown with users for @mentions in comments. Added jquery plugin to enable user dropdown in comments on files/reviews/jobs with new configuration options: 'mentions' => array( 'mode' - either global(default)/projects/disabled 'usersBlacklist' - array of user id's that should not appear on the dropdown It uses a two-fold approach - if we have enabledAll - all comment boxes in all pages in Swarm - the data is fetched from js with an ajax call and then passed down to the plugin. If we have enabledInProjects only comment boxes in reviews that are part of a project will have a list of users that are either a participant on that review or a member of a project. By default the dropdown is disabled. #1490507 (Bug #90062) Review Participants API endpoint This endpoint will enable listing, adding, removing, and updating participants on reviews. It will also allow the API caller to define required participants and place votes. #1488227, #1489225 (Bug #89362) Review page project filtering enhancement to maintain consistency. Added an input field on the projects filter. #1486271, #1490338 (Bug #89614) Updated P4PHP to 2016.2 release which contains a fix for not requiring login -a. #1485328 (Bug #89885) Action Review API to support action Dashboard #1480084, #1487008 (Bug #72450) Add option to sync change/review descriptions. If "sync_descriptions" was enabled and we have updated a change description on a changelist all previous changelists would have their description changed. #1479671, #1486253 (Bug #87275) Only show groups tab for super users. #1479414, #1486693 (Bugs #74561, #80804) Modify the message behaviour on commit failure. Previously we were discarding all messages coming out of p4 and passing down the first line of the message. Modify the behaviour to pass the whole message except the last line for jQuery to render. If message will have more than two lines use the extender to hide the additional output. It will pass down anything coming out of Perforce - so it will also pass any user-defined messages - like messages coming out of triggers - to the frontend. #1478138 (Bug #85037) Override expander to allow any part of the table cell containing the shortened description to be clicked. #1477010 (Bug #63571) Implemented a global 'ignore whitespace' button that toggles ignore off/on. Initially whitespace is not ignored - when you click the global button all files that were not ignoring whitespace and changed to ignore whitespace Similarly when you toggle the global button off all files ignoring whitespace are switched to not ignore whitespace Bugs fixed in 2017.1 #1510345 (Bug #76755) Fixed abstract API controller when the implementing controllers simply return null instead of a json model. #1510048 (Bug #90177) Fixed an issue to allow users the ability to unlink jobs from a review. #1509403 (Bug #91047) Swarm PATCH API endpoints - cannot unset array based parameters #1508938 (Bug #91015) Differentiate mail instance name when in a multi server environment #1507768 (Bug #91100) Tweaked the cache reader to handle failures from fetching all users better and improved performance. #1506970 (Bug #90564) Increased the API version to V6 for all the new API endpoints. #1503190 (Bug #90941) Handle if dm.keys.hide is set and fetch review data as the user running Swarm and validate the normal permissions with the user requesting the zip. #1500863 (Bug #90690) The Swarm home page was giving a bad link for RSS feeds. Fixed the javascript that handled this. #1500020 (Bug #90785) Enhanced the archive API endpoint to allow Super user to change the transition of the review state using the Bulk review archive API endpoint. #1499188 (Bug #90783) Improved the date validation for inactive search as well as archive. #1497510 (Bugs #90717, #90733, #90735) It introduces a configuration option to restrict the number of action items on the dashboard (defaulting to 1000). #1496055 (Bugs #90560, #90586) Improved the review description formatting to break at new lines. #1494480, #1497544 (Bug #90307) If your P4 admin is mis-configured or its ticket has expired, will result in the user now getting a meaningful error message. #1493869 (Bug #89988) Bookmark reviews filter. As we cannot reliably do the same thing for all browsers a decision has been made to include a button on the reviews page to save the url - this button should have a tooltip informing users of an option of saving the current filters by using the browsers built-in function to create bookmarks. #1492312 (Bug #87180) Fixing temporary file creation while handling ktext files. Trigger script was creating a file and trying to run a p4 print against an open file - which would understandably fail. The message returned was not helpful to the customer at all. Changed it so instead of creating a file it creates a filename that later is used with the print command - should fix the problem and it should now be possible to recalculate digests for unexploded ktext files. #1492205 (Bug #90376) Fixing the issue where the project typeahead would auto close when clicking inside the input. This was due to the multiPicker checking if authenticated first then dropping out instead of preventing the closure of the input box first. This has only been introduced because no multipicker was accessible unless logged in. #1491907 (Bug #90380) If you have navigated to a private project and decided to logout, you will now be redirected to the home page instead of a 403 error. #1491863 (Bug #90217, #90218) Make the global whitespace buttons stick between pages. #1490000 (Bug #89983) Filter reviews by participant role only Filter reviews by participant role only On the 'Reviews' page selecting "I'm a participant" should not also return all the views I authored #1489999 (Bug #80507) We should attempt to line break long descriptions to prevent the whole description from appearing in bold. #1487039 (Bug #90243) This change prevents the user from adding a non-committed change to a review from the 'Add commit...', 'Already committed...' dialogs. #1484420 (Bug #89829) Defensive code for trigger script to ensure argument are defined. #1483093, #1490001 (Bug #89908) Perforce admin users should not see all projects Perforce super users should see all projects Perforce admin users should not see all projects; they should be subject to permissions when it comes to project filtering #1481962 (Bug #80366) Close our confirm popover when clicked outside. Before, the only way to close the popover was by clicking on the 'Cancel' button inside it. This could be problematic when the DOM structure changes as it could cause the popover being visually detached from the element. #1481527, #1482019, #1483208 (Bug #89801) PHP 7.0-compatible .htaccess and build.xml files #1480955 (Bug #89891) Make sure if someone updates a review, they get properly credited for the work. Previously if user 'foo' created a review, all updates to that review would be credited to that user. This should make sure anyone who at any point updates the review with a new shelf, is credited for the work, instead of the review author. #1480702 (Bug #88630) Show a better error for invalid group name created via the API #1480070 (Bug #89622) Allow owners to delete a project without needing to be a member #1479660 (Bug #65237) Make branch id in sync with branch name #1474448 (Bug #89662) Fixed a bug where review version slider was always rendered in scrolling mode if review page was loaded with 'Files' tab not active. -------------------------------------------------------------------------- Major new functionality in 2016.3 #1467868, #1471434 (Bug #87694) Implemented horizontal scrollbar for the review version slider. The scrollbar appears if the number of revisions is so high that the distance between revision nodes would be smaller than 30 pixels. Along with the scrollbar Swarm also shows left/right buttons beside the scrollbar to visually indicate that there are more revisions on the plot that cannot all fit in the visible scroll area. #1467839, #1471273 (Bug #87137) Users can opt-out from receiving notifications from a specific review without leaving the review itself. The user receives notification if someone @mentions them again, but otherwise all activity notifications are disabled. #1464475, #1467862 (Bug #76662, #89337) Added a new Tasks dialog for Reviews, filterable by reporter and task states (Open, Addressed, Verified). #1462877, #1468505, #1469467 (Bug #89076, #89487) Swarm Comments API: - New filters when listing comments: - ignoreArchived (boolean) - tasksOnly (boolean) - taskStates (array of strings: comment, open, addressed, verified) - Results can be limited to specific review versions using the new context[version] filter when listing review topics. The API version has been bumped to V5 to accommodate these changes. #1460511, #1461108, #1466651, #1467799, #1467866, #1468376, #1471350 (Bugs #67282, #89145, #89146, #89209, #89242, #89384, #89492) Added a button to download the contents of Reviews and Commits as .zip archives. #1458591 (Bug #87390) Added an option to view only comments attached to the current review version. #1452353, #1453328, #1464507 (Bugs #86857, #88891) Added feature to filter reviews by a specified user. Minor new functionality in 2016.3 #1467904, #1471347 (Bug #89151) When a project is converted from Public to Private, followers are removed to prevent them from accessing the project and receiving project notifications. A warning to this effect is displayed when a project has existing followers and the 'Private' checkbox is checked. #1464600 (Bug #87260) Add a config option to control the default "ignore whitespace" setting for file diffs. $config['diffs']['ignore_whitespace_default'] can now be set to true or false to control this behaviour. #1464415 (Bug #79156) Add hyperlink for review on Commits page. #1462721 (Bug #78162) Configuration option ('mail' -> 'notify_self') allowing users to receive emails for their own comments. #1462538 (Bug #89067) Include a call to cleanFiles() in updateFromChange() - this should help Swarm keep better track of its managed workspaces. #1459119 (Bugs #70655, #88082) Update user profile pages to display more information about project membership. #1453538, #1467872, #1467881 (Bug #67131, #89340, #89371) Added the ability to display line endings (CR, LF, and CR+LF) along with other whitespace characters. #1462197, #1467459 (Bug #72504) Adding a 'My Projects' entry to the project filter drop-down based on customer request. Bugs fixed in 2016.3 #1471099 (Bug #89514) The "Edit Reviewers" dialog now requests a fresh list of reviewers from the server when it opens. #1470023 (Bug #89544) Eliminated some PHP notices and warnings when Swarm is processing review commits. #1467769, #1467783 (Bugs #77869, #79019, #85255) Improvements to Swarm's handling of case-insensitive P4D instances. - Fixed a problem where on a case insensitive server you can end up with duplicate reviewers. - Fixed a bug where a user could approve their own review on a case insensitive server. #1467529 (Bug #70431) Leave files expanded when switching between review versions. #1466334 (Bug #88952) Tweaked searching in reviews queue to include records with literal ID match in results. #1464587, #1465462, #1467647 (Bug #85143) Swarm now treats users and groups containing '/' with more care. #1464505 (Bug #71838) Project followers count shown in the tooltip on the home page is now more accurate. #1455427 (Bug #87983) CSS update to help make it easier to scroll certain files in diff views. #1455374 (Bugs #88652, #88724) Migrate threejs from r64 to the most recent version r81. #1452571 (Bug #87759) Updated Review listener to lock processing the review task via our advisory record lock. This should eliminate a race condition where 2 processes (2 different workers) are trying to process the same review task, which can for example happen when a review is requested from P4V. #1452069 (Bugs #84131, #86502) Activity stream on the user's Profile page now works with usernames containing "\", such as "foo\bar". #1449548 (Bug #88141) Improve load time of Changes page. -------------------------------------------------------------------------- Major new functionality in 2016.2 #1438253 New features in Swarm API V4: - Private Projects support - Support for File-Level and Line-Level Inline Comments #1437756, #1438482, #1441898, #1444540, #1444540 (Bugs #87883, #88471, #88548) The Swarm Comments API now supports making file-level and line-level inline comments on changes and reviews. By specifying the new parameters "context[rightLine]" and "context[file]", API clients can now add line-level comments in Swarm reviews and changes. Specifying only "context[file]" will add a file-level comment. The parameter "context[version]" can also attach the comment to a specific review version (otherwise it defaults to the latest version). To apply the comment to the left side of the diff, use "context[leftLine]" instead of "context[rightLine]". Swarm attempts to build the "context[content]" value itself, but you can optionally provide the five lines of diff output for the line-level comment yourself. This is used in the Swarm UI to detect if the code has been modified since the comment was placed, and will render the "old" code as a preview on the comment. #1436048, #1437222, #1437569, #1437686, #1437750, #1437752, #1438054, #1438237, #1439324, #1440324, #1440706, #1444542 (Bugs #87098, #87729, #87730, #87930, #87994, #88029, #88132, #88360, #88402, #88418, #88523) Swarm now supports the concept of "Private Projects". These are projects that are only visible to Administrators, Super users, Project Owners, Project Members, and Project Branch Moderators. The underlying files are still visible in P4D, unless protections are put in place to hide the files from non-project-members. Private projects can be visually distinguished from regular ones by the "Closed Eye" icon that denotes limited visibility. Swarm attempts to hide the reviews, changes, activity, and comments attributed to Private Projects in various places, such as the list of changes on jobs, and the comments API. If reviews, changes, activity, or comments are related to both a private project and a public project, they are visible to users as though they belonged only to the public project. Reviews with no projects attached are assumed to be public. Change pages do not show request/view review buttons if the change is associated to a review that is not accessible by the current user, or if the resulting review would not be visible to the user. Private Projects cannot have "Followers". Setting a public project to private will conceal the existing unused followers list. Setting it back to public will re-enable the followers. Email notifications are modified for private projects. Links to private projects are filtered out of change-commit and review email notifiactions. Important: When setting boolean values in the API (such as the new "private" flag for private projects), form-encoded requests require using "0" or "1" instead of "false" or "true". The string "false" is considered non-zero and is implicitly (and confusingly) converted to a "true" value. Minor new functionality in 2016.2 #1440162 (Bug #87991) Group name validation now performs more thorough server-side validation. #1438479, 1439663, #1439742 (Bugs #88400, #88536) Extended sanity check in index.php to allow validation of Swarm configuration file. This should produce nicer errors if values for these options look invalid. At the moment, this handles 2 cases: - show error if config.php doesn't return array - show error if short_links are mis-configured (i.e. ensure that [environment][external_url] is set if [short_links][external_url] is set). #1438069 (Bug #87622) Added [short_links][external_url] option to allow specifying custom scheme and/or port for generating short links. This setting is only honoured if [environment][external_url] is also specified, otherwise Swarm might not be able to resolve the short links to correct URLs. #1439046 (Bug #88287) Change the placeholder of 'key=value' to 'property=value' in project edit page. Bugs fixed in 2016.2 #1446331 (Bug #88629) ThreeJS fixes for Base URL support when rendering 3D models. #1438201 (Bug #88438) Minor UI tweak on groups overview page to not show a tooltip with 'You are not a member' on users count badge for anonymous users (they are always non-members). #1437684 (Bug #87644) Comments API: Fixing an internal server error when listing comments on an invalid topic. #1437356 (Bug #87210) Group descriptions are now properly shown in global search. #1437317 (Bug #87851) New warning popover on project save shown when we detect that the user might not be able to edit the project after save. Additionally, project form buttons are disabled when the popover is shown. #1434985 (Bug #88326) Fixed a bug where adding job(s) for changes may not have worked if Swarm is running under a Base URL configuration. -------------------------------------------------------------------------- Major new functionality in 2016.1 #1349976, #1354369, #1359795, #1363946, #1365396, #1369116, #1371461, #1372479, #1372656, #1372707, #1373228, #1374179, #1374273, #1375065, #1375073, #1375075, #1375228, #1375498, #1375504, #1375648, #1375649, #1375718, #1376051, #1376062, #1377591, #1378119, #1378785, #1378791, #1379330, #1383350, #1385018, #1385382 (Bugs #84966, #84967, #84968, #84969, #84971, #84974, #84975, #84976, #84977, #84978, #84979, #84981, #84982, #84983, #84984, #85311, #85602, #85914, #86004, #86059, #86121, #86131, #86232, #86263, #86274, #86372, #86449) Added support for managing user groups in Swarm. You can now view, list, search, add, edit and delete groups. Each group can have notifications enabled so that members of the group get emails anytime another member of the group creates a review or commits a change. When viewing a group you may see activity performed by any member of the group and reviews created by any member of the group. When listing groups, groups that you own or are a member of appear first, groups with notifications enabled appear second and lastly, groups are ordered by name. #1334616, #1334641, #1334707, #1334746, #1336388, #1336866, #1363026, #1365608, #1368601, #1380898 (Bugs #84462, #85188, #85402, #85411) Users can like comments. At the bottom of each comment Swarm now displays the number of likes and a heart icon. The icon can be clicked to 'like' the comment. When a comment is liked, Swarm records the activity and sends an email notification to the author of the comment. #1325760, #1330654, #1338383, #1349339, #1353543, #1353982, #1354643, #1356548, #1356781, #1359595, #1363405, #1374135, #1374751, #1374758, #1375435, #1375931, #1377876, #1378137, #1379283, #1383321, #1383679, #1385021, #1385190 (Bugs #76774, #84359, #84458, #84852, #85003, #85010, #85129, #85307, #85391, #85492, #85537, #85570, #85620, #86060, #86119, #86225, #86350) Added version 2 of the RESTful API (ie. /api/v2/). Version 2 adds the following functionality: list activity, list groups, fetch a group, create a group, update a group, delete a group, fetch a project, create a project, update a project, delete a project, transition a review and commit a review. Minor new functionality in 2016.1 Service Pack 1 (since 2016.1.1/1400199) #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). Minor new functionality in 2016.1 #1382157 (Bug #84535) Improved performance for the Swarm blame button. Using a 20,000 line test file, this change reduces the rendering time from ~60s to ~2s in Firefox and Chrome. Internet Explorer 10 improves from ~730s to ~8s. #1380885 (Bug #86341) Swarm now requires users to be logged in by default. To restore the previous behavior edit config.php and set array('security' => array('require_login' => false)) #1379290 (Bug #84420) Added a "My Reviews" dropdown button to the Reviews page. This allows reviews to be filtered by those that you authored or those that you are participating in. #1374066 (Bug #86011) Added an option to disable Swarm's auto-registration of the P4.Swarm.URL property. The new option can be set in config.php: array('p4' => array('auto_register_url' => false)) #1372999 (Bug #81339) The X-Frame-Options header is now configurable. This header controls when Swarm can be embedded in frames. To disable the header edit config.php and set: array('security' => array('x_frame_options' => false)) #1368888, #1372690 (Bugs #85380, #85542, #86050) Improved performance with large numbers of users or groups. Testing with 10000 users and a comment thread with 100 comments, page load times were reduced from 7s to 250ms. #1361367 (Bug #86519) Updated language files for JA, KO and ZH. #1356521 (Bug #85314) Renamed config options for adding projects to be more consistent with other options. Existing settings are still honored. The 'security -> add_project_admin_only' option becomes 'projects -> add_admin_only'. The 'security -> add_project_groups' becomes 'projects -> add_groups_only'. #1351847, #1352325, #1352326, #1356409 (Bug #81285) Updated the precompiled P4PHP binaries that come with Swarm to use P4API 2015.2/1340214. #1323467 (Bug #77725) To assist with troubleshooting email configuration problems Swarm now logs successful emails at the DEBUG log level. #1321796 (Bug #84384) Updated the project toolbar to look more modern. Bugs fixed in 2016.1 Service Pack 1 (since 2016.1.1/1400199) #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. Bugs fixed in 2016.1 Patch 1 (since 2016.1/1386839) #1399779 (Bug #87077) Fixed an XSS vulnerability where labels in search results were not being escaped correctly. #1398683, #1398909, #1399266, #1399692, #1400199 (Bugs #86663, #86950, #87024) Fixed multiple vulnerabilities involving symlinks. The system now refuses to preview, archive or delete the target of symlinks. Previously, symlinks could be abused to disclose data or remove files on the Swarm server that the user does not have permission to access. Note: The archive feature now requires the 'zip' command. Support for PHP's 'zip' extension has been removed. If the 'zip' command cannot be found, the archive button will not appear. #1394659 (Bug #86805) Fixed an XSS vulnerability where HTML in project descriptions was not being escaped correctly on the home page. Bugs fixed in 2016.1 #1380942, #1381570, #1384005 (Bug #85965) Fixed a bug that could produce two reviews for a single change under certain conditions. If a review was created using both the '#review' keyword and via the P4V integration, there was a race condition that could result in two reviews being created. Now Swarm temporarily locks each change before starting a new review. These locks are Swarm specific and only limit the creation of reviews. #1372509 (Bug #85872) Fixed a minor issue where double-clicking on project settings checkboxes could cause the checkbox to become out of sync with the form. #1365277 (Bug #84965) Fixed a bug where links to users in search results did not work for usernames that contained backslashes. #1359574 (Bugs #80107, #85454) Fixed a bug where ZIP downloads did not work on pending files. #1359011 (Bug #85423) Fixed a problem where URLs with no TLD were not linkified. Swarm no longer requires a TLD in the hostname to linkify a URL. #1355979 (Bug #81600) Reduced the severity of Basic Authentication failures to 'debug'. This should reduce noise in the log file. #1352055 (Bug #76075) Fixed an issue where the buttons on an archived comment could become hard to click if the window was too narrow. #1350832, #1351299 (Bug #85191) Fixed a bug where the user dropdown menu could be partially hidden behind the header on some pages. #1350733 (Bug #85176) Fixed a bug where the branch moderators tooltip on the project settings page did not correctly list moderators. #1349386 (Bug #84995) Fixed a 500 error that could occur when viewing a user's shelved changes if 'dm.keys.hide' was set and the current user was not an administrator. #1338808 (Bug #84906) Fixed a bug that caused the jobs search to throw an exception for queries that start with '^' (not). #1327917 (Bug #84622) Fixed a problem where the test status of a review was not updated if the tests were re-run without making any changes to the review. #1327209, #1327378 (Bug #84629) Fixed a problem that could occur with existing cache files when upgrading Swarm. We now verify that the schema in the cached objects matches the current schema. #1318968, #1330724 (Bug #84650) Fixed a bug where the common path was not being displayed for shelved changes. -------------------------------------------------------------------------- Major new functionality in 2015.4 #1308891, #1308998, #1309707, #1310199 (Bug #63187) Users can now add groups as project members. All members of these groups (or any of their subgroups) become members of the project. Any changes to these groups are automatically reflected in the project. This is designed to ease user management. #1308890 (Bug #71597) You can now diff arbitrary versions of a review. Previously you were limited to comparing consecutive versions of a review. The version slider can be pulled apart to span a range of versions. If you grab the connector then both version markers will move in lockstep. #1307207, #1308095 (Bug #78222) Added packages for RHEL/CentOS 7 and Ubuntu 14.04. #1265420, #1308568, #1309189 (Bug #66264) The user's profile page now has a tab for shelved changes. This makes it easier to request reviews of shelved changes or to see the review status of changes that are in progress. Minor new functionality in 2015.4 #1309162, #1309659, #1309729 (Bug #77809) Introduced a button to show whitespace characters (space and tab) in diff output. When enabled these characters appear as muted dots and arrows respectively. #1255119 (Bug #84195) Added support for previewing the Keynote, Pages and Numbers document formats via the LibreOffice module. Bugs fixed in 2015.4 Patch 1 (since 2015.4/1317923) #1326721 (Bug #84612) Fixed a regression where projects could not be added on Perforce Servers older than 2012.1. #1326575 (Bug #70714) Fixed a problem affecting edge/commit server deployments. If Swarm was configured to talk directly to an edge server, reviews created by that instance of Swarm could not be updated. This is because the change was being bound to the edge server. Now, edge server instances forward review creation to the commit server instance. #1322454 (Bug #84108) Fixed a bug where the user picker could list groups for fields that do not allow groups to be selected (e.g. Project Owners). Bugs fixed in 2015.4 #1316264 (Bug #84197) Fixed a bug in the Perl trigger where posting to Swarm could fail on Windows Perforce Servers. This would only occur when wget was installed but curl was not. #1307838 (Bug #83660) Fixed a bug where links in RSS feeds did not work in some feed readers. RSS feeds now use the fully qualified Swarm URL. #1306055 (Bug #83608) Fixed a bug introduced by the 'edit_branches_admin_only' option. When enabled, this feature unintentionally restricted editing of projects to administrators. #1265682 (Bug #83602) Fixed a bug in the Perl trigger script where the strict check erroneously prevented committing a review in some cases. Specifically: reviews with a single file marked for delete and reviews with moved files. #1265015 (Bug #83589) Fixed an issue where Swarm did not recognize the new utf8 file type as text and therefore failed to render diffs and previews. #1262908 (Bug #77369) Fixed a bug where +l files were silently dropped from reviews. Note this fix requires Perforce Server version 2014.2 or newer with the filetype.bypasslock server configurable enabled. #1261960 (Bug #83277) Fixed a performance problem that could occur if the .git-fusion depot contained changes with more than 10k files. #1255309 (Bug #84196) Adjusted the styling of text file previews so that the page does not shift around when syntax highlighting large files. -------------------------------------------------------------------------- Major new functionality in 2015.3 #1241320 (Bug #66921) Enhanced the Perl trigger to run under Windows. There is now a single trigger script for all supported server platforms. #1239352 (Bug #70542) Introduced a search box that looks for projects, users and files. A search input now appears in the top-right of the toolbar and searches as you type. Results are grouped by type. It looks for projects, users and files that match your keywords. Project and user searches use Swarm's cache. File searches use 'p4 fstat' and P4 Search (if it is installed). #1230860, #1240881 (Bug #64899) Email notifications for review comments can now be delayed and sent in a single batch email later. The add comment form now has a 'Delay Notification' checkbox. When a new comment is posted with this box checked, the email notification is delayed until a comment is posted with the box unchecked. Minor new functionality in 2015.3 #1241441 (Bug #79003) Added a PHP 5.6 build of P4PHP. All P4PHP builds have now been updated to use P4API 2015.1/1240625 #1241268 (Bug #81066) Updated to the new hex-shaped Swarm logo. #1237763, #1239247 (Bug #77648) The 'My Reviews' button now filters reviews to show only those authored by the current user. Added a new author filter to the list reviews API endpoint (GET /api/v1.2/reviews). This bumps the version for all endpoints to v1.2. #1231387, #1231395 (Bug #78004) The project sidebar now displays owners and moderators. #1229476, #1230017, #1230262, #1230490 (Bug #80185) The test status tooltip now shows when the results were reported. Internally, Swarm now tracks the start time and average running duration for automated tests. #1219887 (Bug #80322) Improved handling of multiple or out-of-order test results. Previously the last result would win. Now results for old versions are rejected and we preserve the results of the first failure if we receive multiple results for a given version of a review. #1215329 (Bug #81449) We now show a hard-disk icon for depots when browsing the root of a server (previously depots were represented with a folder icon). #1214788 (Bug #81450) Moved the logout link to the bottom of the user dropdown menu. Bugs fixed in 2015.3 #1241158, #1247062 (Bug #81061) Fixed a bug where sub-groups that reference parent groups caused infinite recursion and exhausted all memory. #1240050 (Bug #81042) Fixed a bug where the Perl trigger script could emit a 'Use of uninitialized value' error when the config file was not specified. #1235955, #1236887 (Bug #80784) Fix a bug where file downloads were not always streamed resulting in excessive memory consumption. This was due to output being double buffered in some cases. We now clear all output buffers when streaming output. #1231393 (Bug #81458) Fixed a bug where the number of moderators was not being displayed next to each branch on the project edit form. #1230829 (Bug #80351) Fixed a 404 that could occur when marking a file as read when diffing two versions of a review if the file was previously shelved and had since been removed from the review. #1230827 (Bug #80538) Fixed an illegal offset warning that could occur when diffing two versions of a review. This would happen if a file that existed in the earlier shelved version of the review was removed in the later version. #1228298 (Bug #80404) Fixed a regression bug where the follow project link did not work. #1225869 (Bug #80501) Fixed a layout issue that occurred if the text input for inline comments was resized horizontally. Now the text input can only be resized vertically. #1220502, #1220960, #1222664 (Bug #77401) Fixed problems that affected the extensibility of the Linkify filter. The last word variable is now updated and passed correctly to Linkify callbacks. #1216034, #1235980, #1241414 (Bug #80348) Pending comments are now preserved when comments are refreshed while editing a comment or adding a comment from the comments tab. -------------------------------------------------------------------------- Major new functionality in 2015.2 #1071421, #1203684, #1204593, #1206600, #1207516, #1207537 (Bug #64896) Comments are now editable. If you are logged in as the user that authored a comment, you will now see an 'Edit' link in the comment footer. Clicking this link presents an in-place edit form that allows modification of the comment body and attachments. #1206282, #1207388 (Bugs #79595, #79596) Added localizations for Simplified Chinese and Korean. Incoming JA, KO, and ZH-CN localizations from AlphaCRC, along with changes to the assembleLocaleData.php script to process the new languages. #1100113, #1205196, #1206305, #1206658, #1331177 (Bugs #70714, #79174) Added support for multi-site deployments. Swarm is now compatible with edge and commit servers. Use of the new Perl-based trigger is required. #1099584, #1101368 (Bugs #75355, #75653, #76342, #77572) Added a new version of the Swarm trigger implemented in Perl. The usage of this trigger is compatible with the existing bash trigger. The new version of the trigger adds support for edge servers and fixes a bug with the strict enforcement mode and ktext files. Minor new functionality in 2015.2 #1212292 (Bug #80033) Updated the Swarm trigger package to use the new Perl trigger. #1207511 (Bug #79934) Changed the subject for change submit email notifications from 'Change @54321' to 'Commit @54321'. #1206503, #1207071 (Bug #78167) IP protections emulation now includes proxy rules. Previously, proxy rules were not taken into account. Now, we treat Swarm as an intermediary and apply proxy rules according to the end user's IP address. #1206494 (Bug #78996) Added an option to limit configuration of project branches to admin users. With the projects > edit_branches_admin_only option set to true, only admins are able to configure branches. #1205521, #1205762 (Bug #72454) We now list jobs and changed files in review email notifications. #1204727, #1207016 (Bugs #78995, #78996) Added an option to limit editing project names to admin users. With the projects > edit_name_admin_only option set to true, only admins are able to rename projects. #1202977 (Bug #79396) Added an option to the Swarm trigger to skip the enforce and strict checks if the change only contains files of the specified type(s). File types to skip can be specified via the EXEMPT_EXTENSIONS config option. #1202975 (Bug #79609) Moderators now receive email notification for commits and reviews against branches they moderate even if they are not members of the affected projects. #1198459, #1198806, #1206279 (Bug #79295) Refreshed the login page. Added a nice background image of some fine folks having coffee and doing important creative work. #1197879, #1197890, #1198475 (Bug #66465) Moved the project edit button to the project toolbar and renamed it to 'Settings'. Tweaked the project form to render with the project toolbar and sidebar when editing. #1171636 (Bug #70542) Swarm now generates host-unlocked tickets on login. This is needed to integrate with other Perforce services like p4-search. #1171629 (Bug #79944) Tweaked line hash handling (ie. #l123) to position the targeted line 1/4 of the way down the page. Previously it was positioned 100px down the page which often felt too high. #1149485 (Bug #78994) Added an option to the Swarm trigger to skip the enforce and strict checks if the change contains more than a given number of files. The number of files can be specified via the new EXEMPT_FILE_COUNT config option. #1126994, #1144472, #1206760 (Bug #79386) Fixed a performance problem that could occur with large numbers of users, groups and projects. With 5000 users, 5000 groups and 500 projects load times for the project listing have been reduced by >20x. #1099546, #1100888, #1101371, #1101414 (Bug #79315) Simplified the email notification template. The revised template eliminates the grey border and reduces margins. #1072284, #1197886 (Bug #79214) Renamed the 'History' tab and 'History' links to 'Commits'. #1071674, #1073354 (Bug #79203) Comment counts now reflect the number of open (non-archived) comments. Hovering over the number of comments shows the number of archived comments. Previously we only showed the total number of comments for a given topic. #1069597 (Bug #79182) Improved the visibility of 'more context' rows. We now render a horizontal grey line help delineate diff chunks. #1068547, #1209330 (Bug #73003) Updated rules for review transitions to optionally deny authors approving their own reviews. If the reviews > disable_self_approve option is true, then authors are not able to approve their own reviews (even if they are also moderators). #1067114 (Bug #76362) Imagick module now converts ".tif" files. Previously, only the ".tiff" extension was recognized. Bugs fixed in 2015.2 #1214397 (Bug #80087) Fixed a problem where Swarm could continuously reload a review if it had unexpected commit-status data (due to a race condition). #1208398 (Bug #76535) Fixed a bug where OVA setup script did not work with SSL enabled Perforce servers. #1207465 (Bug #79269) Fixed a bug where our handling of Emojis was not compatible with newer versions of Gemoji. #1207464 (Bug #79856) Fixed a bug where some of our 'infinitely scrolling' lists were not loading more items. At some zoom levels Chrome reported a lower than expected scroll position. This caused our code to conclude the user had not reached the bottom of the page. Now we consider the user to have scrolled to the bottom if they are within a couple of pixels. #1206727 (Bug #79800) Fixed a bug where attempting to archive a specific version of a file resulted in a 500 error. #1205188 (Bug #79945) Fixed an issue where the project save button could be erroneously enabled if a project name is entered and user data has not yet loaded (despite having no project members). #1152722, #1205188 (Bug #79945) Fixed a bug where the project save button could be enabled when it should be disabled. Specifically, this could occur when the list of users had not yet loaded, or while waiting to redirect to a newly created or updated project page. #1066846 (Bugs #74987, #76629) Fixed a bug where file and directory names could be missing characters if they contained non-ascii bytes and the web-server was using to a non-UTF-8 locale. We now detect the available system locales and explicitly select one that supports UTF-8. #1065005 (Bug #78165) Fixed a bug where notification emails were not threading properly in Microsoft Outlook. Outlook uses a non-standard 'Thread-Index' header to group 'conversations' and Swarm was not sending this header. -------------------------------------------------------------------------- Major new functionality in 2015.1 #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 new functionality in 2015.1 #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. Bugs fixed in 2015.1 #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:///queue/add/ 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. -------------------------------------------------------------------------- Major new functionality in 2014.4 #982485 (Bug #76736) Swarm is now distributed under a BSD-style two-clause license. #965185 (Bug #76239) Performance has been significantly improved for sites with a large number of protections entries. This should be particularly noticeable when browsing files. #905488, #962547 (Bug #73830) Added options to disable sending emails to all project members for commits and new review requests. The project edit page now has two checkboxes that can control project notification emails. Minor new functionality in 2014.4 #986364 (Bug #76961) Added 'apiVersions' to the output of the 'version' endpoint. This field includes a list of all of the api versions supported by the instance of Swarm (e.g. 1, 1.1). #970399 (Bug #70284) It is now possible to limit the range of changes shown on the history tab to a specific range using change numbers, dates, labels, etc. #968015 (Bug #66742) Project creation can be limited to only users under specific group(s) by setting 'add_project_groups' under the 'security' config. This feature is disabled by default. #967909 (Bug #76291) Swarm can now be configured to leave reviews in an approved state even if they are updated with modified files. By default, reviews will still revert to 'needs review' when they are updated with modified files. To have reviews stay approved even when modified files are added set 'unapprove_modified' to false under the 'reviews' configuration. #965024 (Bug #74656) It is now possible to specify required reviewers when creating reviews via the API. Bugs fixed in 2014.4 Patch 1 (since 2014.4/988814) #1000792 (Bug #77218) Fixed an issue where the workers could stop running if upgrading from 2014.2 via RPM packages. #991899, #992629 (Bug #77048) Fixed an issue where the RPM packages could erroneously disable the Perforce PHP extension on upgrade. #990382 (Bug #76971) Fixed an issue where the RPM packages did not require the DOM or mbstring extensions needed for RSS feeds and multi-byte strings. Bugs fixed in 2014.4 #986536 (Bug #76569) Fixed a problem where buttons did not always disable properly when submitted. This only affected some browsers and appeared to be caused by a race condition between the click and blur events. #985713 (Bug #76963) Fixed an issue with our icon sprites. Previously when scaling up your browser view, some icons would erroneously show pixels from adjacent icons. Now the sprites have generous spacing to avoid this issue. #972442 (Bug #76382) Fixed an issue where the submit button on the "Add a Commit" and "Already Committed" dialogs could erroneously stay disabled after a change had been selected. #968046, #969029 (Bug #74760) When emulating IP protections, enabled by default, Swarm will now correctly treat protection entries as as case-insensitive when dealing with a case-insensitive Perforce server. #968037 (Bug #75488) Fixed an issue where @mentioned and @*mentioned users were not added as reviewers when creating a review using the API. #967896, #967998 (Bug #73701) Fixed an issue where committing to a streams depot via the Swarm web interface could erroneously report 'No files to submit'. #950565 (Bug #72392) Fixed an issue where LibreOffice could become unresponsive. Generating doc previews should now be significantly more reliable. #939315 (Bug #74463) When a 'strict' or 'enforce' Swarm trigger fails due to bad credentials, include the active P4PORT setting in the error message to help diagnose problems more easily. #933049, #933477 (Bug #74860) Updating an approved review with unchanged ktext files will no longer cause it to erroneously revert to the needs review state. Note, this fix only works when operating against a 2012.2 or newer Perforce server. #898943 (Bug #72908) Fixed an issue where the horizontal scrollbar could disappear if a collapsed file toggled between side-by-side and inline diff. #897986 (Bug #66554) Fixed an issue where logging in to comment on the left hand side of a side-by-side diff would collapse the comment row. -------------------------------------------------------------------------- Major new functionality in 2014.3 Patch 2 (since 2014.3/958056) #967594 (Bug #75006) Swarm is now free of charge for all Perforce users. A Swarm license file is no longer required for operation. Major new functionality in 2014.3 #890602 (Bug #66725) Added the option to show 10 more lines of context on diffs by clicking on the blank row that separates the diffs. #889932 (Bug #73703) When a review is updated with modified files, existing votes will now be marked as 'stale'. Stale votes will be shown with a faded icon and will not count towards up-votes or down-votes. #889492 (Bug #63260) It is now possible to mark files in reviews as 'read'. To mark a file as read, click the 'eye' button on the far right of the file header. The read flag is remembered independently for each user along with the version and file digest information. If the contents of the file change, the 'read' flag automatically clears. This feature can be helpful when reviewing lots of files. #884641, #887942, #889744, #890743 (Bug #63263) Swarm now supports treating comments as light-weight tasks. Tasks can be marked as 'addressed' and may optionally be 'verified'. #877136 (Bug #73157) If a change has been associated to a review, Swarm will always update the review when files are shelved or the change is committed. Previously, if the #review-123 or [review-123] style keyword wasn't present, the review would not have been updated. #854977, #863042, #873042, #875837, #876579, #889563 (Bug #70664) Swarm now has an API that exposes and documents various tasks that were previously difficult to accomplish. The API supports listing reviews, retrieving information about an individual review, creating a review from an existing pending or submitted change, adding a change to a review (making it the new Head revision of that review), listing projects, and creating new entries in the Activity list. Authentication is handled using standard HTTP Basic Auth, with either a password or a ticket. Note that passwords will not work in higher-security configurations, so a ticket may be required. Minor new functionality in 2014.3 Patch 1 (since 2014.3/896879) #957494 (Bug #74292) Added support for optional POST params when configuring automated tests on a project. Data can be specified in either get=param style or as {"json" : "values"} Minor new functionality in 2014.3 #886023 (Bug #73067) Comment attachments will now be cached by the browser for 12 hours. This will decrease jumpiness when rendering attached images. #882741 (Bug #73058) The Swarm cron script now supports starting workers on SSL-enabled Swarm hosts that utilize a self-signed certificate. #879274 (Bugs #62048, #69646, #71743, #72202) The Reviews page now updates the URL to reflect search terms. This allows users to bookmark or share searches and ensures the search results are shown correctly when navigating browsers history. #878436 (Bug #73357) Swarm will now linkify occurrences of "changelist <#>" in comments and changelist descriptions. #878206, #878814, #879346, #879579 (Bug #72736) The Swarm OVA is now built using Swarm packages. This allows the user to more easily upgrade Swarm. #875126 (Bug #66253) The jobs page now updates the URL to reflect search terms. This allows users to bookmark or share searches and ensures the search results are shown correctly when navigating browsers history. #871859 (Bug #66355) Dropdown menus in Swarm can now be operated via the keyboard. #870337, #870357 (Bugs #70905, #71325, #72767) Several enhancements have been made to the Swarm JIRA module. JIRA Swarm links now include a snippet of the change/review description. Additionally, editing a submitted change description or adding/removing jobs on a change or review will update JIRA Swarm links. Note, old links are not automatically updated to include descriptions. #862937, #870621 (Bug #69205) Swarm now has a default tab-size of 4 in Chrome, Firefox and Safari. Internet Explorer does not support tab-size and will still display a tab width of 8. #860398 (Bug #66357) Added a 'system' avatar for activity not associated with a particular user (for example when tests pass or fail). #860346 (Bug #73032) Swarm now allows changes by specific users to be ignored from the perspective of starting and updating reviews. This is enabled by specifying 'ignored_users' under the 'reviews' config. #860321 (Bug #73057) Mainlines are now listed first under the Review queue's branch filter. #855740 (Bug #67654) Added support for rendering SVG images in file preview, file diffs and comment attachments. #853423 (Bug #72412) The #review keyword is now more forgiving of nearby punctuation. #848771 (Bug #72359) Swarm now automatically reverts review state back to 'Needs Review' when approved reviews are updated with modified files. #846902 (Bug #72448) Added a swarm of bees that fly around your cursor on the error page. As you move your mouse more bees surround your cursor. Over time, if you hold your mouse still, the bees go away. #842916, #851529 (Bug #72559) We now do a case insensitive lookup for @mentioned jobs. #842660 (Bug #73720) Basic Auth is now a supported means of authentication. This means that actions which previously required 2 steps (performing a login, writing the resulting cookie to a cookie jar, and then performing the actual action) can now be streamlined into a single request. The username must match a valid perforce user with permissions to perform the action, and the password can be a valid ticket or the user's password. Note: Some p4d security levels only allow the use of tickets in this context. #840855 (Bug #72696) Upgraded jQuery to 1.11.1 and added the jQuery sourcemap. #839881 (Bug #72704) Adjusted the sorting of files and directories when browsing to put hidden (e.g. '.foo') files and directories last. #836802 (Bug #72385) For inline comments, the row will now collapse when the last open comment is archived. Bugs fixed in 2014.3 Patch 2 (since 2014.3/958056) #967444 (Bug #73582) Fixed an issue where the Debian packages could fail to properly install the Perforce PHP extension. The Debian packages now work correctly on Ubuntu 13.10, 14.04, 14.10. Bugs fixed in 2014.3 #893456 (Bug #73882) Fixed an issue where URL-encoded characters could erroneously show up in filenames under the activity feed or comments tab. #892728 (Bug #73833) Logging in with the incorrect cAsE user id on a case insensitive p4d will no longer prevent transitioning and approving reviews. #892681 (Bug #73832) Fixed an issue where using characters like % and # in your filename would cause errors when trying to show full context. #892564 (Bug #73824) Fixed an issue where placeholder text in IE erroneously acted as default values for new inline comments under sideways diff mode. #892532 (Bug #73826) Fixed an issue where the comments could overlay code lines if the comment was wide enough to wrap and diff scrollbars were showing. #891999 (Bug #73759) Swarm will display a warning if thread-safe PHP is detected. This is because P4PHP is does not support threaded operation. #891941 (Bug #71531) Ensure all emails are set to use UTF-8 encoding so extended characters display properly. #890428 (Bug #71549) Attempting to commit a review with out of date files no longer logs an exception. An error is still shown to the user in the Swarm UI. #890422 (Bug #72918) If Swarm encounters a task file it cannot delete; it will no longer process it and will abort the worker. This will prevent endlessly reprocessing the task. #890342, #892319 (Bug #73718) The windows trigger script now wraps the path to curl in quotes allowing curl.exe to be under a path with spaces. #888871 (Bug #73599) Fixed an issue where using the context menu to paste content into the comment form would fail to enable the post button. #887895 (Bug #71805) Adding a new comment will no longer show files that were attached to a previously posted comment. #886698 (Bug #73581) Performance improvements for rendering larger files in IE. Performance was increased by about 30% for the rendering of the side-by-side Diff mode. For files with more than 1000 lines this can still be very slow, we plan to continue making improvements. #880741 (Bug #65586) Introduced tab history tracking for IE9. Previously IE9 would load the correct tabs for urls with tab ids but would not insert tab ids when navigating tabs in Swarm. #879459 (Bug #67480) ARIA labels have been added to the filter buttons on the Reviews Queue in order to expose their meaning to screen readers. #877109 (Bug #73296) Swarm will no longer enter an endless loop when the 'swarm' group references recursive sub-groups. #873881 (Bug #73084) Fixed an issue where users would sometimes be required to login to comment despite having recently logged in. #863379 (Bug #66712) Swarm will no longer fail to update reviews when the Swarm admin user has changed. #861147 (Bug #73037) The json output for projects no longer leaks automated test and deploy settings. These values can include sensitive data such as auth tokens. #860313, #861755 (Bug #73056) Improved handling of empty descriptions in commit and review email notifications. We no longer append a trailing '-' to the subject and we no longer output an empty description block in the body. #855747 (Bug #72716) Fixed a bug where selecting the already active project/branch filter would erroneously clear the filter. #860349 (Bug #61897) We now prevent service and operator type users from logging in. #851970 (Bug #72825) Fixed an issue where Swarm was generating 'Unknown command' errors on Perforce Server's using structured logs. Instead of running a null command, we now run 'help' to avoid the error. Further, we only test the connection if it appears necessary which should provide a minor performance boost. #849546 (Bug #72860) Following an inline comment link to a file open for 'add' no longer produces a JavaScript error. #848957 (Bug #72845) The trigger script will now fallback to curl if wget returns an exit code of 126 or higher. Previously we only fellback for 127. #842648 (Bug #72680) We now correctly detect files of type 'import' as being adds. #842413 (Bug #72707) Reviews now only reference projects/branches impacted by the current version. #841620 (Bug #70219) Invalid/non-existent jobs added to a change no longer result in a HTTP-500 error. #841606 (Bug #71843) Uploading a directory now results in an error message, not an unreadable white bar. #836796 (Bug #72523) IE11 is no longer erroneously detected as being Firefox by Swarm's generic error handling code. #836814 (Bug #72435) Modal dialogs now display on top of tooltips, previously they could erroneously overlap the dialog. -------------------------------------------------------------------------- Major new functionality in 2014.2 #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 new functionality in 2014.2 #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. Bugs fixed in 2014.2 Patch 2 (since 2014.2/841040) #853220 (Bug #72903) Administrators can now disable system info along with the related log and php info pages by setting 'disable_system_info' to true under the 'security' config. By default, system info is still accessible to authenticated admin or super level users. #853054, #853496, #853533 (Bug #72881) The CSRF token is now passed as a POST param not a GET param. This should reduce the risk of exposure in logs, referrers, etc. #846204, #853041 (Bug #72805) Fixed a local XSS vulnerability in error messages when posting forms in Swarm. Bugs fixed in 2014.2 Patch 1 (since 2014.2/835154) #840956 (Bug #72712) Made the details about changes to reviewers (e.g. 'Added user as a required reviewer') easier to distinguish from the description of the review in email notifications. #840731 (Bug #72698) Adjusted edit reviewers activity to clearly report when users are added. Previously we just stated 'Made user a required reviewer'; it was unclear if they were being added or edited. #839300 (Bug #72658) When upgrading Swarm, browsers would sometimes hold onto outdated CSS and JavaScript potentially resulting in errors. Links to the minified CSS/JS now include the Swarm patch number to avoid this. #838036, #838043, #838150 (Bug #61429) Added CSRF protection to all mutative actions. For authenticated users, requests that are not a GET (e.g. POST, DELETE, PATCH, etc.) must now include a valid _csrf token. Actions which are 'login_exempt' or 'csrf_exempt' do not require the token to be passed. #835869 (Bug #72611) Fixed an issue where Swarm was not setting the 'Remember me' cookie with the secure flag when appropriate. #835868 (Bugs #72548, #72568) Swarm can now be used in deployments where a proxy/balancer handles encryption and forwards plain HTTP traffic on to the Swarm server. When 'https_strict' is enabled, we now always send the HSTS header and we always flag cookies as secure only. Additionally, we now allow the administrator to disable the HTTPS redirect for HTTP clients by setting 'https_strict_redirect' to false under the 'security' config. #835821 (Bug #72565) We now only start a session when needed (e.g. anonymous users don't get a session until they try to login). We also attempt to clear the session cookie on logout or session expiration. #835815, #835866 (Bug #72678) The diff endpoint will now produce a 404 error when attempting to diff a non-existent file. Previously a 500 error was produced. #835789 (Bug #72566) Swarm now supports specifying a session lifetime. If the session is not accessed for the specified duration, the user will be logged out. By default the duration is 30 days but can be adjusted by setting the 'gc_maxlifetime' under the 'session' config. This feature will apply when using the default file based session storage. Other storage backends are presently unverified. #835577 (Bug #72564) Swarm no longer sends two Set-Cookie headers for the SWARM session ID on login. There is no functional change, this is just an aesthetic improvement to the response. #835554 (Bug #72571) Fixed an issue where toggling the 'Remember me' checkbox on login did not correctly adjust the session lifetime. Bugs fixed in 2014.2 #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. -------------------------------------------------------------------------- Major new functionality in 2014.1 #774422, #775409 (Bug #70659) Swarm now renders 3D model files (.STL, .OBJ or .DAE) in the file browser and diff. The viewer will attempt to pull in referenced resources, including MTL files, in the model objects, but will only be able to display textures if they are web-safe images (e.g.: .PSD textures will not render). If using a modern browser, and hardware acceleration is available, the viewer should run smoothly. If using a modern browser, and there is no hardware acceleration available, the viewer will run without WebGL, and may be slow; we don't auto-rotate in this case to reduce CPU utilization. If you are not using a modern browser, you will just receive a 'viewer not supported' message. #772465 (Bug #68885) Git users may now perform pre-commit reviews using Swarm, via Perforce Git Fusion. To start a pre-commit review, simply push to /reviews/master/new, where 'master' is the target branch. More details on usage are available in the Swarm documentation. #767962, #775774, #776148 (Bug #66723) Restricted changes are filtered from the UI if the user does not have permission to view them. Minor new functionality in 2014.1 #775670 (Bug #65494) Swarm checks for the existence of the config.php file and if not present, displays a suitable error to the user. #775412 (Bug #68201) RTF files, although text, will now be rendered through the LibreOffice module if present. #772469 (Bug #70803) The strict and enforce trigger types can now be scoped to just changes in a review using the -r flag. This allows unreviewed changes to proceed, but changes in a review must be approved. #771462 (Bug #70758) When calling automated tests for a review, Swarm now lists only branches impacted by the current change in the {branch} and {branchName} keywords. #770126 (Bug #70798) The amount of time and memory that worker processes use is now constrained. Previously, a worker could use an unlimited amount of memory and run for ever (no limits). Now, the limits for a worker can be set in the config file and default to 1GB and 30min respectively. The 30min timeout is reset for each task. No task can spend more than 30min of CPU time. #765295 (Bug #70583) For a project's branches listed on the project page, the mainline branches are displayed first, and the remaining are now sorted alphabetically. #762726, #763003, #770626, #773997 (Bugs #70611, #70612, #70613) Further reduced memory consumption in the processing of users and groups. For example, with 10,000 users and over 1,000 groups, Swarm previously used ~140MB of memory when populating the caches and ~120MB when reading from the caches; with these changes, memory usage drops to ~35MB and ~12MB respectively. Bugs fixed in 2014.1 #777472 (Bug #70940) Fixed an issue where improper permissions on the token directory would result in an infinite loop. #774788 (Bug #70842) Fixed an issue in Chrome when viewing a large image retrieved from cache would cause the page to continually refresh. #773886 (Bug #70813) Fixed display issues in IE with the filename bar on a review page. #772345 (Bug #70774) Improved the scrolling performance in Chrome on Review pages by manually instructing the browser which areas to repaint when scrolling a file. #769901 (Bug #70797) Fixed an issue where filenames with special characters were improperly displayed in a comment tagline. #769859 (Bug #69623) Fixed an IE11 performance issue when viewing the Reviews page. #766082 (Bug #70599) Fixed an issue when browsing project files would cause a HTTP 500 error if one of the project's branch definitions contained a path ending with a slash (as opposed to '/...'). -------------------------------------------------------------------------- Major new functionality in 2013.3 #749961, #750778, #751112 (Bug #69119) Swarm now allows participants to vote up or down on a review. The reviews page replaces the participants columns with an up/down votes column. #730156, #747698, #748957 (Bug #69279) Swarm can now emulate IP-based Perforce protections. Swarm will check the user's IP address and use it to apply any necessary restrictions, such as when browsing files, viewing file content, viewing & adding comments on files. #724625 (Bug #60905) Added ability to comment at the file-level on reviews and changes. Files in changes and reviews will now have a footer to display and add comments similar to the existing inline comment interface. Minor new functionality in 2013.3 #751165 (Bugs #68207, #69624) Eliminated redundant commit activity and email notification. This would occur when a change linked to a review was committed. Now, the commit is reported only once. #751085 (Bug #69749) Old invalidated cache files are now cleared out periodically. #750074 (Bug #70114) Swarm will log warnings when Perforce commands take longer than a prescribed time. By default, the print, submit, sync, shelve, and unshelve commands' threshold is 10 seconds; for all others, it is 3 seconds. #749100 (Bug #70023) Swarm will perform XHProf profiling if the 'xhprof' PHP extension is present and requests take longer than a prescribed time (by default, 3 seconds). Data collected will be placed in the data/xhprof directory. #748526 (Bug #70110) When browsing a project's branches, mainlines now appear first and are bolded as they are the most frequently accessed codelines. #747404 (Bug #70017) The Swarm distribution now includes P4PHP binaries for PHP 5.5. #745637 (Bug #69980) Commit email notifications now include a link to their associated review. #734207, #751251 (Bug #69487) Swarm can now display deleted files and folders when browsing files. #732930 (Bug #69636) Added support for hashtag (more formally known as "octothorpe"!) style review keywords; e.g. #review or #review-1234. Note the keyword is only honoured if it is preceeded and followed by either whitespace or EOL/SOL. Unlike the square-bracket convention [review], the hashtag style review keyword can appear anywhere in the description, not just at the beginning or end. #728989 (Bug #60909) Users can now comment on jobs in Swarm under the new 'Comments' tab on the job page. When there is a new comment, Swarm will send an email notification to users listed in 'user' fields in the job, @mentioned in the job description and users of associated changes. #728163 (Bug #69542) Avoid session locking to improve performance when making multiple simulatenous requests. This should improve the ability to browse in other tabs while file previews are being converted/transferred. #723845 (Bug #64834) Added a system information page (/info), accessible to users with admin privileges. The page displays Perforce Server information, PHP info, and the Swarm log, which can be downloaded. #722080 (Bug #69406) Enhanced the 'jobs' route to automatically prepend 'job0...' if the given ID is numeric and doesn't exactly match an existing job. For example, /jobs/12345 will resolve to /jobs/job012345. #721850 (Bug #69380) Added a new 'disable_commit' option under the 'reviews' section in the configuration. Enabling this option will remove the "Approve and Commit" and "Commit" options from the Swarm web interface. External commits via traditional Perforce clients will still be possible. This setting is false by default. #720456 (Bug #69290) If a user adds themselves as a review participant, Swarm will no longer email the new participant, though all other participants will still be notified. #719792, #719938 (Bug #69245) Added icons next to changes listed on the jobs page to indicate their type (review, commit, pending). #718564 (Bug #69206) Added new 'http_client_options' configuration. This allows administrators to specify HTTP communication options (particularly useful for HTTPS related options) either globally, or host- specific. #716765 (Bug #65289) Improved HTTPS support via a 'strict_https' option. When enabled, viewing an HTTP link will include a meta-refresh to the HTTPS version, a strict transport security header will be included for all HTTPS requests (pinning the browser to HTTPS for 30 days), all qualified URLs will use HTTPS for the scheme, and cookies on HTTPS connections will be flagged HTTPS-only #716542 (Bug #66938) Updated the Jobs page to allow selecting and re-ordering columns representing job fields. Columns can now be selected via the 'Select Columns' drop-down button located beside the search box. Users can select columns to show in the table below by checking them in the drop-down (showing all available fields, where the selected ones are always located at the top of the list). Selected columns can also be re-ordered, either by dragging them into desired spot in the drop-down or in the table header. #714786, #715519, #715658, #719803, #720491 (Bugs #69093, #69647) Swarm has a new design that is cleaner and brighter with fewer borders. The projects sidebar has been moved to the left-hand side of the home page. This fixes an issue loading activity on mobile devices. Events in the activity table are now color-coded (with a thin vertical line on the far-right edge) to indicate the type of activity. #714421 (Bug #69090) Enhanced our emojify filter to make use of Gemoji images if they are installed under public/vendor/gemoji. Gemoji provides support for more emojis and works on more browsers and platforms than the unicode codepoints we normally use. For more information about Gemoji, see https://github.com/github/gemoji. #713201 (Bug #68815) Introduced 'use_bcc' configuration item under 'mail' to address recipients of changelist notifications via the BCC field instead of the TO field. See the Email configuration section under Administration of the documentation. Bugs fixed in 2013.3 patch 1 (since 2013.3/759531) #762450 (Bug #70489) Fixed an issue with the automated test and deployment integrations where the branch ID was passed but documented as the branch name. We now provide both the ID and name for branches and projects, and the documentation has been corrected. #762417 (Bug #70490) Addressed a browser performance problem involving collapsed files on review and changes pages. #761990, #762232 (Bug #70467) Improved the efficiency of processing Perforce groups to reduce memory consumption. For example, with thousands of users and groups, memory consumption is reduced by approximately 80%. #761155 (Bug #70461) Fixed the queue location when using the SWARM_DATA_PATH override. Bugs fixed in 2013.3 #757302 (Bug #69995) Fixed a bug where multibyte UTF-8 sequences in user ID's could lead to HTTP 500 errors. #755964 (Bug #70225) Fixed the activity display for a user whose ID contains a period. #751230 (Bug #69672) Fixed erroneous 'approved' email when committing a review from Swarm where the review was already approved. #751219 (Bug #69696) Fixed an issue where including an invalid change number when adding a commit to a review would throw an exception instead of returning a nicely formatted error. #751195 (Bug #65646) Fixed an issue where the 'Commit' button in the Commit Review dialog became prematurely enabled. #751100 (Bug #69666) Fixed an issue where some errors were not being displayed when failing to commit a review from Swarm. #751043 (Bug #67471) Fixed an issue where a long description of a history entry would not be collapsed. #751013 (Bug #68809) Fixed an issue where a change description that contained a line with only a period as its content would cause email notifications to be truncated at that point. #747494 (Bug #69651) When showing historic context lines on comments, the old context will now only be shown once when it applies to multiple sequential comments. #747607 (Bug #70022) Swarm now properly disconnects from the mail server after sending an email. Previously, a timeout error could occur if a worker processed multiple email related tasks. #746579 (Bug #65666) Swarm no longer throws an HTTP 500 error when an invalid depot is entered within the change select dialog. #745635 (Bug #69981) When editing a review description, mentioning a user (via @user) will now actually add that user as a review participant. #745911 (Bug #69204) On the history tab, searching for a user with invalid characters will no longer generate an error. #743323 (Bug #69928) Previews of office type documents no longer silently fail on CentOS and Red Hat Enterprise Linux. #736065 (Bug #69737) Work around a Chrome bug where clearing out the password field on a long page would freeze the browser. See http://crbug.com/180868 for details. #736112 (Bug #69743) Fixed a race condition that could cause the commit status to become erroneously stuck at 'unshelving...'. #732093 (Bug #66240) Fixed a bug where login would fail against a case-insensistive Perforce server if the username did not match case exactly. #719604 (Bug #69248) Fixed a bug where Unicode or UTF-16 text files were not displaying properly in Swarm; Perforce converts them to UTF-8 and Swarm now flags them as such. #716735 (Bug #69129) Fixed a bug where the wrong timestamp would be shown in the activity feed for certain timezones (e.g. AEST). #712670 (Bug #68949) Fixed a minor bug where the user could erroneously select a header row in the 'Select Job' dialog. -------------------------------------------------------------------------- Major new functionality in 2013.2 #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 new functionality in 2013.2 #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 http://www.emoji-cheat-sheet.com 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. Bugs fixed in 2013.2 #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. -------------------------------------------------------------------------- Major new functionality in 2013.1 #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 sales@perforce.com 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 ' 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 new functionality in 2013.1 #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. Bugs fixed since 2013.1/667767 #674403 (Bug #67464) Fixed a bug where invalid email addresses could prevent valid email addresses from receiving messages. #673093 (Bug #67415) If the change spec was missing the 'Type' field, viewing changes was not possible. Swarm is now tolerant of Type not being present. #673030 (Bug #67381) Fixed a race condition when grabbing tasks out of the queue; in some cases, two workers could grab the same task. This manifested as unlink warnings in the Swarm log file. #672407, #674413 (Bug #67397) If custom triggers send output to stdout or stderr, it could cause Swarm to malfunction when processing Perforce forms. Swarm is now more tolerant of noisy triggers. #672230 (Bug #67274) If the Perforce Server was restarted during the lifetime of a Swarm worker (e.g. a p4d restart), the worker's connection would become unusable causing it to throw away tasks. The workers now attempt to auto-reconnect to Peforce and they will only process tasks if they have a valid connection. #671840 (Bug #67299) Updated the license validator to handle any command exception; this fixes an error that could occur at login on 2010.2 Servers. #671322 (Bug #67354) Fixed a bug where Swarm's defense against ClickJacking attacks was not properly enabled. #671321 (Bug #67350) Fixed an XSS vulnerability in branch name rendering. #670131 (Bug #67309) Fixed a bug where users were not being emailed notifications for submitted changes against projects they followed (but were not members of). Bugs fixed since 2013.1/652715 #667718 (Bug #67180) Noisy change triggers could prevent Swarm from capturing the number of newly created changelists. Swarm now skips over trigger output. #667713, #667741 (Bug #67179) Certain empty fields in jobs (such as 'user') could cause a 500 internal server error. Swarm now checks for empty values before performing additional processing on special job fields. #665389 (Bug #67021) Swarm did not show or diff the contents of Unicode or UTF16 files. These file types are now treated as text and safe to show or diff. #664119 (Bug #67045) Swarm's enforce trigger (designed to prevent un-approved submits) would occassionally reject an approved submit because of a subtle inconsistency in how Swarm was writing review records. #662273 (Bug #66963) Login and other operations that checked a user's group membership could fail with a 500 internal server error if the Perforce Server contained any groups with a null id (ultimately due to Perforce Server Bug #37630). #661073 (Bug #66703) The reviews page could issue an excessive number of XHR requests against the Swarm server when loading more reviews. Fixed the logic that throttles these requests. #660074 (Bug #66886) Fixed an issue where Swarm could produce a 500 internal server error when connecting to a SSL enabled Perforce Server for the first time. Bugs fixed in 2013.1 #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 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. -------------------------------------------------------------------------- Major new functionality in 2013.1 Beta #623534 (Bug #63691) If 'require_login' is enabled, anonymous users can only access the login screen. #621958, #622013 (Bug #60937) Files and history of a project can be browsed directly from the project overview page. #619149, #622680 (Bug #65003) Perforce commands are issued as the authenticated user wherever possible. Minor new functionality in 2013.1 Beta #625175 (Bug #65033) User can click the tests result icon on a review to open the results URL passed back from the automated tests. #624174 (Bug #65032) If a valid user id is @mentioned it will now be included on emails and, if in a review, added as a review participant. #624156 (Bug #65002) Authentication tokens are now required for the trigger script to queue events to Swarm. #624051 (Bug #65013) Users can edit the review description. #623812, #624003 (Bug #60925) Only project members, admins or supers can edit a project. #622008 (Bug #65034) An icon representing the automated tests status is now displayed on the review page. #621443 (Bug #65041) Jobs affecting a project can be accessed directly from the project overview page. #619330 (Bugs #65012, #64455) Improve the review byline and avatar to reflect the author and affected projects. #619083, #624718 (Bug #64995) Users can see all the committed changes associated with a review. #618709, #619502 (Bug #63914) Users can close/dismiss comments. Bugs fixed since Beta 2013.1/627815 #629873 (Bug #65689) If running a 2012.1 or newer Perforce Server, add project could fail with a HTTP 500 response. Bugs fixed in 2013.1 Beta #625383 (Bug #65228) When a user enters a malformed or unsupported P4 username, it can generate an HTTP-500 error. #623461 (Bug #63734) Swarm attempted to display non-web-safe images, such as psd files; restrict display of images to gif, jpg, png, & bmp. #620292 (Bug #65069) Reviews that were created upon submit by including the [review] keyword did not show in either the opened or closed tabs after being approved. #618290 (Bug #64976) Swarm OVA has PHP timezone hard-coded to America/Los Angeles. This causes Swarm to show the incorrect time for events if the OVA runs in a different time zone. #618219, #624007 (Bug #64760) The Blame button would sometimes result in an HTTP-404 or an HTTP-500 error. -------------------------------------------------------------------------- Minor new functionality since Beta Preview 2013.1/614107 #617359, #617382, #617383 (Bug #64837) Improving the already committed dialog. It will now load more changes when scrolled, allows filtering by user and allows changing the 'path' being filtered. #616871 (Bug #64919) If you follow a user, their activity now appears in your personalized activity stream. #616687 (Bug #64913) A monospaced font is now used for input for the description when selecting 'approve and commit' or 'commit' on a review. Bugs fixed since Beta Preview 2013.1/614107 #617444 (Bug #64888) Selecting Approve and Commit on a review failed to clear the Swarm managed shelved change. #616978 (Bug #64940) The 'open file' button on changes and reviews lacked a tooltip. #616305 (Bug #64895) The example config.php file contained a syntax error. #616258 (Bug #64941) The unassigned filter on the reviews page did not work. #614938 (Bug #62155) Unassociated jobs could be shown on a change/review if they had a matching component e.g. 'foo-bar' when only 'foo' is present. -------------------------------------------------------------------------- END