Develocity 2025.1

We’re thrilled to announce the release of Develocity 2025.1, packed with new features and improvements designed to streamline your build and test processes!

Please review the critical upgrade considerations detailed in the Upgrade Notes section below.

Key highlights include:

  • Enhanced Build Scan® Experience for Build and Test Failures: Troubleshoot failed Gradle or Maven builds more easily with direct access to relevant failure information. 
  • Build and Test Failure Grouping in Build Scan (Beta): Leveraging the new AI-powered failure grouping allows you to gain deeper insights into the issues affecting your build stability.
  • Tests View for npm and Python Build Scan (Beta): Gain deeper insights into your npm (Jest) and Python (pytest) test executions.
  • Develocity Reporting and Visualization Dashboards With New Insights and More Supported Build Tools: This update includes updated dashboards to track Predictive Test Selection and Test Distribution usage, with key metrics like remotely running test classes and observed serial/wall-clock savings.
  • Enforced Expiry Date for All Access Keys: Starting with Develocity 2025.1, all access keys will expire automatically based on age. Access key expiration is enabled by default, and the maximum lifespan is 365 days.

Integration Updates

To get the best results, ensure the following versions are installed:

For the best experience and full compatibility with the latest features, ensure you are using the latest versions of the following CI provider plugins with Develocity: the Gradle Jenkins plugin, the Build Scan plugin for TeamCity, the Develocity Bamboo plugin, the Develocity GitLab templates, and the GitHub Actions for Develocity.

Highlights

Enhanced Build Scan Experience for Build and Test Failures

Troubleshooting failed Gradle or Maven builds using Build Scan is simpler than ever.
The summary page for a failed build now directly displays the relevant failures, guiding you to the specific test or failure page. 

In most cases, this summary will provide sufficient information to investigate and resolve the build failure efficiently. The failure page also provides direct links to test failures for Gradle test tasks or Maven test goals.

Build failure summary with multiple test failures for a Gradle build

Build failure summary with multiple test failures for a Gradle build

Failure details with multiple test failures for a single Maven goal

Failure details with multiple test failures for a single Maven goal

Build and Test Failure Grouping in Build Scan (Beta)

Our new AI-powered failure grouping will give you deeper insights into the issues affecting your build stability. This beta feature groups similar build and test failures within a Build Scan, providing developers and build engineers a clearer understanding of the patterns and root causes that need attention for successful builds and tests.

This enhancement builds upon the improved Build Scan failure reporting. For Gradle task and Maven goal failures, we use AI to extract relevant log lines to determine the root cause of the failure.

Build summary with similar test failures grouped together

Build summary with similar test failures grouped together

Build summary with relevant console log from a Gradle task failure

Build summary with relevant console log from a Gradle task failure

Build and test failure grouping is considered beta for this release of Develocity.
Please contact the Develocity support team if you want to start with Build and test failure grouping.

Tests View for npm and Python Build Scan (Beta)

We have enhanced Build Scan support for npm and Python (beta) to provide richer test insights.
You can now capture, display, and share test results from popular test runners in their respective ecosystems:
Jest (JavaScript) and pytest (Python).
If you require
Mocha or Cypress (JavaScript) support, please contact the Develocity support team or your customer success representative.

With the test view, you can:

  • Visualize the result of test processes as a whole
  • Navigate to and view the results of individual test files and test cases
  • Identify slow and/or flaky tests
Test view for npm and Python

Test view for npm and Python

Build Scan Capturing for npm & Python Build Invocations from Gradle Builds

The Develocity Plugin for Gradle has been enhanced with methods that allow to configure Gradle tasks that run npm or supported Python tools to produce Build Scan reports automatically.

Leveraging these reports can give you additional structured information that may not be available in a Gradle Build Scan, such as the test insights mentioned above.

Develocity Reporting and Visualization Dashboards With New Insights and More Supported Build Tools

Refined Reporting of Realized Test Acceleration Savings

Develocity Reporting and Visualization includes updated dashboards that facilitate understanding the usage of Predictive Test Selection and Test Distribution in your builds.

Along with observed serial and wall-clock savings, the visualization provides several key metrics to assess the feature’s effectiveness, such as the number of test classes run remotely due to Test Distribution.

A Dashboard showing “Realized Predictive Test Selection Savings”

A Dashboard showing “Realized Predictive Test Selection Savings”

A Dashboard showing “Realized Test Distribution Savings”

A Dashboard showing “Realized Test Distribution Savings”

More Supported Build Tools

Develocity now provides unified observability across all supported tools (Gradle, Maven, Bazel, sbt, npm, Python).

This allows you to understand tool adoption, build performance by tool, and pinpoint areas for developer workflow optimization.

You can now easily identify Grafana dashboards based on the tools they support, as they have been tagged accordingly.

All dashboards are annotated with Grafana tags to highlight which build tools they support

All dashboards are annotated with Grafana tags to highlight which build tools they support

The displayed data can only show builds for a specific build tool

The displayed data can only show builds for a specific build tool

More filtering options

Specific dashboards now support filtering the displayed data by the tags in the respective Build Scan.

