Renovate
In the ModernLeft Org on Forgjo, we use renovate for dependancy update checking. Here's the basics to manually test and merge.
Fetch, checkout, and rebase the branch
git fetch -u origin renovate/major-eslint-monorepo:renovate/major-eslint-monorepo
git switch renovate/major-eslint-monorepo
git rebase main # more commonly development
Run tests, we usually have a makefile with targets for this.
At this point you can manually close the PR with manual merge, or wait for renovate to close it on its next run.
Resolving a pnpm-lock.yaml conflict during rebase¶
When the rebase in step one stops on a pnpm-lock.yaml conflict, don't hand-edit the lockfile — it's generated. Resolve package.json, then let pnpm regenerate the lock.
# 1. Make sure you're on the renovate branch and it's clean
git switch renovate/eslint-monorepo
git status # expect: clean tree, up to date with origin
# 2. Start the rebase onto development's tip
git rebase development # stops on the pnpm-lock.yaml conflict
# 3. Resolve the lockfile (NEVER hand-edit it — it's generated)
git checkout --theirs -- pnpm-lock.yaml # take renovate's side as the base; --theirs = commit being replayed
pnpm install --lockfile-only # regenerate lockfile to match the already-resolved package.json
# 4. Sanity-check before continuing (optional)
rg -c '^(<<<<<<<|=======|>>>>>>>)' pnpm-lock.yaml # should print nothing = no conflict markers left
# 5. Stage the resolved lockfile and finish the rebase
git add pnpm-lock.yaml
git rebase --continue # opens editor for commit msg; save & close to finish
# 6. Verify result, then force-push (rebase rewrote history)
git status # expect: clean, diverged from origin (that's normal)
git push --force-with-lease origin renovate/eslint-monorepo
If it goes sideways: git rebase --abort returns you to the exact pre-rebase state.