tinkerpop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Mallette <spmalle...@gmail.com>
Subject Re: Using a bot to keep dependencies up to date
Date Wed, 10 Apr 2019 12:41:11 GMT
>
> I'm still not that experienced with Java/Maven, but the reasoning is that
> we want to avoid dependency version conflicts for our users, right?
>

well, we just try to keep things stable as possible without introducing a
breaking change by way of a dependency. it's not to say that we never do
it, but it's always with done with careful consideration.


> In that case, it's specific to Java I'd say. At least for .NET, I would
> expect a library to use recent versions of its dependencies.
>

always using the most recent has been disastrous in python. our build
breaks all the time with no changes from us because of that style where we
don't pin to specific dependencies. i don't understand that model at all. i
know you're not saying that we blindly upgrade, i was just making a point
about python that is semi-related.


> Since we add new features in our "patch versions" (we aren't doing
> semantic versioning so those aren't actually patch versions), I think it's
> also OK in general to update dependencies in those versions, at least to a
> higher patch version, but I think a higher minor version should also be OK
> if we also add features ourselves in those versions.
>

We allow new features into patch versions because we control the new
features and make choices as to whether they are "safe" or not. we're not
always sure of what a change in dependency will bring in terms of change to
the API but i agree that upgrades can take place (and as you pointed out at
the start, are already taking place in a more manual fashion). Again, I
just feel like we need to take each upgrade on a case by case basis.


> > We also typically have JIRAs for version bumps of dependencies - not
> always plugins - so if we continued with that those would be need to be
> created and CHANGELOG entries added manually after a merge i guess.
>
> Do we need a JIRA + CHANGELOG entry for all dependency updates or only for
> important ones?
> If we need them, then the bot at least notifies us of an available update
> and provides a PR for the update itself. We can then still create a JIRA
> issue + CHANGELOG entry manually if necessary.
> The notification should also include fixes for security problems in which
> case the bot sometimes also includes this information directly in the PR.
>

maybe we just need it for "important" ones. i guess that's how we've been
doing it so far.......


> > kuppitz makes the good point of the mess Travis has been in lately.
>
> Is that a reason against using a bot for automation or am I
> misunderstanding your/Daniel's point here? If a Travis build fails
> non-deterministically for a PR created by a bot, then I would simply
> trigger a rebuild manually.
>

i guess that's just us railing about travis........not a reason to avoid
automation.


> We could also use such a bot only for the GLVs / some of the GLVs if we
> don't want to update dependencies in general outside of major releases
> (like 3.5.0). At least for .NET I would appreciate such a bot, but I can't
> say much for Python / JavaScript as I don't know enough about how they
> handle dependency updates.


if we use this, i think we should use it across the project. i looked at
the list of PRs that were generated by it in your fork more carefully and
it was curious that the larger version bumps weren't present. Why no PR for
spark, hadoop, etc? not that they would pass compilation - i'd expect
failures, but I'm just wondering if you knew the reason it didn't catch
those?

some more questions:

1. I see the list of commands that dependabot has - it looks like it
submits all PRs against master. what about tp33? will we have to
cherry-pick out of the PR to tp33, test and then merge forward to master?
or is there something easier?
2. i assume that you setup an account for dependabot that gets it
configured at our repo? I assume that the account is bound to your github
account? can that dependabot dashboard for "tinkerpop" be accessed by
others or just your account? how will that work?
3. i don't see much information about what the dashboard allows users to do
- could you summarize some of the options available and what we see there?

thanks!


On Wed, Apr 10, 2019 at 7:59 AM Florian Hockmann <fh@florian-hockmann.de>
wrote:

> > we don't usually upgrade them in a release line unless
>
> I'm still not that experienced with Java/Maven, but the reasoning is that
> we want to avoid dependency version conflicts for our users, right?
>
> In that case, it's specific to Java I'd say. At least for .NET, I would
> expect a library to use recent versions of its dependencies.
>
> Since we add new features in our "patch versions" (we aren't doing
> semantic versioning so those aren't actually patch versions), I think it's
> also OK in general to update dependencies in those versions, at least to a
> higher patch version, but I think a higher minor version should also be OK
> if we also add features ourselves in those versions.
>
> > We also typically have JIRAs for version bumps of dependencies - not
> always plugins - so if we continued with that those would be need to be
> created and CHANGELOG entries added manually after a merge i guess.
>
> Do we need a JIRA + CHANGELOG entry for all dependency updates or only for
> important ones?
> If we need them, then the bot at least notifies us of an available update
> and provides a PR for the update itself. We can then still create a JIRA
> issue + CHANGELOG entry manually if necessary.
> The notification should also include fixes for security problems in which
> case the bot sometimes also includes this information directly in the PR.
>
> > kuppitz makes the good point of the mess Travis has been in lately.
>
> Is that a reason against using a bot for automation or am I
> misunderstanding your/Daniel's point here? If a Travis build fails
> non-deterministically for a PR created by a bot, then I would simply
> trigger a rebuild manually.
>
> We could also use such a bot only for the GLVs / some of the GLVs if we
> don't want to update dependencies in general outside of major releases
> (like 3.5.0). At least for .NET I would appreciate such a bot, but I can't
> say much for Python / JavaScript as I don't know enough about how they
> handle dependency updates.
>
> -----Urspr√ľngliche Nachricht-----
> Von: Stephen Mallette <spmallette@gmail.com>
> Gesendet: Mittwoch, 3. April 2019 20:27
> An: dev@tinkerpop.apache.org
> Betreff: Re: Using a bot to keep dependencies up to date
>
> hmm - so far i've been the bot. i run maven commands to find out what
> needs upgrading and then make decisions on when to do those upgrades as we
> don't usually upgrade them in a release line unless:
>
> 1. they are maven plugins
> 2. they are fixes for security problems
> 3. they introduce something important for our code base - like a
> performance fix or other enhancements
>
> That said, my maven commands only deal with Java and not the GLVs so not
> much attention has been paid there unfortunately now that I think about it.
> We also typically have JIRAs for version bumps of dependencies - not
> always plugins - so if we continued with that those would be need to be
> created and CHANGELOG entries added manually after a merge i guess.
>
> I'm not completely against the idea, just pointing out some points of
> friction with what we currently do and kuppitz makes the good point of the
> mess Travis has been in lately. Utterly useless the last few weeks. If we
> didn't use a bot, at minimum it would be nice to document the manual
> methods for getting reports for the GLVs that show upgrade paths (I assume
> that those exist for other language ecosystems as they do for maven). it
> would be nice to hear additional thoughts on the matter.
>
> Florian, thanks for taking the time to look into improving our build
> process.
>
>
>
> On Wed, Apr 3, 2019 at 1:29 PM Daniel Kuppitz <me@gremlin.guru> wrote:
>
> > Pretty cool, I like that (if only Travis would be a little more
> reliable).
> >
> > Cheers,
> > Daniel
> >
> >
> > On Wed, Apr 3, 2019 at 9:43 AM Florian Hockmann
> > <fh@florian-hockmann.de>
> > wrote:
> >
> > > Hi,
> > >
> > > we have a lot of dependencies in TinkerPop in different projects and
> > > even across different languages. That makes it hard to keep them
> > > updated which sometimes has security implications.
> > >
> > > I recently noticed that other open source projects use a bot that
> > > regularly checks whether any updates are available for their
> > > dependencies and then creates one PR per dependency. Just to try it
> > > out with TinkerPop, I activated such a bot on my fork:
> > >
> > > https://github.com/florianhockmann/tinkerpop/pulls
> > >
> > > and the overall result looks quite good in my opinion. It created a
> > > lot of PRs* and most could probably be directly merged. The bot can
> > > also be easily configured just by adding comments to its PR, for
> > > example to ignore a certain (major/minor/patch) version of a
> dependency:
> > >
> > >
> > https://github.com/FlorianHockmann/tinkerpop/pull/24#issuecomment-4739
> > 36360
> > >
> > > What do you think about adding such a bot for our repo?
> > >
> > >
> > > * This is limited to only 5 PRs per day at first to not overwhelm a
> > > project with PRs.
> > >
> > >
> > >
> >
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message