This allows you to view particular subsets of the overall data to gain deeper insights into your build environment.

Tag filtering is initially supported on the following dashboards:

  • Global Volume
  • Project Volume
  • Dependency Downloading
  • Gradle CPU Usage
  • Maven CPU Usage
  • Realized Build Cache Savings
  • Multiple “Settings” dashboards
The displayed data can now be restricted to only builds with specific tags. Multiple selected tags are combined with ‘and’ semantics

The displayed data can now be restricted to only builds with specific tags. Multiple selected tags are combined with ‘and’ semantics

Enforced Expiry Date for All Access Keys

In previous Develocity versions, access keys remained valid until they were manually revoked. Starting with Develocity 2025.1, all access keys will expire automatically based on age.

Access key expiration is enabled by default, and the maximum lifespan is 365 days.

Access Keys Overview

Access Keys Overview

To customize or disable the maximum lifespan for access keys, adjust the relevant settings in your values.yaml file.

Important: Review the Upgrade Notes prior to upgrading.
This document provides details on planning access key rotation and configuring your desired access key expiration policy

Test Distribution Resiliency Improvements

Develocity Gradle plugin 4.0, Maven extension 2.0, and Test Distribution agent 3.3 introduce significant changes designed to enhance the resilience of Test Distribution.

These updates prevent build failures due to unexpected errors during communication with remote components. Develocity build plugins will now attempt to fall back to local test execution in the following scenarios:

  • A build fails to establish a connection with Develocity
  • A build fails to transfer files required for remote execution
  • A remote agent encounters an unrecoverable error while running tests

Furthermore, Test Distribution agents that experience an unrecoverable error will no longer be assigned to new builds and will be prompted to shut down.

Please consult the Test Distribution agent documentation for information on the available mechanisms for replacing such agents.

Develocity API Support for sbt

In this release, we’ve added a new API endpoint for retrieving sbt build attributes, which allows you to (but is not limited to):

  • Track how often sbt is used
  • Identify the machine on which it ran
  • Measure how long it took
  • Discover the sbt version in use across various projects

You may leverage the out-of-the-box Develocity Reporting and Visualization dashboards to easily explore your sbt projects, build data, or export it to your preferred data analytics platform.

See Get the attributes of an sbt build in the Develocity API reference documentation for more information.

Develocity Edge Used by the Build Is Displayed in Build Scan Data

Develocity 2024.3 introduced an opt-in “Edge discovery” option for Gradle and Maven builds. This option uses the user’s location setting to assign an Edge as a remote build cache automatically.

In Develocity 2025.1, the location of the Edge used by a build for remote build caching is visible on the “Performance ->Build Cache” page of a Build Scan, along with whether the “Edge discovery” option was enabled for the build.

An example showing the used Edge cache

An example showing the used Edge cache

Edge usage insights in Build Scan data are available for:

  • Gradle builds with Develocity Gradle plugin 4.0+
  • Maven builds with Develocity Maven extension 2.0+

Develocity Edges Can Access Object Storage Directly

Develocity Edge nodes can bypass the Develocity server and directly access external object storage during replication using signed URLs.

This option reduces the load on the Develocity server, which would otherwise be responsible for streaming build data to and from connected object storage to Develocity Edges, reducing network traffic and improving scalability.

This feature is supported by both AWS S3 and Google Cloud Storage.

Maven 4 Support

The Develocity Maven extension 2.0 now supports Maven 4.0.0-rc-3 and later releases candidates. You can confidently test the extension with the latest Maven RC release, knowing that we are committed to maintaining compatibility with future RC versions and the general availability (GA) release of Maven 4.0.0.

Develocity Runtime

Develocity 2025.1 introduces a new metrics-gathering solution.

This updated monitoring setup represents a significant step towards a stateless application, with metrics now stored in Object Storage.

Starting with this version, Develocity enhances security by introducing a non-root user for most components.

Documentation

We’ve added a new quickstart guide to our documentation to help you quickly evaluate Develocity on Amazon EC2. Effortlessly deploy Develocity and publish your first Build Scan within minutes. Please note that this guide is intended for evaluation purposes and not for production environments.

Upgrade notes

Important:
Please thoroughly review the detailed upgrade documentation before starting the upgrade. This guide contains essential steps for a smooth process.
Additionally, if you’re upgrading from a version before Develocity 2024.3, reviewing the release notes for all intermediate versions is crucial to ensure you follow every necessary upgrade step

After upgrading Develocity, ensure you update all components, including CI/CD plugins, to their compatible versions.

For comprehensive details, refer to the Develocity version compatibility documentation.

Access Key Expiration and Rotation

Develocity 2025.1 introduces the ability for access keys to expire automatically based on age.

By default, access key expiration is enabled with a maximum lifespan of 365 days.

Plan for Access Key Rotation

To prevent service disruptions, it is essential to plan for the regular rotation of your access keys before their expiration dates.

This involves creating new access keys and updating your services (such as CI/CD pipelines, Develocity Reporting Kit, and automated Develocity API processes) to use the new keys before the old ones expire.

Configure Your Desired Access Key Expiration Policy

