What’s new in P4 Code Review

2025.2

Released: June 2025

P4 Code Review includes the following key features and enhancements. For a complete list of what’s new and bug fixes in this release, see the release notes.

Helix Swarm is now P4 Code Review

Perforce has a new look and logo that reflects our place in DevOps workflows. As part of these changes, Helix Swarm is now P4 Code Review, highlighting its integration with P4 (formerly Helix Core) and its availability as part of the P4 Platform. Name updates and new icons to align with the P4 branding are in progress and will continue to roll out. To learn more, see Re-Introducing P4.

AI code analysis enhancements

  • Instead of sending an entire diff to an AI vendor for review, you can get more precise insights by selecting and submitting portions of your code. To learn more, see AI for code analysis.

  • Get clearer and more readable feedback in AI vendor code review responses with new markdown formatting.

  • Reduce the amount of stored data by automatically removing redundant AI code review responses. Set the duration for how long responses are stored. To learn more, see Set up a cron job to delete AI summaries.

  • Integrate P4 Code Review with LM Studio. To learn more, see How to set up LM Studio integration for P4 Code Review.

AI-powered search for product information

On the main page of the P4 Code Review documentation site, you can now enter a question to get an AI-generated answer. Optionally, you can filter your search by product. Answers combine content from the current version of the product documentation and the Perforce knowledge base. This new search experience helps you locate information more efficiently.

Other enhancements

  • To streamline email filtering, emails are filtered by reviewer role. The use_cc_on_review_emails configurable in the mail block in config.php file adds the required reviewers in the To field and optional reviewers to the Cc field. This feature is enabled by default. To revert to the previous behavior, see Filter review related emails.

  • Added support for P4 API for PHP 2025.1, enabling full support for PHP 8.4.

  • Added support for P4 Server 2025.1.

Supported product versions and end-of-life information

To take advantage of new product features and improvements, and to ensure that your product is supported, install a current version. For a list of supported product versions, along with maintenance and end-of-life (EOL) information, see P4 Code Review End of Life (EOL) Schedule.

Important information

Ubuntu 20 is no longer supported as of the 2025.2 release

P4 Code Review will drop support for Ubuntu 20 in 2025.2 release. This is part of our commitment to move away from using platforms that have reached End-of-Life (EOL).

PHP 8.0 version is no longer supported

P4 Code Review has dropped support for PHP 8.0 from the 2024.5 release. This is part of our commitment to move away from using versions of platforms that have reached End-of-Life (EOL).

HTTP OPTIONS method is no longer supported

The HTTP OPTIONS method can inadvertently assist attackers by providing insights into the system's setup and potential vulnerabilities. To enhance security of P4 Code Review, we have removed the HTTP OPTIONS method from the list of permitted methods.

Redis binary upgrade in P4 Code Review 2024.3 release changes the kernel and glibc requirements

In the P4 Code Review 2024.3 release, Redis binary has been upgraded to version 7.2.4. As a result of this upgrade, the kernel and glibc requirements have automatically changed from version 2.6 to 3.10. If you need to run Redis under kernel version 2.6, you can do either of the following:

  • Compile Redis from sources on the target host meeting the target kernel.

  • Or use your own older Redis installation.

CentOS/RHEL 7 is no longer supported from P4 Code Review 2024.3 release

P4 Code Review has dropped support for CentOS/RHEL 7 in 2024.3 release. This is part of our commitment to move away from using versions of platforms that have reached End-of-Life (EOL).

PHP 7.X versions are no longer supported from P4 Code Review 2024.3 release

P4 Code Review has dropped support for PHP 7.X in 2024.3 release. This is part of our commitment to move away from using versions of platforms that have reached End-of-Life (EOL).

PHP version 8.X addresses important security issues and helps improve P4 Code Review's performance. You can upgrade to PHP 8.x when you upgrade P4 Code Review. See Upgrading P4 Code Review.

Upcoming changes to SSO configuration

P4 Code Review now supports P4 AS (HAS) as a Single Sign-On (SSO) provider. This helps to simplify configuration and create a more robust SSO solution. The SAML configuration will be removed from P4 Code Review in a later release.

Project level test and deploy code features to be deprecated in a later P4 Code Review release

The project level test and deploy code features will be deprecated in a later P4 Code Review release. We recommend you use test integration to automatically deploy code within a review. For more information, see Add a test.

P4 Code Review 2022.3 or later only works with P4 Visual Client (P4V) 2021.3 or later

When upgrading to P4 Code Review 2022.3 or later, ensure that you upgrade P4 Visual Client (P4V) to 2021.3 or later.

The emulate_ip_protections configurable now defaults to false

From P4 Code Review 2022.2, the default setting of the emulate_ip_protections configurable in the SWARM_ROOT/data/config.php file is now set to false. If you are upgrading P4 Code Review and have emulate_ip_protections set to true, the upgrade will not change your setting.

API version updated to v11 for P4 Code Review 2022.1

For P4 Code Review 2022.1, we introduced a new set of v11 APIs. These refine and extend the v10 APIs, and further standardize the endpoint and response pattern. The v10 APIs will continue to be available for some time to come

  • Any improvements made in the migration to v11 will not be backported to v9 or v10.
  • New API endpoints will be created as v11 and will not be backported to v9 or v10.

P4 Code Review no longer supports Microsoft Internet Explorer

