---
component: ROOT
version: "2026.3"
slug: ROOT/operations/tracking-component-releases
canonical_url: "https://docs.develocity.ai/2026.3/operations/tracking-component-releases/"
title: "Tracking Component Releases"
description: "Point Renovate at the Develocity release index so your dependency automation proposes component upgrades instead of you tracking release announcements."
keywords:
  - "upgrade"
  - "develocity versioning"
  - "release notes"
status: current
---

<!-- llms-index: https://docs.develocity.ai/llms.txt -->

# Tracking Component Releases

<a id="preamble"></a>

Point Renovate at the Develocity release index so your dependency automation proposes component upgrades instead of you tracking release announcements.

Develocity’s components are versioned and released independently of each other. Develocity publishes a release index for them: static JSON files, one per component, listing every released version with its date and a link to that version’s release notes. The files use the response format of the [Renovate custom datasource](https://docs.renovatebot.com/modules/datasource/custom/), so pointing Renovate at the index turns a new component release into a pull request, alongside every other dependency you already track.

<a id="available-components"></a>

## Available Components

Renovate reads most Develocity components from the registry that publishes them, with no custom datasource involved. Prefer that native datasource where one exists, because the registry is the authority on what you can pull, and the dependency needs no configuration of its own. The release index is for the components that no registry lists, and for tools that want one released-version list covering all of them.

Request a component by the name in the **Name to Request** column. The [`index.json`](https://docs.develocity.ai/downloads/releases/index.json) file lists the same names, so tools can discover them without this table.

  
| Component | Name to Request | Recommended Source |
| --- | --- | --- |
| Develocity server | `develocity` | `helm` |
| Develocity Edge node | `edge-node` | [`docker`](https://hub.docker.com/r/gradle/edge-node/tags) for the image, [custom datasource](#configuring-renovate) for the JAR |
| Develocity Build Cache Node | `build-cache-node` | [`docker`](https://hub.docker.com/r/gradle/build-cache-node/tags) for the image, [custom datasource](#configuring-renovate) for the JAR |
| Develocity Docker agent | `build-agent-docker` | [custom datasource](#configuring-renovate) |
| Develocity Gradle plugin | `build-agent-gradle` | `maven` |
| Develocity Maven extension | `build-agent-maven` | `maven` |
| Develocity npm agent | `build-agent-npm` | `npm` |
| Develocity npm agent loader | `build-agent-npm-loader` | `npm` |
| Develocity Python agent | `build-agent-python` | [custom datasource](#configuring-renovate) (not published to PyPI) |
| Develocity sbt plugin | `build-agent-sbt` | `maven` |
| `develocityctl` | `develocityctl` | [`docker`](https://hub.docker.com/r/gradle/develocityctl/tags) for the image, [custom datasource](#configuring-renovate) for the JAR |
| Develocity Artifact Cache CLI | `develocity-artifact-cache-cli` | [custom datasource](#configuring-renovate) |
| Develocity Reporting Kit | `develocity-reporting-kit` | `helm` |
| Develocity Reporting and Visualization Dashboard Bundle | `dashboard-bundle` | [custom datasource](#configuring-renovate) |
| Develocity Provenance Governor | `develocity-provenance-governor` | [`docker`](https://docs.develocity.ai/provenance-governor/1.9/quickstart/) for the image, at `registry.gradle.com/develocity/provenance-governor` |
| Develocity Test Distribution agent | `test-distribution-agent` | [`docker`](https://hub.docker.com/r/gradle/develocity-test-distribution-agent/tags) for the image, [custom datasource](#configuring-renovate) for the JAR |

A component missing from this table is one the index does not cover, described in [Components the Index Does Not Cover](#components-the-index-does-not-cover).

The index reaches back further than this documentation site does, so its oldest entries carry no release notes link. A version and a date are all Renovate needs to propose an upgrade.

> [!NOTE]
> The index is regenerated daily, so a release can take up to a day to appear.

<a id="configuring-renovate"></a>

## Configuring Renovate

Two pieces of configuration are needed: the datasource itself, and a comment on each version you pin so Renovate knows which component it belongs to.

<a id="add-the-custom-datasource"></a>

### Add the Custom Datasource

Add one custom datasource to your `renovate.json`. Renovate substitutes the component name into the URL, so a single entry covers every component:

```json
{
  "customDatasources": {
    "develocity": {
      "defaultRegistryUrlTemplate": "https://docs.develocity.ai/downloads/releases/{{packageName}}.json"
    }
  },
  "packageRules": [
    {
      "matchDatasources": ["custom.develocity"],
      "versioning": "loose"
    }
  ]
}
```

The `versioning` rule covers the version shapes Develocity uses. Components do not all use semantic versions: the server uses calendar versions such as `2026.2.4`, and some components use two-segment versions such as `1.6`. `loose` compares those as published, digit group by digit group, so it orders every shape the index carries. Setting it once for the datasource means no dependency has to repeat it.

<a id="annotate-the-versions-you-pin"></a>

### Annotate the Versions You Pin

A pinned version needs a comment naming the component it belongs to. Renovate does not read those comments itself. Enable the manager preset that reads them in a `Dockerfile`:

```json
{
  "extends": ["customManagers:dockerfileVersions"]
}
```

The preset matches an `ARG` or `ENV` whose name ends in `_VERSION`, immediately below the comment naming the component:

```dockerfile
# renovate: datasource=custom.develocity depName=develocity-artifact-cache-cli
ARG ARTIFACT_CACHE_CLI_VERSION=1.5.0
```

Without a manager to read it, the comment is inert and Renovate opens no pull request: its `dockerfile` manager reads `ARG` values only to resolve variables in `FROM` lines. A version pinned anywhere else, such as a Helm values file or a shell script, needs a [custom manager](https://docs.renovatebot.com/configuration-options/#custommanagers) of its own, as any other custom datasource dependency does.

Renovate then treats Develocity components like any other dependency, opening a pull request titled with the new version and linking its release notes.

> [!TIP]
> Every entry carries its release date, so Renovate’s [`minimumReleaseAge`](https://docs.renovatebot.com/configuration-options/#minimumreleaseage) rule applies to these components: set it to hold a new version for a soak period before Renovate proposes it.

<a id="reading-the-index-from-other-tools"></a>

## Reading the Index From Other Tools

Renovate is not the only way to consume the index. The files are static JSON on a public URL, so anything that can fetch a document and read a field can track Develocity releases from them: a scheduled script, an infrastructure template, or another dependency tool that accepts a custom source.

Each component’s own file is the one to request when you know which component you want:

```shell
curl -s https://docs.develocity.ai/downloads/releases/develocityctl.json
```

A tool that wants every component at once reads the combined file instead, which carries all of them in a single document:

```shell
curl -s https://docs.develocity.ai/downloads/releases/all.json
```

Its `components` object is keyed by the same names as the **Name to Request** column, and each value has the shape of that component’s own file:

```json
{
  "components": {
    "develocityctl": {
      "homepage": "https://docs.develocity.ai/develocityctl/1.23/",
      "changelogUrl": "https://docs.develocity.ai/develocityctl/1.23/release-history/",
      "releases": [
        {
          "version": "1.23.0",
          "releaseTimestamp": "2026-06-30T00:00:00.000Z",
          "changelogUrl": "https://docs.develocity.ai/develocityctl/1.23/release-history/#1-23-0",
          "isDeprecated": false
        }
      ]
    }
  }
}
```

Releases are ordered oldest first, so the newest version of a component is the last entry:

```shell
curl -s https://docs.develocity.ai/downloads/releases/all.json \
  | jq -r '.components["develocityctl"].releases[-1].version'
```

That makes one request instead of one per component, which suits a script filling current versions into a Helm values file or a playbook, and a dashboard or report covering everything Develocity releases.

Use the per-component files for Renovate, as [Configuring Renovate](#configuring-renovate) describes. A single datasource entry covers every component there through name substitution, with nothing to transform.

The index is regenerated once a day and served with a one-hour cache lifetime, so polling more often than that returns the same document. Read the release date on an entry rather than the time you fetched it: `releaseTimestamp` is when the version was released, not when the index picked it up.

Everything in [Before You Merge an Upgrade](#before-you-merge-an-upgrade) applies however you read the index. A released version is not necessarily one your installation can run, and an entry attests to nothing about the artifact itself.

<a id="before-you-merge-an-upgrade"></a>

## Before You Merge an Upgrade

The index reports which versions of each component have been released. It does not report what a given installation can run, and it does not attest to anything about a published artifact.

<a id="compatibility-is-not-encoded"></a>

### Compatibility Is Not Encoded

The index lists released versions only. Renovate can therefore propose a Develocity Edge node version that your Develocity server does not support, and the component will refuse to start once merged. Most components state their minimum server version in the release notes the pull request links, and [Develocity Version Compatibility](https://docs.develocity.ai/2026.3/miscellaneous/compatibility/) records the supported combinations. Check it before merging an upgrade the index proposes.

<a id="the-index-is-not-an-attestation"></a>

### The Index Is Not an Attestation

An entry means a version was released, nothing more. It carries no checksum and no signature, and its presence says nothing about the integrity of any file you download. Verify a download against its published PGP signature, as you would without the index.

<a id="deprecated-versions-are-marked"></a>

### Deprecated Versions Are Marked

A version can be marked deprecated in the index, for example after a security issue is found in it, or once it falls outside the support policy. Deprecated does not mean old: a component’s newest release can be deprecated too.

Renovate shows the deprecation on the dependency. Its [`ignoreDeprecated`](https://docs.renovatebot.com/configuration-options/#ignoredeprecated) rule, on by default, holds back an upgrade from a version that is not deprecated to one that is. How a version comes to be marked differs by component:

*   Develocity server versions are marked once they fall outside the [support policy](https://docs.develocity.ai/2026.3/miscellaneous/support-policy/), which carries the end-of-life schedule each version is measured against.
    
*   Every other component is marked from the index’s own component table, which records a deprecation explicitly rather than deriving it from a date.
    

Every Develocity Build Cache Node version is marked deprecated, including the one you are running. `ignoreDeprecated` only applies when your current version is not deprecated, so it never applies here and Renovate keeps proposing Build Cache Node upgrades. The component itself is going away: it will not be distributed, supported, or available after December 31, 2026, as [Develocity Version Compatibility](https://docs.develocity.ai/2026.3/miscellaneous/compatibility/) records. Treat those pull requests as maintenance in the meantime, and plan the migration to the [Develocity Edge](https://docs.develocity.ai/edge/2.3/).

<a id="components-the-index-does-not-cover"></a>

## Components the Index Does Not Cover

Plugins distributed through a third-party marketplace are outside the index by design, and the marketplace updates them for you. The Develocity IntelliJ plugin is one, installed and updated from the [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/27471-develocity).

Everything else Develocity releases is in the index. Two things are not listed separately because the server covers them: the Develocity API, which it includes, and Develocity Reporting via Amazon Athena, which is implemented in Develocity itself and follows its version line. The `develocity` entry tracks both, and the Grafana dashboards that accompany the Athena deployment are the `dashboard-bundle` entry.