RepoMicrosoftMicrosoftpublished Aug 18, 2022seen 5d

microsoft/m365-renovate-config

TypeScript

Open original ↗

Captured source

source ↗
published Aug 18, 2022seen 5dcaptured 8hhttp 200method plain

microsoft/m365-renovate-config

Description: Shared Renovate configuration for M365 projects

Language: TypeScript

License: MIT

Stars: 15

Forks: 4

Open issues: 6

Created: 2022-08-18T19:44:26Z

Pushed: 2026-06-10T22:58:01Z

Default branch: main

Fork: no

Archived: no

README:

m365-renovate-config

Shared Renovate presets for use in M365 projects.

Useful links

Using presets

There are a few different ways to reference presets from this repo in your Renovate config:

{
"extends": [
// Use the default preset
"github>microsoft/m365-renovate-config",

// Use a specific preset
"github>microsoft/m365-renovate-config:somePreset",

// Use a specific version of a preset
"github>microsoft/m365-renovate-config:somePreset#v2.1.0",

// Use a major version of a preset (see note below)
"github>microsoft/m365-renovate-config:somePreset#v2",
],
}

Note that semver ranges are not supported for preset versions because Renovate only supports resolving presets to specific refs (tags or branches). The supported refs are:

Version 2 breaking changes

m365-renovate-config version 2 makes the default preset a bit more opinionated based on testing, streamlines preset naming, and updates settings to better reflect recent improvements in Renovate.

These changes have been picked up automatically unless you specified a ref (e.g. #v1) as part of the preset names in your extends config.

Note: ` in preset names referenced below is a shorthand for github>microsoft/m365-renovate-config`. This is just for readability of the readme and will _not_ work in actual configs (you must use the full repo prefix).

Default preset changes

The default preset (github>microsoft/m365-renovate-config) is now a bit more "opinionated" and includes most settings that were previously defined in :libraryRecommended. These settings can be disabled either individually or using the excludePresets option.

The dependency version update strategy (rangeStrategy) has also changed as described below.

Major preset changes and deprecations

Deprecated presets still exist for now to avoid immediate breaks in consuming repos, but will be removed in version 3.

  • :libraryRecommended is deprecated in favor of this repo's default preset.
  • :beachballLibraryRecommended is renamed to :beachball.

Dependency version update strategy

Previously, Renovate's config:base (now `config:recommended`) would pin devDependencies and possibly also dependencies to exact versions. Pinning dependencies is usually not desirable for libraries, so v1 of m365-renovate-config omitted any pinning behavior in its default preset, and enabled pinning _only_ devDependencies in its :libraryRecommended preset.

A recent Renovate update included greatly expanded support for doing in-range updates (e.g. updating the installed version for "foo": "^1.0.0" from 1.1.0 to 1.2.0) by changing only the lockfile. Therefore, Renovate's default `rangeStrategy: "auto"` was changed to do lockfile-only updates when possible (instead of pinning or replacing versions), and config:recommended no longer includes any pinning of versions.

Since the lockfile-only updates are likely a good strategy in many cases, m365-renovate-config's default preset (which supersedes :libraryRecommended) has been updated to remove rangeStrategy overrides and extend config:recommended.

Notes on pinning behavior:

  • For any versions that are currently pinned or that you manually pin, Renovate updates will bump to a new pinned version.
  • If you'd like to unpin your dev deps, use `better-deps`: npx better-deps unpin-dev-deps
  • If you prefer to restore the previous behavior of pinning _all_ devDependencies, extend the Renovate preset `:pinOnlyDevDependencies`.

Presets in this repo

  • [Full config presets](#full-config-presets)
  • [default](#default)
  • [beachball](#beachball)
  • [Grouping presets](#grouping-presets)
  • [groupMore](#groupmore)
  • [groupActions](#groupactions)
  • [groupD3](#groupd3)
  • [groupEslint](#groupeslint)
  • [groupFixtureUpdates](#groupfixtureupdates)
  • [groupFluent](#groupfluent)
  • [groupJest](#groupjest)
  • [groupLageBackfill](#grouplagebackfill)
  • [groupNodeMajor](#groupnodemajor)
  • [groupReact](#groupreact)
  • [groupRollup](#grouprollup)
  • [groupTypes](#grouptypes)
  • [groupYargs](#groupyargs)
  • [Compatibility presets](#compatibility-presets)
  • [disableEsmVersions](#disableesmversions)
  • [restrictNode](#restrictnodearg0)
  • [Freshness and noise reduction presets](#freshness-and-noise-reduction-presets)
  • [keepFresh](#keepfresh)
  • [minorDependencyUpdates](#minordependencyupdates)
  • [scheduleNoisy](#schedulenoisy)
  • [Other presets](#other-presets)
  • [automergeDevLock](#automergedevlock)
  • [automergeTypes](#automergetypes)
  • [beachballPostUpgrade](#beachballpostupgrade)
  • [dependencyDashboardMajor](#dependencydashboardmajor)
  • [newConfigWarningIssue](#newconfigwarningissue)
  • [pinActions](#pinactions)

Full config presets

default

Recommended config which is intended to be appropriate for most projects.

Show config JSON

{
"extends": [
"config:recommended",
"github>microsoft/m365-renovate-config:dependencyDashboardMajor",
"github>microsoft/m365-renovate-config:groupReact",
"github>microsoft/m365-renovate-config:newConfigWarningIssue",
"github>microsoft/m365-renovate-config:pinActions"
],
"prConcurrentLimit": 10,
"prHourlyLimit": 2,
"minimumReleaseAge": "3 days",
"printConfig": true,
"timezone": "America/Los_Angeles",
"vulnerabilityAlerts": {
"enabled": true
},…

Excerpt shown — open the source for the full document.