@teppeis/renovate-config

My shareable config for Renovate (renovatebot.com)

Stats

StarsIssuesVersionUpdatedCreatedSize
@teppeis/renovate-config
283Minified + gzip package size for @teppeis/renovate-config in KB

Readme

@teppeis/renovate-config

My shareable config for Renovate

npm version build status dependency status License

Setup

Enable Renovate in your repo and just extends in renovate.json.

{
  "extends": ["@teppeis"] // or ["@teppeis:anytime"]
}

Note: You don't have to do npm i -D @teppeis/renovate-config. Renovate fetches it from npm registry automatically.

Presets

@teppeis (default)

General

  • Ignore node_modules, bower_components, and various test/tests directories
  • Apply label renovate to PRs
  • Limit to maximum 10 concurrent Renovate PRs at any time
  • Wait until branch tests have passed or failed before creating the PR
  • If semantic commits detected, use semantic commit type fix for deps and peerDeps, chore for all others
  • Use Asia/Tokyo timezone
  • Group preset monorepo packages together

for npm

  • Automerge patch upgrades if they pass tests
  • Make no updates to branches when not scheduled
  • Separate major, minor and patch releases of dependencies into individual branches/PRs
  • Set a status check to warn when upgrades < 24 hours old might get unpublished
  • Disable major upgrade of @types/node
  • Run following schedule: after 9pm and before 9am
  • Upgrade semver ranges to latest version even if latest version satisfies existing range.
  • Group ESLint, ESLint configs, ESLint plugins and Prettier together
  • Automerge minor updates of widely used libraries like mocha in devDeps

for lock file maintenance

  • Run following schedule: every weekend and before 9am on Monday

for Docker digests in CirleCI config.yml

  • Run following schedule: before 9am on Friday
  • Automerge with push the new commit directly to base branch (no PR)
  • Use ci(docker): as semantic commit type
  • Group all versions of Node.js images (node and circleci/node)

for engines field in package.json

  • disabled
{
  "extends": [
    ":ignoreModulesAndTests",
    ":label(renovate)",
    ":prConcurrentLimit10",
    ":prNotPending",
    ":timezone(Asia/Tokyo)",
    "group:monorepos"
  ],
  "npm": {
    "extends": [
      ":automergePatch",
      ":noUnscheduledUpdates",
      ":separatePatchReleases",
      ":unpublishSafe",
      "helpers:disableTypesNodeMajor",
      "@teppeis:semanticPrefixFixDepsPeerChoreOthers"
    ],
    "schedule": ["after 9pm", "before 9am"],
    "rangeStrategy": "bump",
    "packageRules": [
      {
        "groupName": "ESLint and Prettier",
        "packageNames": ["eslint", "prettier"],
        "packagePatterns": ["^eslint-config-", "^eslint-plugin-"]
      },
      {
        "description": "automerge minor updates of widely used libraries in devDeps",
        "updateTypes": ["minor"],
        "depTypeList": ["devDependencies"],
        "automerge": true,
        "packageNames": ["glob", "mocha", "npm-run-all", "power-assert", "rimraf", "sinon"]
      },
      {
        "description": "disable package.json > engines update",
        "depTypeList": ["engines"],
        "enabled": false
      }
    ]
  },
  "lockFileMaintenance": {
    "enabled": true,
    "schedule": ["before 9am on the first day of the month"]
  },
  "circleci": {
    "enabled": true,
    "automerge": true,
    "automergeType": "branch",
    "schedule": ["before 9am on Friday"],
    "semanticCommitScope": "docker",
    "semanticCommitType": "ci",
    "packageRules": [
      {
        "groupName": "Node Docker digests in CircleCI",
        "packageNames": ["circleci/node", "node"]
      }
    ]
  }
}

@teppeis:anytime

  • Run Renovate at any time
{
  "extends": ["@teppeis"],
  "npm": {
    "schedule": "at any time"
  },
  "lockFileMaintenance": {
    "schedule": "at any time"
  },
  "circleci": {
    "schedule": "at any time"
  }
}

@teppeis:semanticPrefixFixDepsPeerChoreOthers

If semantic commits detected, use semantic commit type fix for dependencies and peerDependencies, chore for all others

"semanticPrefixFixDepsPeerChoreOthers": {
  "packageRules": [
    {
      "packagePatterns": [
        "*"
      ],
      "semanticCommitType": "chore"
    },
    {
      "depTypeList": [
        "dependencies",
        "peerDependencies"
      ],
      "semanticCommitType": "fix"
    }
  ]
}

References

License

MIT License: Teppei Sato <teppeis@gmail.com>

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.