Is a large, mechanical PR better than a smaller, more complex one?

Posted by rhyso90@reddit | ExperiencedDevs | View on Reddit | 23 comments

I ran into this while reviewing a PR and wanted to check how others approach it.

The PR was refactoring a shared component in our monorepo to align with an updated design system. As part of that, some variant names needed to be renamed (e.g. updating existing variant values to match new design tokens).

This meant updating usage across a large number of files. The change at each call site was simple and mechanical (just switching to the new variant names, e.g. errordanger), but it touched a lot of places.

As part of the review, there were two possible approaches:

1. Apply the change directly everywhere

2. Introduce compatibility/abstraction to reduce file changes

My instinct during the review was to push for (1), even if it means a large file count, because:

A counterpoint raised was that it would cause a large file count (around 200 extra files) in the repo. While this is true, they're all one line (one word really) changes that can easily be checked off as 'viewed' whereas the alternative was adding more lines of code, whereas the alternative was adding more lines of code that increase cognitive overhead and require deeper validation than straightforward, mechanical changes.

Curious how others think about this in a review context:

Interested in how this is handled on other teams/codebases.