renovatebot / config-help

Please use the Discussions feature of https://github.com/renovatebot/renovate instead
https://github.com/renovatebot/renovate/discussions
MIT License
27 stars 16 forks source link

[Help] Config schedule #917

Closed jpmartinspt closed 4 years ago

jpmartinspt commented 4 years ago

Which Renovate are you using?

WhiteSource Renovate App

Which platform are you using?

GitHub.com

What would you like to do?

I'm using the config bellow and some of the websites and was expecting all PR's to be filled every 3 months except for our internal dependencies that should be filled at any time. The issue is that I'm currently seeing some dev dependencies PR's popping up at any time, so I was wondering if you could give me any pointers on what could be wrong/missing with the config.

{
    "extends": [
        ":automergeDisabled",
        ":autodetectPinVersions",
        ":combinePatchMinorReleases",
        ":separateMajorReleases",
        ":separateMultipleMajorReleases",
        ":ignoreModulesAndTests",
        ":ignoreUnstable",
        ":prImmediately",
        ":prHourlyLimitNone",
        ":prConcurrentLimit20",
        ":updateNotScheduled",
        "helpers:disableTypesNodeMajor"
    ],
    "packageRules": [
        {
            "groupName": "all dependencies",
            "groupSlug": "all",
            "packagePatterns": ["*"],
            "schedule": ["every 3 months"]
        },
        {
            "groupName": "internal dependencies",
            "groupSlug": "internal",
            "packagePatterns": [
                "^@canonical",
                "^canonicalwebteam",
                "^vanilla-framework"
            ],
            "schedule": ["at any time"]
        },
        {
            "depTypeList": ["devDependencies"],
            "extends": [":automergeMinor"]
        }
    ]
}
rarkins commented 4 years ago

Can you provide more specifics when you say "some dev dependencies PR's popping up at any time"? e.g. can you locate a branch name and a timestamp of when the PR was created?

If the branch renovate/all is still active then Renovate will reuse it and create a PR, so be sure to delete the branch once merged.

jpmartinspt commented 4 years ago

If you look at https://github.com/canonical-web-and-design/snapcraft.io/pulls things seem to work more or less as expected, minors were grouped in a single PR and each major has it's on PR, but I was expecting the PRs to all have been opened within the same day and it seems like they are still being opened when a dependency as been released, for example https://github.com/canonical-web-and-design/snapcraft.io/pull/3119 opening seems to coincide with the day that version of webpack was release. Does that help/make sense?

rarkins commented 4 years ago

Was it your intention that the "all dependencies" PR would include major as well? Note: I don't recommend that (too hard to manage when one or more updates in the same PR contain breaking changes).

jpmartinspt commented 4 years ago

No, but it only has minors and patches, right?

rarkins commented 4 years ago

If you didn't have :separateMultipleMajor in your presets then all the majors would have ended up as part of the all group. But now what you're seeing is the major updates grouped by their major version. e.g. the branch is renovate/major-4-all. Right now it looks like a separate PR per dependency but that's only because it happens that only one exists in each group right now. I think you'd be better off if the major updates were excluded from the all group explicitly and each given a separate PR.

The next thing we need to check is if the every 3 months rule is actually working as expected. Based on the log, I think it's probably not as you expect:

{"branch":"renovate/all","parsedSchedule":{"schedules":[{"M":[1,4,7,10]}],"exceptions":[],"error":-1},"msg":"Checking schedule \"every 3 months\"","time":"2020-10-13T14:34:33.647Z"}
{"branch":"renovate/all","msg":"Matches schedule every 3 months","time":"2020-10-13T14:34:33.648Z"}

i.e. it's essentially just checking "is this january, april, july or october? if so then create PRs all month. This probably explains the behaviour you were originally asking about in this issue.

I'm assuming you were after something like on the first day of every 3 months? We would need to work out if such a pattern is supported by the underlying library.

jpmartinspt commented 4 years ago

You are absolutely right "every 3 months" does not do what I thought it would! But since I have written the config there seems to be a new schedule preset schedule:quarterly that does exactly what I want! Thanks for your help and time, I'll give this a go.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed soon if no further activity occurs.