Sounds good to me.

One thing to note is it seems my discussion of how people should update with a jira ref/link the title and description of the dependabot PR for production code updates was flawed. Most developers don't have the GH perms to do that; they could only comment with a link; the merger would have to do the updates. I think that's fine.

On Fri, Aug 11, 2023 at 6:25 AM Yeray Borges Santana <yborgess@redhat.com> wrote:
It looks like it went pretty well this week in WildFly, time for doing the same for WildFly Core by enabling patch release upgrades?


On Thu, Aug 3, 2023 at 5:25 PM Brian Stansberry <brian.stansberry@redhat.com> wrote:


On Thu, Aug 3, 2023 at 9:37 AM Darran Lofthouse <darran.lofthouse@jboss.com> wrote:


On Thu, Aug 3, 2023 at 3:27 PM James Perkins <jperkins@redhat.com> wrote:


On Thu, Aug 3, 2023 at 2:55 AM Darran Lofthouse <darran.lofthouse@jboss.com> wrote:

On Fri, Jul 28, 2023 at 8:06 PM Brian Stansberry <brian.stansberry@redhat.com> wrote:



On Fri, Jul 28, 2023 at 1:03 PM James Perkins <jperkins@redhat.com> wrote:


On Fri, Jul 28, 2023 at 9:26 AM Brian Stansberry <brian.stansberry@redhat.com> wrote:
On Thu, Jul 27, 2023 at 5:54 PM James Perkins <jperkins@redhat.com> wrote:
Since I've been one that keeps talking about this, it seems I should reply here as well :)

In general we could, and really probably should, start with a known set of dependencies to upgrade. Otherwise we'll probably see A LOT of dependency upgrade PR's.

Can we start by just doing this in dependabot.yml:

ignore:
    - dependency-name: "*"
        update-types: ["version-update:semver-major","version-update:semver-minor"]

We could, yes. We will likely have a lot of upgrades come in that way. This might be okay, but my initial thought was to list specific dependencies we know to be upgradeable without a JIRA. I'm definitely up for being aggressive if we want though :)

I'll confess to being too lazy to try and figure out which deps to allow. :)

 

So we limit things to just the micros.

Dependabot will only produce 5 open PRs at a time, unless we specify a different number via dependabot.yml.* So we can process 5 at a time and even quickly close ones that will require more thought than we want to spend at that time. The dependency update report that's sent to this list every week will prevent any we ignore or close from falling into a crack.


* Perhaps we should start with a smaller max number and increase it every day or so until we get to whatever our long-term target is. IOW, avoid an initial CI-hogging flood.

The CI concerns are definitely valid. I hadn't considered that.

I don't think it's *that* big a deal if our long term target is fairly small. Like if we turned it on on a Friday afternoon not near any tagging deadline probably no one would even notice the load.

We need to be careful about rebase-strategy though. Having say 5 PRs continually rebasing and kicking off CI every time we merge would be bad. Probably we should turn it off and use the pull player /retest when we want a retest, same as we do with human-created PRs.

+1 this must rebase strategy of GitHub to me feels like the strategy of how can we make it feel more like SVN - we don't need rebases on our PRs and if we are concerned about a combo we do one aggregate PR to test together.

I rebase PR's all the time :) That said, you can still rebase dependabot PR's with a comment of @dependabot rebase. You could use recreate instead as well. The main reason for the rebase though is when a PR has a conflict.

Yeah for merge conflicts rebases are often the best, it is more the GitHub options of deliberately updating commit history I am commenting on. 

I suspect the idea behind automatic rebases is an expectation that the branch update will trigger a fresh CI run. Or maybe if your CI isn't doing a merge before testing, then you get more accurate tests. But we do merges, and our main branch is too active to be continually retesting PRs every time it changes.

And pull player /retest works just fine for dependabot PRs too. The pull player bot doesn't discriminate against other bots. ;)

 
 
 

 



One thing to note too is that dependabot will create a branch in the repository. Anyone doing a fetch locally will get this new branch. Not really a huge deal, but something to keep in mind. Locally you might want to run git remote prune <your_remote> a little more often if you like to keep things clean :)

Thanks for the tip!



On Wed, Jul 26, 2023 at 10:33 AM Brian Stansberry <brian.stansberry@redhat.com> wrote:
Occasionally we've thought about turning on dependabot for the main WildFly repo, and a couple current discussions (see [1] and [2]) relate to that, so it seems a good time to discuss further and perhaps take action.

My main concern with dependabot is it doesn't integrate with JIRA. JIRA is really important to how we're able to keep a handle on a project as complex as WildFly. And I think it's important to track component upgrades in JIRA so our users can keep an eye on what we're providing. Particularly important in the world of ubiquitous CVE scanners.

But James Perkins has pointed out that such JIRA tracking is kind of overkill for non-production dependencies (e.g. test and build deps) and I agree.

So, how about we turn on dependabot and require a JIRA to be filed and linked to the PR if the proposed upgrade is production code dep? For non-production deps a JIRA would be optional.

The other thing I care about a lot is being able to grep the git log for commits related to a JIRA. That would of course be lost for non-production upgrades with no JIRA. Oh well. Also though dependabot wouldn't put our JIRA in its commit messages. But for PRs where we file a JIRA we can require human edit of the dependabot PR title to reference the JIRA. That will result in the JIRA appearing in the log via the merge commit Github generates. That solves the git log use case adequately enough IMO.

TBH I only grep for JIRA's if I have the JIRA I'm trying to find the commit for. Short of that, I pretty much just use git blame on the file to find out which commit changed a line. But everyone has their own workflow and I don't want to push mine on anyone :)
 
_______________________________________________
wildfly-dev mailing list -- wildfly-dev@lists.jboss.org
To unsubscribe send an email to wildfly-dev-leave@lists.jboss.org
Privacy Statement: https://www.redhat.com/en/about/privacy-policy
List Archives: https://lists.jboss.org/archives/list/wildfly-dev@lists.jboss.org/message/6UDLHXNSMPARNH6UCPSLWPOOCZP3VDIK/


--
James R. Perkins
JBoss by Red Hat


--
Brian Stansberry
Principal Architect, Red Hat JBoss EAP
He/Him/His


--
James R. Perkins
JBoss by Red Hat


--
Brian Stansberry
Principal Architect, Red Hat JBoss EAP
He/Him/His
_______________________________________________
wildfly-dev mailing list -- wildfly-dev@lists.jboss.org
To unsubscribe send an email to wildfly-dev-leave@lists.jboss.org
Privacy Statement: https://www.redhat.com/en/about/privacy-policy
List Archives: https://lists.jboss.org/archives/list/wildfly-dev@lists.jboss.org/message/HW2W3TB5ORLNE32BIZ3HSTG4EIQTDTAU/


--
James R. Perkins
JBoss by Red Hat

_______________________________________________
wildfly-dev mailing list -- wildfly-dev@lists.jboss.org
To unsubscribe send an email to wildfly-dev-leave@lists.jboss.org
Privacy Statement: https://www.redhat.com/en/about/privacy-policy
List Archives: https://lists.jboss.org/archives/list/wildfly-dev@lists.jboss.org/message/IAJWVSNI6SI7TX7MDVIRRMVLFNQAWW6R/


--
Brian Stansberry
Principal Architect, Red Hat JBoss EAP
He/Him/His