til

Today I Learned: collection of notes, tips and tricks and stuff I learn from day to day working with computers and technology as an open source contributor and product manager

View project on GitHub

Use Renovate for Perl

I really really like Dependabot and I use it for all my projects/repositories.

However, I have a few Perl projects and Dependabot does not support Perl.

I have looked at Renovate for other things and the other day I received a bunch of PRs from Renovate for my Perl repositories.

Apparently Renovate now supports Perl or it supports handling the cpanfile. I was able to locate this PR.

See the examples.

I have processed most of them and I am quite happy with the result.

Renovate also creates an issue, which is sort of a Dashboard for the PRs, which is good, even though I hate the idea of having an issue open for all eternity. Anyway from the Dashboard issue you can control Renovate.

The documentation is not much to write home about.

Do note that Perl is a language is not listed as supported but cpanfile is listed as a manager.

I have not been able to locate any documentation on how to configure Renovate for Perl, but I have been able to locate a configuration option for ignoring dependencies.

This might be useful since I do not want to receive PRs for the actual Perl version required. As you can see from the examples, I received a PR to update the requirement in the cpanfile to 5.37.11, which is not really what I want, since this sort of contradicts the Perl philosophy of backwards compatibility. You could argue that it is the same thing for the dependencies, but since this is they way I handle dependencies in other languages, I am fine with it.

For now I have declined the PRs for the Perl version requirement, but I am considering to configure Renovate to ignore the Perl version requirement.

So in my Renovate configuration I have specified the following:

{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "ignoreDeps": ["perl"],
  "extends": [
    "config:base"
  ]
}

Lifted from: jonasbn/perl-critic-policy-builtinfunctions-prohibitshelldispatch: .github/renovate.json

Next thing up is to work out how to work with core modules.

An item for the wish list could be to have Renovate support cpanfile.snapshot as well, perhaps it does not make sense, because it is auto-generated, but at the same time that is how it works for other languages like Go for example.

Resources and References