npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@teppeis/renovate-config

v1.15.0

Published

My shareable config for Renovate (renovatebot.com)

Downloads

28

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 <[email protected]>