If you wish to maintain the previous behavior where access keys do not automatically expire, you can disable this policy by setting accessControl.accessKeys.maxLifespan.enabled: false in your values.yaml file.

Important:
This value should be set before upgrading to Develocity 2025.1; otherwise, an expiration date will be applied to all existing access keys upon upgrade.

You can customize the maximum lifespan for access keys by setting accessControl.accessKeys.maxLifespan.durationin your values.yaml file.

OpenShift Installations Require Configuration Changes

To improve the overall security of Develocity, all application components (except the gradle-database Pod) are now configured to run as 65532 and group 65532aka nonroot.

This change strengthens Develocity’s defense against potential security vulnerabilities. However, this update is incompatible with the older global.openshiftInstallation: true setting in your Helm configuration.

If you’re currently using this setting, you must remove it to ensure Develocity deploys correctly.

Configure Object Storage for Monitoring

Develocity now requires Object Storage configuration for its Develocity monitoring component. Please add the necessary details to the new ‘monitoring’ section in your values.yaml file.

The installation will fail if this configuration is missing. This ensures reliable and efficient monitoring of your builds.

Introduction of Helm Values Schema

Develocity version 2025.1 introduces a Helm values schema for its Helm chart.

Using this feature, Helm automatically validates your installation values against the expected types and structure, significantly reducing the risk of costly misconfigurations.

Catching issues early improves installation reliability and reduces debugging time. If Helm reports a validation error, review your values.yaml file to ensure they align with the schema.

Please note that extra Helm values unrelated to the Develocity configuration will be ignored.

Contact Gradle support if you suspect a validation error is incorrect.

Build Cache Node and Maven Extension Compatibility

Important:
Please upgrade your Build Cache Nodes (BCN) to version 21.0 first to prevent potential remote build caching errors when you apply Maven extension version 2.0.

Removals

Legacy Gradle Enterprise Maven Extension

As announced a year ago, the legacy Gradle Enterprise Maven extension has been deprecated in favor of the Develocity Maven extension.

With the release of Develocity 2025.1, we have taken the following steps:

  • We will no longer release any further versions of the Gradle Enterprise Maven extension.
  • The Develocity Maven extension does not support the legacy Gradle Enterprise APIs, system properties, and configuration files.
  • Develocity 2025.1 will continue to accept Build Scans from versions defined in the Develocity version compatibility.

We have released version 2.0 of the Develocity Maven extension to reflect this significant change. For detailed information on migrating from the legacy extension, please refer to the Develocity Maven extension section of the documentation.

Legacy Gradle Enterprise Gradle Plugin

Following the announcement made a year ago, the legacy Gradle Enterprise Gradle plugin has been deprecated in favor of the Develocity Gradle plugin.

With the release of Develocity 2025.1, we have taken the following steps:

We have released version 4.0 of the Develocity Gradle plugin to reflect this significant change. For detailed information on migrating from the legacy plugin, please refer to the Develocity Gradle plugin section of the documentation.

We encourage you to explore these new features, improvements, and important changes in Develocity 2025.1 and continue to provide us with your valuable feedback.

Changes

Apr 24, 2025
  • [NEW] Added support for 'pod-identity' to AWS Object Storage & Database configuration
  • [NEW] Predictive Test Selection: Report realized Predictive Test Selection savings per selection mode
  • [FIX] Azure Account Information credentials are incorrectly handled in the Monitoring component, causing the Mimir container to crash
  • [FIX] Build Scan: Durations of skipped test methods and test classes are incorrect in the Tests dashboard
  • [FIX] Build Scan: Failures during the processing of certain Bazel builds halt all of Develocity's background tasks
  • [FIX] Build Scan: Failure summary renders no message for multiline Maven exceptions
Apr 14, 2025
  • [NEW] Build Scan: The Build Scan List Dashboard now supports quick filtering by work unit name
  • [NEW] The Operator uses the '/opt/gradle' directory to avoid running out of disk space during support bundle generation
  • [NEW] The Proxy, Operator, and Monitoring components now have resource limits enabled and configurable in Standalone installations
  • [FIX] Bazel Build Scan data is not viewable without permission that allows reading from the build cache
  • [FIX] Monitoring components are restricted to consume less CPU and memory in Standalone installations
  • [FIX] Use of Zstandard (zstd) compression could cause disconnects on large responses
Apr 08, 2025
  • [NEW] Access keys can expire automatically due to reaching a maximum lifespan
  • [NEW] Build Scan: Build and test failure grouping in Build Scan (Beta)
  • [NEW] Build Scan: Dependency information is available for Maven, and Gradle builds via Develocity API endpoints
  • [NEW] Build Scan: Enhance the Maven Build Scan switches section to show whether the build is executed with the Maven Daemon
  • [NEW] Build Scan: Enhanced Build Scan experience for build and test failures
  • [NEW] Test Distribution: Add support for multiple keys and key rotation for communication between Test Distribution Broker and Test Distribution Agents. Migrate the key algorithm from RSA to EC
  • [UPGRADE NOTE] Develocity components run with the `nonroot:nonroot` account by default