P4 Code Review 2022.1 and later no longer supports Microsoft Internet Explorer. This is part of our commitment to move away from using platforms that have reached End-of-Life (EOL).

P4 Code Review no longer supports CentOS 8

P4 Code Review 2022.1 and later no longer supports P4 Code Review installation on CentOS 8. This is part of our commitment to move away from using versions of platforms that have reached End-of-Life (EOL).

P4 Code Review no longer supports Ubuntu 16.04

P4 Code Review 2021.1 and later no longer supports P4 Code Review installation on Ubuntu 16.04. This is part of our commitment to focus on supported technology platforms.

P4 Code Review no longer supports CentOS 6 and RHEL 6

P4 Code Review 2020.2 does not support P4 Code Review installation on CentOS 6 and RHEL 6. This is part of our commitment to focus on supported technology platforms.

Upgrading from P4 Code Review 2019.1 and earlier

P4 Code Review 2019.2 introduced a Redis in-memory cache to improve performance and reduce the load on the P4 Server. This replaces the file-based cache that was previously used by P4 Code Review.

On P4 Code Review 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 P4 Code Review system you should read through the Redis server connection and configuration options before installing or upgrading P4 Code Review, see Redis server.

Known limitations

For Ubuntu 24.04, downloading from the P4 Code Review UI fails for a file with Unicode characters in its name

Downloading from the P4 Code Review UI fails on Ubuntu 24.04 when trying to download a file with Unicode characters in its name. This is a Ubuntu 24.04 issue. See the issue logged on Ubuntu's website.

After an upgrade to P4 Code Review 2022.3, you may see partial text labels or unexpected page artifacts

After an upgrade to P4 Code Review 2022.3, if you see partial text labels or unexpected page artifacts, clear your web browser cache and refresh P4 Code Review in your web browser.

No activity event is created when a project setting is updated

When a project setting is updated, P4 Code Review does not create an activity.

Issue with userids containing a / character

Issue: Logging in to P4 Code Review 2020.2 or earlier with a userid that contains a forward slash (/) character results in a spinner for the user icon that does not go away.
Fix: This is fixed for new installations of P4 Code Review 2021.1 and later, but is not fixed if you upgrade from an earlier version of P4 Code Review. To fix this issue when you upgrade from P4 Code Review 2020.2 or earlier, add AllowEncodedSlashes NoDecode to the VirtualHost block of your /etc/apache2/sites-enabled/perforce-swarm-site.conf file. For more information about the VirtualHost block, see Apache configuration.

P4 Code Review shelvedel trigger can fail for a specific Windows use case

The P4 Code Review shelvedel trigger will fail in the following specific situation:
When the P4 Server is hosted on Windows and a user runs the shelf delete command while in the root of one of their local drives.
For example, c:\p4 -u bruno -c my_shelf shelve -d -c 9

Unsupported characters in user names and group names in P4 Code Review 2019.2 and later

P4 Code Review does not support the following characters in user names and group names: :@{}()

P4 Code Review support for the "Private editing of streams" feature in P4 Server 2019.1 and later

Supported: stream specs can be edited in your workspace using the Private editing of streams feature and they are displayed in reviews.
Not supported: P4 Code Review cannot commit locked stream specs.

Multiple P4 Server instances on a single P4 Code Review instance

Issue: P4 Code Review will lose connection to all of the P4 Servers if you edit the base_url configurable value in the environment block of <swarm_root>/data/config.php. This will stop your system working.

Fix: Remove the base_url configurable from the environment block of <swarm_root>/data/config.php.

Global Dashboard does not support Single Sign-On (P4 AS)

Issue: If P4 AS is enabled for P4 Code Review and the Try to login to all available servers with these credentials checkbox or the All available servers option is selected in a login dialog, P4 Code Review will not try to log in to any of the other P4 Server instances that are configured for P4 AS.
Workaround: Log in to them individually using the instance Log in button Image of the global dashboard log in button in the sidebar or by including the server instance name in the URL, for example: https://swarm.company.com/serverA.

Project Commits tab can fail to show some P4 Server commits in the top level view

The Project Commits tab top level client view is made up of all of the branches of the project.
 
For example, Project Alpha:
 
Branch: QA:
//depot/alpha/dev/QA/...
 
Branch: Dev :
//depot/alpha/dev/...
-//depot/alpha/dev/QA/...
 
The project commits tab view is generated by processing the branches in the order that they were created in and from top to bottom for the paths in each of those branches.
For the project Alpha example above:
The first path includes all of the directories and files under //depot/alpha/dev/QA/ in the project commits tab top level view.
The second path includes all of the directories and files under //depot/alpha/dev/ in the project commits tab top level view.
The third path excludes all of the directories and files in //depot/alpha/dev/QA/ from the project commits tab top level view.
 
Result: commits made to //depot/alpha/dev/QA/ that should be shown for the QA branch are not displayed in the Project Commits tab top level view.
 
When you have a simple branch structure this can be avoided by considering this issue when you create your branches. In the example above, creating the Dev branch first and then creating the QA branch avoids the problem because//depot/alpha/dev/QA/ is not excluded from the Project Commits tab top level view.

Individual branch views display the commits correctly.

Task Stream Reviews

Pre-commit reviews in a task stream are not supported. We recommend using sparse streams instead.