openedx / wg-frontend

Open edX Frontend Working Group
4 stars 0 forks source link

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

Closed adamstankiewicz closed 9 months ago

adamstankiewicz commented 2 years ago

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.

abdullahwaheed commented 2 years ago

@adamstankiewicz should i schedule these configurations or use default or previous configurations?

abdullahwaheed commented 2 years ago

Repos Checklist:

abdullahwaheed commented 2 years ago

eslint-config and frontend-enterprise doesn't have any edx dependency. Other repos doesn't have renovate configured. Created a google sheet for status

arbrandes commented 1 year ago

@abdullahwaheed, I went ahead and merged some that I judged to be under my purview, and requested reviews from others.

arbrandes commented 1 year ago

Is it within the scope of this issue to configure Renovate for the repositories that don't have it enabled?

If not, I say we call this done.

abdullahwaheed commented 1 year ago

let me check the MFEs again and update the status accordingly

feanil commented 9 months ago

FYI, I got the last couple of PRs that were outstanding here merged so now all PRs listed here are merged. @abdullahwaheed I don't know if this issue can now be closed or if you have other outstanding work?

abdullahwaheed commented 9 months ago

yes, i think we can close it now