This commit is contained in:
@@ -0,0 +1,247 @@
|
||||
{
|
||||
"extends": [
|
||||
"github>tryghost/renovate-config"
|
||||
],
|
||||
// Limit concurrent branches to keep Renovate runs within the 30-minute
|
||||
// Mend timeout and avoid overwhelming CI with dozens of queued jobs.
|
||||
// The shared preset disables rate limiting, but Ghost's monorepo is
|
||||
// large enough that unlimited branches cause timeouts during rebasing.
|
||||
"branchConcurrentLimit": 10,
|
||||
// Keep manually-closed immortal/grouped PRs closed unless explicitly
|
||||
// reopened from the Dependency Dashboard.
|
||||
"recreateWhen": "never",
|
||||
// pnpm lockfile generation has been hitting Mend's 3GB memory ceiling.
|
||||
// Renovate maintainers suggested starting with toolSettings.nodeMaxMemory
|
||||
// set to 1024MB to reduce pnpm's Node heap usage and keep the overall job
|
||||
// under the hosted runner limit.
|
||||
"toolSettings": {
|
||||
"nodeMaxMemory": 1024
|
||||
},
|
||||
// We have to disable platform based automerge (forcing renovate to do it manually)
|
||||
// as otherwise renovate wont follow our schedule
|
||||
"platformAutomerge": false,
|
||||
"timezone": "Etc/UTC",
|
||||
// Restrict Renovate runs to the automerge windows so branch updates
|
||||
// (rebasing, force-pushes) happen around the same times automerge
|
||||
// can actually complete, not during the working day when CI is busy.
|
||||
// Each block starts one hour earlier than the matching automerge
|
||||
// window so Renovate has time to rebase and open/refresh PRs before
|
||||
// automerge is eligible to run.
|
||||
"schedule": [
|
||||
// Run all weekend
|
||||
"* * * * 0,6",
|
||||
// Run on Monday morning (Sun 23:00 is already covered by weekend)
|
||||
"* 0-12 * * 1",
|
||||
// Run on weekday evenings, starting 1 hour earlier than automerge
|
||||
"* 21-23 * * 1-5",
|
||||
// Run on early weekday mornings (previous day 23:00 is already
|
||||
// covered by the evening block above)
|
||||
"* 0-4 * * 2-6"
|
||||
],
|
||||
"automergeSchedule": [
|
||||
// Allow automerge all weekend
|
||||
"* * * * 0,6",
|
||||
// Allow automerge on Monday morning
|
||||
"* 0-12 * * 1",
|
||||
// Allow automerge overnight on weekday evenings (10pm-4:59am UTC)
|
||||
"* 22-23 * * 1-5",
|
||||
"* 0-4 * * 2-6"
|
||||
],
|
||||
"ignoreDeps": [
|
||||
// https://github.com/TryGhost/Ghost/commit/2b9e494dfcb95c40f596ccf54ec3151c25d53601
|
||||
// `got` 10.x has a Node 10 bug that makes it pretty much unusable for now
|
||||
"got",
|
||||
// https://github.com/TryGhost/Ghost/commit/2b9e494dfcb95c40f596ccf54ec3151c25d53601
|
||||
// `intl-messageformat` 6.0.0 introduced a breaking change in terms of
|
||||
// escaping that would be pretty difficult to fix for now
|
||||
"intl-messageformat",
|
||||
// https://github.com/TryGhost/Ghost/commit/b2fa84c7ff9bf8e21b0791f268f57e92759a87b1
|
||||
// no reason given
|
||||
"moment",
|
||||
// https://github.com/TryGhost/Ghost/pull/10672
|
||||
// https://github.com/TryGhost/Ghost/issues/10870
|
||||
"moment-timezone",
|
||||
// https://github.com/TryGhost/Admin/pull/1111/files
|
||||
// Ignored because of a mobiledoc-kit issue but that's now in koenig, can probably be cleaned up
|
||||
"simple-dom",
|
||||
// https://github.com/TryGhost/Admin/pull/1111/files
|
||||
// https://github.com/TryGhost/Ghost/pull/10672
|
||||
// These have been ignored since forever
|
||||
"ember-drag-drop",
|
||||
"normalize.css",
|
||||
"validator",
|
||||
|
||||
// https://github.com/TryGhost/Ghost/commit/7ebf2891b7470a1c2ffeddefb2fe5e7a57319df3
|
||||
// Changed how modules are loaded, caused a weird error during render
|
||||
"@embroider/macros",
|
||||
|
||||
// https://github.com/TryGhost/Ghost/commit/a10ad3767f60ed2c8e56feb49e7bf83d9618b2ab
|
||||
// Caused linespacing issues in the editor, but now it's used in different places
|
||||
// So not sure if it's relevant - soon we will finish switching to react-codemirror
|
||||
"codemirror",
|
||||
|
||||
// https://github.com/TryGhost/Ghost/commit/3236891b80988924fbbdb625d30cb64a7bf2afd1
|
||||
// ember-cli-code-coverage@2.0.0 broke our code coverage
|
||||
"ember-cli-code-coverage",
|
||||
// https://github.com/TryGhost/Ghost/commit/1382e34e42a513c201cb957b7f843369a2ce1b63
|
||||
// ember-cli-terser@4.0.2 has a regression that breaks our sourcemaps
|
||||
"ember-cli-terser"
|
||||
],
|
||||
"ignorePaths": [
|
||||
"test",
|
||||
"ghost/admin/lib/koenig-editor/package.json"
|
||||
],
|
||||
"packageRules": [
|
||||
// Always require dashboard approval for major updates
|
||||
// This was largely to avoid the noise of major updates which were ESM only
|
||||
// The idea was to check and accept major updates if they were NOT ESM
|
||||
// But this hasn't been workable with our capacity
|
||||
// Plus, ESM-only is an edge case in the grand scheme of dependencies
|
||||
{
|
||||
"description": "Require dashboard approval for major updates",
|
||||
"matchUpdateTypes": [
|
||||
"major"
|
||||
],
|
||||
"dependencyDashboardApproval": true
|
||||
},
|
||||
|
||||
// Group NQL packages separately from other TryGhost packages
|
||||
{
|
||||
"groupName": "NQL packages",
|
||||
"matchPackageNames": [
|
||||
"@tryghost/nql",
|
||||
"@tryghost/nql-lang"
|
||||
]
|
||||
},
|
||||
|
||||
// Split the broad shared TryGhost group into smaller logical lanes so
|
||||
// failures in one area (e.g. email rendering) don't block unrelated
|
||||
// internal package updates from merging.
|
||||
{
|
||||
"groupName": "TryGhost runtime packages",
|
||||
"matchPackageNames": [
|
||||
"@tryghost/adapter-base-cache",
|
||||
"@tryghost/admin-api-schema",
|
||||
"@tryghost/api-framework",
|
||||
"@tryghost/bookshelf-plugins",
|
||||
"@tryghost/database-info",
|
||||
"@tryghost/debug",
|
||||
"@tryghost/domain-events",
|
||||
"@tryghost/errors",
|
||||
"@tryghost/http-cache-utils",
|
||||
"@tryghost/job-manager",
|
||||
"@tryghost/logging",
|
||||
"@tryghost/metrics",
|
||||
"@tryghost/mw-error-handler",
|
||||
"@tryghost/mw-vhost",
|
||||
"@tryghost/pretty-cli",
|
||||
"@tryghost/prometheus-metrics",
|
||||
"@tryghost/promise",
|
||||
"@tryghost/referrer-parser",
|
||||
"@tryghost/root-utils",
|
||||
"@tryghost/security",
|
||||
"@tryghost/social-urls",
|
||||
"@tryghost/tpl",
|
||||
"@tryghost/validator",
|
||||
"@tryghost/version",
|
||||
"@tryghost/zip"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "TryGhost admin support packages",
|
||||
"matchPackageNames": [
|
||||
"@tryghost/color-utils",
|
||||
"@tryghost/custom-fonts",
|
||||
"@tryghost/limit-service",
|
||||
"@tryghost/members-csv",
|
||||
"@tryghost/timezone-data"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "TryGhost content and email packages",
|
||||
"matchPackageNames": [
|
||||
"@tryghost/config-url-helpers",
|
||||
"@tryghost/content-api",
|
||||
"@tryghost/helpers",
|
||||
"@tryghost/html-to-mobiledoc",
|
||||
"@tryghost/html-to-plaintext",
|
||||
"@tryghost/nodemailer",
|
||||
"@tryghost/parse-email-address",
|
||||
"@tryghost/request",
|
||||
"@tryghost/string",
|
||||
"@tryghost/url-utils"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "TryGhost test support packages",
|
||||
"matchPackageNames": [
|
||||
"@tryghost/email-mock-receiver",
|
||||
"@tryghost/express-test",
|
||||
"@tryghost/webhook-mock-receiver"
|
||||
]
|
||||
},
|
||||
|
||||
// Always automerge these packages:
|
||||
{
|
||||
"matchPackageNames": [
|
||||
// This is a pre-1.0.0 package, but it provides icons
|
||||
// and is very very regularly updated and seems safe to update
|
||||
"lucide-react"
|
||||
],
|
||||
"automerge": true
|
||||
},
|
||||
|
||||
// Allow internal Docker digest pins to automerge once the relevant
|
||||
// CI checks have gone green.
|
||||
{
|
||||
"description": "Automerge internal Docker digest updates after CI passes",
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"ghost/traffic-analytics",
|
||||
"tinybirdco/tinybird-local"
|
||||
],
|
||||
"matchUpdateTypes": [
|
||||
"digest"
|
||||
],
|
||||
"automerge": true,
|
||||
"automergeType": "pr"
|
||||
},
|
||||
|
||||
// Ignore all ember-related packages in admin
|
||||
// Our ember codebase is being replaced with react and
|
||||
// Most of the dependencies have breaking changes and it's too hard to update
|
||||
// Therefore, we'll leave these as-is for now
|
||||
{
|
||||
"groupName": "Disable ember updates",
|
||||
"matchFileNames": [
|
||||
"ghost/admin/package.json"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
// `ember-foo` style packages
|
||||
"/^ember(-|$)/",
|
||||
// scoped `@ember/*` packages
|
||||
"/^@ember\\//",
|
||||
// foo/ember-something style packages
|
||||
"/\\/ember(-|$)/"
|
||||
],
|
||||
"enabled": false
|
||||
},
|
||||
|
||||
// Don't allow css preprocessor updates in admin
|
||||
{
|
||||
"groupName": "disable css",
|
||||
"matchFileNames": [
|
||||
"ghost/admin/package.json"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"autoprefixer",
|
||||
"ember-cli-postcss",
|
||||
"/^postcss/",
|
||||
"/^css/"
|
||||
],
|
||||
"enabled": false
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user