2022-11-01 13:28:43 +02:00
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
],
2024-02-10 20:20:59 +02:00
// We don't update too frequently so that if something is broken in a new package
// release it will have time to be fixed by the time we update. The npm ecosystem
// being what it is even patch releases can have serious breaking changes.
2023-01-05 23:31:12 +02:00
"major": {
2024-02-10 20:20:59 +02:00
"stabilityDays": 200,
2023-01-05 23:31:12 +02:00
},
"minor": {
2024-02-10 20:20:59 +02:00
"stabilityDays": 120,
2023-01-05 23:31:12 +02:00
},
"patch": {
2024-02-10 20:20:59 +02:00
"stabilityDays": 90,
2023-01-05 23:33:41 +02:00
},
2024-02-10 20:20:59 +02:00
2024-09-01 22:14:35 +02:00
// Keep a low limit because otherwise Renovate will do nothing for 3 months then
// suddenly dump 20 pull requests. And this intefer with our GitHub Action to
// automerge PRs, not to mention that they all end up conflicting with each others
// if they are created at the same time.
"prConcurrentLimit": 4,
2022-11-08 20:15:25 +02:00
"prHourlyLimit": 0,
2023-05-16 12:40:18 +02:00
2023-12-16 14:00:57 +02:00
// Tell Renovate to rebase only when there's a conflict, otherwise pull
// requests never get auto-merged because there are always new changes.
"rebaseWhen": "conflicted",
2023-05-16 12:40:18 +02:00
// It seems we need to delete the branches after merge or else it causes this problem:
// https://github.com/renovatebot/renovate/discussions/21256#discussioncomment-5898418
"pruneBranchAfterAutomerge": true,
2022-11-01 13:28:43 +02:00
"ignorePaths": [
"**/bower_components/**",
2022-11-12 15:50:10 +02:00
"**/node_modules/**",
"Assets/**",
2022-11-01 13:28:43 +02:00
"packages/app-cli/tests/**",
2022-11-12 15:50:10 +02:00
"packages/app-clipper/popup",
2022-11-15 11:22:00 +02:00
"packages/app-mobile/android/app/build.gradle",
2023-08-10 11:40:44 +02:00
"packages/generate-plugin-doc/**",
2022-11-15 11:22:00 +02:00
"packages/plugins/**",
2023-10-30 21:41:49 +02:00
"packages/doc-builder/**",
2022-11-02 15:22:04 +02:00
],
"ignoreDeps": [
2022-11-02 17:22:48 +02:00
"@babel/core",
2023-12-16 22:11:33 +02:00
"@codemirror/autocomplete",
2022-11-07 12:11:59 +02:00
"@codemirror/commands",
"@codemirror/lang-cpp",
"@codemirror/lang-html",
"@codemirror/lang-java",
"@codemirror/lang-javascript",
"@codemirror/lang-markdown",
"@codemirror/lang-php",
"@codemirror/lang-rust",
"@codemirror/language",
2024-05-28 12:28:56 +02:00
"@codemirror/language-data",
2022-11-07 12:11:59 +02:00
"@codemirror/legacy-modes",
2023-12-13 22:00:38 +02:00
"@codemirror/lint",
2022-11-07 12:11:59 +02:00
"@codemirror/search",
"@codemirror/state",
"@codemirror/view",
2023-12-26 14:53:24 +02:00
"@replit/codemirror-vim",
2023-12-17 11:52:16 +02:00
"@lezer/common",
2023-04-09 13:55:47 +02:00
"@lezer/highlight",
2023-12-13 21:24:58 +02:00
"@lezer/markdown",
2022-11-07 12:11:59 +02:00
"@fortawesome/fontawesome-svg-core",
"@fortawesome/free-solid-svg-icons",
"@svgr/webpack",
"actions/stale",
2022-11-02 17:22:48 +02:00
"babel-eslint",
2022-11-03 22:10:34 +02:00
"babel-loader",
2022-11-08 22:55:30 +02:00
"babel-preset-react-app",
"browserify",
2022-11-08 20:27:29 +02:00
"codemirror",
"cspell",
2022-11-10 09:54:06 +02:00
"file-loader",
"gradle",
"html-webpack-plugin",
2022-11-11 18:25:38 +02:00
"husky",
2022-11-12 12:27:06 +02:00
"lerna",
2022-11-15 11:11:11 +02:00
"metro-react-native-babel-preset",
"mini-css-extract-plugin",
"rollup-plugin-commonjs",
"rollup-plugin-node-resolve",
"rollup",
"ruby",
"stripe",
"typedoc",
2022-11-17 18:04:05 +02:00
"webpack-cli",
2022-11-15 11:11:11 +02:00
"webpack",
2023-12-31 02:15:39 +02:00
"yeoman-generator",
2023-06-15 23:16:16 +02:00
2022-11-17 15:53:29 +02:00
// pdfjs-dist requires the canvas package, which cannot be built in
// Windows.
2022-11-17 13:25:11 +02:00
//
2022-11-17 15:53:29 +02:00
// An unhandled error occurred inside electron-rebuild node-gyp failed
// to rebuild
// 'D:\a\joplin\joplin\packages\pdf-viewer\node_modules\canvas'.
2022-11-17 13:25:11 +02:00
//
// https://github.com/mozilla/pdf.js/issues/15112
//
2022-11-17 15:53:29 +02:00
// Maybe need to install Canvas separately and follow the instruction
// here to setup the build properly on Windows:
2022-11-17 13:25:11 +02:00
// https://github.com/Automattic/node-canvas#compiling
"pdfjs-dist",
2022-11-16 11:37:30 +02:00
// Too complex to upgrade past TinyMCE 5
// https://www.tiny.cloud/docs/tinymce/6/migration-from-5x/
"tinymce",
2022-11-15 11:11:11 +02:00
// React Native stuff should be updated only when
// upgrading React Native.
2023-06-10 18:07:07 +02:00
"@babel/preset-env",
2023-01-21 14:20:12 +02:00
"@babel/runtime",
2024-05-27 18:16:00 +02:00
"@tsconfig/react-native",
"@types/react-native",
"@testing-library/react-native",
2023-01-21 14:20:12 +02:00
"androidx.appcompat:appcompat",
2023-02-09 03:33:52 +02:00
"babel-plugin-module-resolver",
2022-11-15 11:11:11 +02:00
"com.android.tools.build:gradle",
2022-11-11 12:04:03 +02:00
"com.facebook.flipper:flipper-fresco-plugin",
"com.facebook.flipper:flipper-network-plugin",
2022-11-15 11:11:11 +02:00
"com.facebook.flipper:flipper",
2023-02-05 14:26:55 +02:00
"com.google.code.gson:gson",
2023-01-21 14:20:12 +02:00
"com.google.code.gson",
"de.undercouch:gradle-download-task",
2022-11-15 11:11:11 +02:00
"jsc-android",
2023-01-21 14:20:12 +02:00
"org.robolectric:robolectric",
2024-05-27 18:16:00 +02:00
"react-native",
2024-05-27 09:59:18 +02:00
"activesupport",
2024-06-17 22:23:55 +02:00
"cocoapods",
2022-11-15 11:11:11 +02:00
2023-07-14 15:42:36 +02:00
// We currently don't have automated tests that verify that the
2023-09-18 19:49:52 +02:00
// sidemenus work correctly in the mobile app. Because an update to
2024-05-27 18:16:00 +02:00
// react-native-reanimated has previously broken the sidemenu
2023-09-18 19:49:52 +02:00
// (https://github.com/laurent22/joplin/issues/8456), we disable auto
// updates for it:
2023-07-14 15:42:36 +02:00
"react-native-reanimated",
2022-11-15 11:11:11 +02:00
// Cannot upgrade further due to ESM support
"node-fetch",
2023-05-19 21:50:37 +02:00
"execa",
2023-06-08 14:48:53 +02:00
"open",
2023-06-16 00:16:44 +02:00
"pretty-bytes",
2023-06-16 10:26:04 +02:00
"strip-ansi",
2023-08-08 17:06:08 +02:00
"node-emoji",
2024-02-09 14:17:20 +02:00
"debounce",
2024-09-08 17:27:44 +02:00
"gettext-parser",
2024-09-28 12:29:10 +02:00
"query-string",
2024-10-26 23:31:13 +02:00
"@rmp135/sql-ts",
2024-11-09 14:52:31 +02:00
"file-type",
2023-06-16 10:26:04 +02:00
2024-01-18 19:19:43 +02:00
// Formidable v3 is broken:
// https://github.com/node-formidable/formidable/issues/958
"formidable",
"@types/formidable",
2023-06-16 11:03:31 +02:00
// @koa/cors has undocumented breaking changes, and the package is not
// well supported so we're stuck with latest v3 for now
"@koa/cors",
2023-09-18 19:49:52 +02:00
// Can't upgrade beyond 2.x because it doesn't work with Electron. If
// trying to upgrade again, check that adding a link from the CodeMirror
// editor works. See /packages/app-desktop/gui/dialogs.ts
2023-06-16 10:26:04 +02:00
"smalltalk",
2023-05-19 21:50:37 +02:00
// Don't think we can trust this lib because they don't release a
// changelog and the latest version appears to have breaking changes
// (v0.5.0). Doesn't seem serious unfortunately.
// https://github.com/Leonidas-from-XIV/node-xml2js/issues/677
"xml2js",
2023-06-01 17:13:08 +02:00
// Looks like upgrading AWS causes the mobile build to fail with the following error:
//
// error: Error: Unable to resolve module @aws-sdk/chunked-blob-reader from /Users/laurent/src/joplin/packages/lib/node_modules/@aws-sdk/hash-blob-browser/dist-cjs/index.js: @aws-sdk/chunked-blob-reader could not be found within the project or in these directories:
// ../lib/node_modules
// ../../node_modules
// ../../../node_modules
// /Users/laurent/src/joplin/packages/app-mobile/node_modules/@aws-sdk/chunked-blob-reader
// 2 | Object.defineProperty(exports, "__esModule", { value: true });
// 3 | exports.blobHasher = void 0;
// > 4 | const chunked_blob_reader_1 = require("@aws-sdk/chunked-blob-reader");
// | ^
// 5 | const blobHasher = async function blobHasher(hashCtor, blob) {
// 6 | const hash = new hashCtor();
// 7 | await (0, chunked_blob_reader_1.blobReader)(blob, (chunk) => {
// at ModuleResolver.resolveDependency (/Users/laurent/src/joplin/packages/app-mobile/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:178:15)
//
// Started failing with:
//
// "aws-sdk": "2.1340.0"
// "@aws-sdk/client-s3": "3.296.0"
// "@aws-sdk/s3-request-presigner": "3.296.0"
"aws-sdk",
"@aws-sdk/client-s3",
"@aws-sdk/s3-request-presigner",
2023-06-30 14:13:45 +02:00
// 2.x appears to have breaking changes since the generated HTML is
// different. Not important enough to fix since the package is only used
// for tests.
"clean-html",
2023-07-06 19:23:16 +02:00
// We are too many versions behind so it needs to be manually upgraded.
"immer",
2023-09-17 09:20:35 +02:00
// We don't really use styled-components anymore and v6 introduces
// breaking changes. Ideally we should just update existing components
// to rscss.
"styled-components",
2023-12-28 13:29:33 +02:00
"@types/styled-components",
2024-02-10 19:00:44 +02:00
// For now we are stuck with v5.1.6 due to this bug:
// https://github.com/TryGhost/node-sqlite3/issues/1747
"sqlite3",
2024-05-27 09:55:29 +02:00
// They refactored it with undocumented breaking changes.
"react-native-vosk",
2022-11-07 12:04:42 +02:00
],
"packageRules": [
{
"matchUpdateTypes": ["patch"],
2022-12-10 10:45:56 +02:00
"automerge": true,
2022-12-09 14:22:13 +02:00
"labels": ["automerge"],
2022-11-15 10:06:41 +02:00
},
2023-10-11 11:15:22 +02:00
{
2023-10-11 15:13:19 +02:00
"matchUpdateTypes": ["minor", "patch"],
2023-10-11 11:15:22 +02:00
"automerge": true,
2024-01-14 11:57:56 +02:00
"labels": ["automerge"],
"matchPackagePatterns": [
"@types/*",
],
},
{
"matchUpdateTypes": ["minor", "patch"],
"automerge": true,
"groupName": "types",
2023-10-11 11:15:22 +02:00
"extends": ["schedule:monthly"],
"labels": ["automerge"],
"matchPackagePatterns": [
"electron",
"electron-*",
],
},
2023-09-02 20:43:26 +02:00
2023-09-21 09:34:44 +02:00
{
"matchUpdateTypes": ["major", "minor", "patch"],
"automerge": true,
"groupName": "eslint",
"labels": ["automerge"],
"extends": ["schedule:monthly"],
"matchPackagePatterns": [
// If the apps build and all tests pass, we can assume that Yarn
// and TypeScript are safe to upgrade. They are frequently
// updated so having them here reduces noise.
"eslint",
"eslint-*",
"jest",
"jest-*",
"@typescript-eslint/*",
"yarn",
"typescript",
"prettier",
],
},
2023-09-02 20:43:26 +02:00
2023-06-01 17:13:08 +02:00
// {
// "matchUpdateTypes": ["minor", "patch"],
// "automerge": true,
// "groupName": "aws",
// "labels": ["automerge"],
// "extends": ["schedule:monthly"],
// "matchPackagePatterns": [
// // AWS packages are updated too frequently and we can assume minor
// // updates are stable.
// "@aws-sdk/*",
// "aws-sdk",
// ],
// },
2022-11-01 13:28:43 +02:00
]
}