Files
Gregor Zeitlinger 0d9888a4f2 feat(datasource): add GraalVM version datasource (#40497)
* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases

* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases

* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases

* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases

* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases

* add coverage

* fix

* fix

* fix

* code cov

* code cov

* code cov

* refactor(datasource): integrate GraalVM into java-version datasource

Merges graalvm-version datasource into java-version as a unified multi-vendor
Java distribution datasource. Implements vendor-based modular architecture with
routing layer for Adoptium (Eclipse Temurin) and Oracle GraalVM.

Architecture:
- Vendor-specific handlers (adoptium.ts, graalvm.ts) with routing in index.ts
- Vendor-aware system detection with different arch/os mappings per vendor
- Custom registry support for GraalVM's mise-java API
- Adoptium remains the default registry for backwards compatibility

Package names:
- New explicit: adoptium-jdk, adoptium-jre, oracle-graalvm-jdk, oracle-graalvm-jre
- Legacy (map to Adoptium): java, java-jdk, java-jre

Changes:
- Created adoptium.ts and graalvm.ts vendor handlers
- Enhanced common.ts with vendor detection and vendor-specific system mappings
- Updated index.ts with routing layer and custom registry support
- Merged test suites with comprehensive coverage for both vendors
- Updated mise manager integration to use JavaVersionDatasource
- Removed graalvm-version datasource directory

All 65 datasource tests and 93 mise manager tests passing.

* fix

* test(datasource): add coverage for non-HttpError paths in java-version

* fix(datasource): remove dead code and add coverage for java-version

Remove unreachable HttpError handling from _getReleases catch block
since both getAdoptiumReleases and getGraalvmReleases handle HttpError
internally. Add test for the graalvmRegistryUrl fallback when
registryUrl is undefined.

* fix(datasource): address review comments for GraalVM datasource

- Remove unused 'datasource-graalvm-version' cache namespace
- Convert MiseJavaRelease interface to Zod schema and derive type from it
- Use http.getJson() with the Zod schema in getGraalvmReleases instead
  of getJsonUnchecked, letting the schema handle invalid/empty responses
- Update getGraalvmReleases test mock to use getJson

* docs: remove unused datasource-graalvm-version from cacheTtlOverride docs

* fix(datasource): preserve Adoptium config typing

* fix(datasource): harden GraalVM release parsing

* fix(datasource): address GraalVM review feedback

* test: cover GraalVM mise package mapping

* test(datasource): cover default GraalVM registry fallback

* test(datasource): cover legacy registry resolution

* test(datasource): type legacy datasource mocks

* fix(datasource): harden GraalVM defaults and responses

* refactor(datasource): use function-only registry accessors

* test(datasource): cover registry accessor functions

* test: restore coverage exclusions

* chore: retrigger CI checks
2026-09-23 08:40:24 +00:00
..

Terraform vs OpenTofu

Renovate can not know if you want to use the Terraform or OpenTofu registry. By default, Renovate uses the Terraform registry (registry.terraform.io) for providers and modules without a registry definition.

You can override this default with your own packageRules, for example:

{
  "packageRules": [
    {
      "matchDatasources": ["terraform-provider", "terraform-module"],
      "registryUrls": ["https://registry.opentofu.org"]
    }
  ]
}

Supported dependencies

Renovate supports updating the Terraform dependencies listed below. Check the tables to see where some dependencies can be hosted.

Modules

Name Public hosting Private hosting
GitTags yes yes
GithubTags yes yes
TerraformRegistry yes yes

Providers

Providers are deprecated in Terraform 0.13.0.

Name Public hosting Private hosting
TerraformRegistry yes yes

required_providers block

Needs Terraform >= 0.13.0.

Name Public hosting Private hosting
TerraformRegistry yes yes

required_version

Renovate can update the required_version attribute of the Terraform block.

helm_release

Renovate can update the version attribute of helm_release resources. This applies to both helm chart repositories and charts published in OCI registries.

Name Public hosting Private hosting
chart repository yes yes

Docker

Renovate can update image references of the Docker provider resources (docker\_\*).

Name Public hosting Private hosting
Docker registry yes yes

Kubernetes

Renovate can update image references of Kubernetes provider resources (kubernetes\_\*).

Name Public hosting Private hosting
Docker registry yes yes

tfe_workspaces

Renovate can update tfe_workspaces. Renovate searches for the terraform_version argument.

Range constraints

Renovate understands these Terraform range constraints:

Terraform range Notes
>= 1.2.0 version 1.2.0 or newer
<= 1.2.0 version 1.2.0 or older
~> 1.2.0 any non-beta version >= 1.2.0 and < 1.3.0, e.g. 1.2.X
~> 1.2 any non-beta version >= 1.2.0 and < 2.0.0, e.g. 1.X.Y
>= 1.0.0, <= 2.0.0 any version between 1.0.0 and 2.0.0 inclusive

Disabling parts of the manager

You can use these depTypes for fine-grained control, for example to disable parts of the Terraform manager.

Resource depType Notes
Terraform provider provider
required Terraform provider required_provider
required Terraform version required_version This handles the required_version in terraform blocks
TFE workspace tfe_workspace This handles the terraform_version argument in tfe_workspace resources
Terraform module module
Helm release helm_release
Docker container docker_container
Docker image docker_image
Docker service docker_service
Kubernetes CronJob kubernetes_cron_job
Kubernetes CronJob v1 kubernetes_cron_job_v1
Kubernetes DaemonSet kubernetes_daemon_set
Kubernetes DaemonSet v1 kubernetes_daemon_set_v1
Kubernetes Deployment kubernetes_deployment
Kubernetes Deployment v1 kubernetes_deployment_v1
Kubernetes Job kubernetes_job
Kubernetes Job v1 kubernetes_job_v1
Kubernetes Pod kubernetes_pod
Kubernetes Pod v1 kubernetes_pod_v1
Kubernetes Replication Controller kubernetes_replication_controller
Kubernetes Replication Controller v1 kubernetes_replication_controller_v1
Kubernetes StatefulSet kubernetes_stateful_set
Kubernetes StatefulSet v1 kubernetes_stateful_set_v1
Data Source depType Notes
Docker registry image docker_registry_image

If you need to change the versioning format, read the versioning documentation to learn more.