Skip to content

Create common renovate config that automates @edx namespaced minor/patch version upgrades #116

@adamstankiewicz

Description

@adamstankiewicz

Across many frontend repos in Open edX, Renovate is used to automated node_modules dependency upgrades according to semver ranges (if applicable) defined for packages in package.json.

All of the Open edX NPM packages are prefixed with @edx and all (should) adhere to semantic versioning in that a new major version will be published (e.g., v1 -> v2) if a release is a breaking change for consumers.

Because of this, we could help product teams with updates to any NPM packages that are within the @edx namespace, for example @edx/paragon, @edx/frontend-platform, @edx/frontend-build, etc.

By doing so, product teams could automatically get bug fixes and new features upgraded and merged for @edx packages, and only have to manually intervene for breaking changes (new major versions).

This could likely be implemented by creating a custom Renovate preset that each repository's renovate.json file could optionally extends. The preset could

Alternatively, a script could probably be written to modify read/update renovate.json files in a collection of checked out repositories.

Example Renovate config to automerge @edx namespaced NPM packages for patch/minor upgrades:

{
  "packageRules": [
    {
      "matchPackagePatterns": ["^@edx/"],
      "matchUpdateTypes": ["minor", "patch"],
      "automerge": true
    }
  ]
}

If this were implemented as a custom Renovate preset, it might be worth checking if it's possible to provide an optional exclusion list so consumers of the preset can opt-out of auto-merging specific @edx namespaced package upgrades.

CI must pass before the upgrade is merged.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

Closed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions