Skip to content

Renovate & Dependency Management

All ReactiveUI repositories use Renovate to keep dependencies up to date automatically. The configuration is centralised so every repo behaves the same way.

How it works

Renovate scans each repo on a schedule, detects outdated NuGet packages, GitHub Actions, and other dependencies, and opens PRs to update them. These PRs use the chore(deps): commit prefix so they are categorised as dependency updates in release notes.

Shared configuration

The shared Renovate preset lives in the reactiveui/.github repo at renovate.json. Individual repos opt in with a single-line config:

{
    "$schema": "https://docs.renovatebot.com/renovate-schema.json",
    "extends": ["local>reactiveui/.github:renovate"]
}

This file goes in .github/renovate.json in each repo. That is all that is needed — the shared preset handles everything else.

Default settings

The shared preset extends Renovate's recommended config and adds the following:

Update strategy

SettingValueWhy
Separate major releasesMajor version bumps get their own PRBreaking changes need individual review
Combine patch + minorPatch and minor updates are grouped into a single PRReduces PR noise
Minimum release age3 daysAvoids updating to a version that gets yanked immediately
Vulnerability alertsEnabled, labelled securitySecurity fixes are flagged for fast review

Rate limits

SettingValue
PRs per hour10
Concurrent open PRs10

Labels

All Renovate PRs are labelled Dependency Management.

PR behaviour

  • recreateWhen: never — if you close a Renovate PR, it will not reopen until a newer version is available. This avoids PRs coming back after deliberate decisions to skip a version.

Package grouping

Related packages are grouped into single PRs to reduce noise:

GroupPackages
.NET monorepoMicrosoft.NETCore.*, runtime packages
NuGet monorepoNuGet client packages
Xamarin & AndroidXXamarin.*, Xamarin.AndroidX.*, Xamarin.Android.Support.*
Windows SDK & App SDKMicrosoft.WindowsAppSDK, Microsoft.Windows.SDK.BuildTools
Rx.NETSystem.Reactive.*, Microsoft.Reactive.*, System.Interactive.*, System.Linq.Async.*
.NET test stackxunit.*, NUnit*, Verify.*, Microsoft.NET.Test.Sdk, coverlet.*
RefitRefit.*
ReactiveUIReactiveUI.*
AvaloniaAvalonia.*
Uno PlatformUno.*
SplatSplat.*

For maintainers

  • Merging Renovate PRs — if CI is green, these are generally safe to merge. Check the Renovate PR body for release notes and breaking change warnings.
  • Skipping a version — close the PR. Renovate will not recreate it until the next version is published.
  • Adding a repo — create .github/renovate.json with the extends line above. Renovate will pick it up on its next run.
  • Changing defaults — edit renovate.json in the reactiveui/.github repo. Changes apply to all repos that extend the shared preset.