chore: restrict Renovate to nights, drop PR limits, skip releases - #3325
Merged
Conversation
Renovate ran at any time of day and was throttled by the org preset (prConcurrentLimit 10, branchConcurrentLimit 10, prHourlyLimit 2), which drip-fed dependency PRs through working hours. Invert that: extend schedule:nonOfficeHours (weeknights 22:00-05:00 UTC plus weekends), stay fully idle outside it via updateNotScheduled, and remove all three limits so the backlog lands in one nightly batch. Also suffix commit messages with "[do not release]" so dependency merges no longer cut a release. Because merges here are squashed with PR_TITLE + BLANK body, the suffix reaches main through the PR title, which is where on-merge-create-release.yml looks for the marker. Dockerfile updates are exempted: publishing only happens on the v* tags that workflow creates, and the Dockerfile pins the hugo and nginx images that build and serve the site. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it
Two related changes to how Renovate behaves in this repo, both in
renovate.json5.1. Only work at night, but without limits. Renovate currently runs at any time of day, throttled by
giantswarm/renovate-presets:default.json5(prConcurrentLimit: 10,branchConcurrentLimit: 10,prHourlyLimit: 2), which drip-feeds dependency PRs through working hours. This inverts that:schedule:nonOfficeHours— weeknights 22:00–05:00 plus all weekend.timezone: 'UTC'— stated explicitly; it was already the effective default, since neither this repo nor the org preset set a timezone.updateNotScheduled: false— fully idle outside the window, not even rebasing existing branches.0(unlimited), so the whole backlog lands in one nightly batch. All three are needed, because the org preset sets each one explicitly —branchConcurrentLimitdoes not inherit fromprConcurrentLimitwhen it has a value of its own.2. Dependency merges no longer cut a release.
commitMessageSuffix: '[do not release]'puts the marker thaton-merge-create-release.ymllooks for into every Renovate PR title. The PR title is the only channel that works here: merges are squash-only withsquash_merge_commit_title: PR_TITLEandsquash_merge_commit_message: BLANK, so the commit onmainis just the title plus co-author trailers.commitBodywould not work, because squashing discards the branch commit it decorates.Dockerfileis exempted by apackageRulethat clears the suffix again. That matters because publishing is tag-driven, not branch-driven:.circleci/config.ymlrunspush-to-registriesandpush-to-app-catalogonly on/^v.*/tags and explicitly ignoresmain, and those tags are what the release workflow creates. The Dockerfile pins thehugoandnginximages that build and serve the site, so suppressing their release would leave the merged pins unpublished.Known exception, left deliberately: vulnerability-alert PRs still release, because
vulnerabilityAlertssets its own[SECURITY]suffix that replaces ours.Verification
Checked against the fully resolved config with the org preset actually fetched (
renovate --platform=local --dry-run --print-config), not just against the schema:schedule: ["* 0-4,22-23 * * 1-5", "* * * * 0,6"],timezone: "UTC",updateNotScheduled: false.prHourlyLimit: 0,prConcurrentLimit: 0,branchConcurrentLimit: 0— the preset's10 / 10 / 2appear nowhere in the resolved output, so the overrides win.prTitleresolves tonull, so titles derive fromcommitMessage, which ends in{{{commitMessageSuffix}}}. Expected title:chore(deps): update dependency muster to v1.4.2 [do not release].packageRulein the resolved config touchingcommitMessageSuffix, so nothing can override it.groupoverrides onlybranchTopic/commitMessageTopic, notcommitMessage, so grouped PRs keep the suffix too.renovate-config-validator: valid, no warnings.Things to check/remember before submitting
last_review_datebumps needed.validate.yaml,validate-prose.yamland the link checks.updateNotScheduled: false, the preset's patch-automerge now only fires inside the window, so patch bumps land at night rather than continuously.