# PSA: Renovate now supports Julia

**URL:** <https://discourse.julialang.org/t/psa-renovate-now-supports-julia/142829>\
**Category:** Tooling\
**Tags:** announcement\
**Created:** [November 9, 2026, 12:56pm UTC](https://discourse.julialang.org/t/psa-renovate-now-supports-julia/142829 "2026-11-09T12:56:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![stemann](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stemann/32/4030_2.png) [@stemann](https://discourse.julialang.org/u/stemann)\
**Post date:** [November 9, 2026, 12:56pm UTC](https://discourse.julialang.org/t/psa-renovate-now-supports-julia/142829/1 "2026-11-09T12:56:45Z")

</div>

[Renovate](https://docs.renovatebot.com/) is an alternative to Dependabot or CompatHelper for keeping dependencies up to date. Renovate and Dependabot both support multiple programming language ecosystems, so you can use one tool for multiple ecosystems.

Renovate supports Julia from version [44.221.0](https://github.com/renovatebot/renovate/releases/tag/44.221.0). Unlike Dependabot, it is not tied to GitHub: it runs on most platforms, including GitHub (e.g. with the [Mend Renovate GitHub app](https://github.com/apps/renovate)), GitLab, Azure DevOps, Bitbucket, Gitea and Forgejo. It can even be run locally (see below for details).

It updates the `[compat]` entries of every `Project.toml` (and `JuliaProject.toml`) in the repository, `docs/` and `test/` included, against the General registry. As CompatHelper and Dependabot do, it widens the range by default: `"0.10, 0.11"` with 0.12.1 released becomes `"0.10, 0.11, 0.12"`. It skips the `julia` entry and the standard libraries.

Exact pins stay exact, even with the default `widen` range strategy: `"=0.2.304"` is updated to the new version’s exact pin. To explicitly pin dependencies, set Renovate’s `rangeStrategy` to `"pin"`. Other range strategies are listed in [Renovate’s Julia versioning documentation](https://docs.renovatebot.com/modules/versioning/julia/).

A `renovate.json` like the following is sufficient - in combination with a runner such as the Renovate GitHub App:

```json
{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": ["config:recommended"]
}

```

As demonstrated by [GitHub - stemann/RenovateExample.jl · GitHub](https://github.com/stemann/RenovateExample.jl), with [Dependency Dashboard · Issue #1 · stemann/RenovateExample.jl · GitHub](https://github.com/stemann/RenovateExample.jl/issues/1).

Renovate’s `packageRules` can match test dependencies, whether they’re in `[targets]` or in `test/Project.toml`, for example to group their updates:

```json
{
  "packageRules": [
    {
      "matchManagers": ["julia"],
      "matchDepTypes": ["test"],
      "groupName": "test dependencies"
    },
    {
      "matchManagers": ["julia"],
      "matchFileNames": ["**/test/Project.toml"],
      "groupName": "test dependencies"
    }
  ]
}

```

Documentation: [Automated Dependency Updates for Julia - Renovate Docs](https://docs.renovatebot.com/modules/manager/julia/)

### Self-hosting

Running locally, e.g. for self-hosting a Renovate runner for GitLab, can be accomplished with:

```julia-auto
RENOVATE_PLATFORM=gitlab \
RENOVATE_TOKEN=secret_token_for_your_gitlab_user \
npx --yes renovate@44.221.0

```

Also consider env vars, `LOG_LEVEL=debug`, and, e.g., `RENOVATE_DRY_RUN=lookup` when testing - and whether to set `RENOVATE_AUTODISCOVER=true` or list the repositories that Renovate should process with `RENOVATE_REPOSITORIES`.

### Pending changes

Notable pending enhancements:

- registries other than General, private ones included: [feat(datasource): add `julia` datasource - Pull Request #47699 - renovatebot/renovate - GitHub](https://github.com/renovatebot/renovate/pull/47699)
- updating `Manifest.toml`: [feat(manager/julia): update `Manifest.toml` - Pull Request #47788 - renovatebot/renovate - GitHub](https://github.com/renovatebot/renovate/pull/47788)
- release notes and changelogs in Renovate’s PRs: [Add repo and subdir to info.json - Pull Request #82 - JuliaRegistries/GeneralMetadata.jl - GitHub](https://github.com/JuliaRegistries/GeneralMetadata.jl/pull/82) (with a follow-up in the renovate repo)
- reading locked versions from the manifest, needed for vulnerability alerts from the Julia Security Advisory Database: [feat(manager/julia): extract locked versions - Pull Request #47863 - renovatebot/renovate - GitHub](https://github.com/renovatebot/renovate/pull/47863)

Also, note the pending fix: [fix(versioning/julia): widen to the bare major from 1.0 on - Pull Request #47795 - renovatebot/renovate - GitHub](https://github.com/renovatebot/renovate/pull/47795)

---

<div class="post-metadata">

**Author:** ![stemann](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stemann/32/4030_2.png) [@stemann](https://discourse.julialang.org/u/stemann)\
**Post date:** [November 9, 2026, 1:39pm UTC](https://discourse.julialang.org/t/psa-renovate-now-supports-julia/142829/2 "2026-11-09T13:39:01Z")

</div>

@giordano was, to my knowledge, first to move on the new functionality with [Switch from Dependabot to Renovate - Pull Request #1224 - NumericalEarth/Breeze.jl - GitHub](https://github.com/NumericalEarth/Breeze.jl/pull/1224) 🎉
