Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Baseline practices] Keeping dependencies and node up to date #280

Closed
dominykas opened this issue Nov 9, 2019 · 15 comments · Fixed by #302
Closed

[Baseline practices] Keeping dependencies and node up to date #280

dominykas opened this issue Nov 9, 2019 · 15 comments · Fixed by #302
Assignees

Comments

@dominykas
Copy link
Member

We should have a doc, which describes the whys and the hows of staying up to date.

@ghinks
Copy link
Contributor

ghinks commented Nov 9, 2019

Something like the steps involved in setting up renovate bot on github for a repo and what are views are on the sort of schedule for updates?

@dominykas
Copy link
Member Author

Yes, although I think we should cover more than just renovate. There's also options for automerging, lock file maintenance, etc.

One thing I'd also be interested to see is keeping multiple release lines updated, esp. If we're going to make LTS for packages happen.

@balupton
Copy link
Contributor

balupton commented Nov 18, 2019

FWIW

@bevry accomplishes the goal of this automatically for all of its packages, through the following pieces

@dominykas
Copy link
Member Author

Adding to the meeting agenda:

I think we need an official repo (i.e. under nodejs, not pkgjs org) for Travis (and in the future - other CI setup?) includes. I know @ljharb was working on something - not sure how ready that is?

What I'd like to see is an include file with min version and the support policy - we can discuss details in the meeting/new issue (in the new repo?)

@dominykas dominykas added the package-maintenance-agenda Agenda items for package-maintenance team label Feb 17, 2020
@ljharb
Copy link
Member

ljharb commented Feb 17, 2020

I have https://github.com/ljharb/travis-ci which I’m using in hundreds of repos; there’s parts of it that remain mildly opinionated about package.json scripts structure, is all.

That said, it’s already possible to rely on just the version matrix from it.

@wesleytodd
Copy link
Member

wesleytodd commented Feb 17, 2020

Is the reason this is travis specific because that is still the most popular? I personally am switching everything to GH actions, and we discussed on Express doing the same. It seems like having one project with shared configurations just for the node versions part for all popular CI services would be the right course no?

EDIT:

and in the future - other CI setup?

I see you agree that it should include other CI services, my bad. With that as the goal I agree!

@ljharb
Copy link
Member

ljharb commented Feb 17, 2020

I don’t think there can be a single universal source based on what’s supported right now; i think each service needs it’s own distinct solution (even if that’s all maintained by us).

@dominykas
Copy link
Member Author

GH actions

TBH, I haven't followed the latest developments, but I was hoping that it can all be done natively by GH... If that's not available - sure, absolutely, we should provide an official recommendation in the nodejs org.

I think a repo-per-service is probably better? Ideas for a naming convention?

@wesleytodd
Copy link
Member

I recently setup dependabot on a few repos to see how it works. My first take is "WOW it is so chatty". We had disabled it on Express for this reason, and I thought maybe there were just some settings to make it better. I could not find those settings.

Here are the questions I have:

  • Why it closes and re-opens new PRs for the same dependency as it continues to get updated? Seems like it should just force push to the same PR.
  • Can it have one PR with many commits which update each the out of date deps. That would centralize it and also make it so you could cherry pick out the ones you want.
  • Can it allow repos to specify rules around which deps to update. In Express packages there are many deps we would want it to ignore for specific reasons. If we dont have this I am not sure we can use it.

They have a feedback repo, so maybe I will reach out to them there.

@ljharb
Copy link
Member

ljharb commented Feb 20, 2020

I definitely disable dependabot on every repo for these reasons and others; i prefer greenkeeper.

@lirantal
Copy link
Member

Chiming in here since I actually wrote about this thing recently with regards to Snyk which recently rolled out support for dep upgrades.

One of the key points I was making is the ability to configure the type of upgrades you want to receive, ignore some packages if you want, and most importantly the default setup limits the PRs being opened to 5 exactly due to the problem of increased noise and overhead in managing a repo for devs:

image

@dominykas
Copy link
Member Author

Here are the questions I have:

I know for sure that renovate can do all of these things.

@richardlau
Copy link
Member

I definitely disable dependabot on every repo for these reasons and others; i prefer greenkeeper.

Greenkeeper is being sunset on 3rd June 2020: https://greenkeeper.io/

@ljharb
Copy link
Member

ljharb commented Apr 7, 2020

… and replaced with a Snyk service.

@vweevers
Copy link

vweevers commented Apr 7, 2020

For those looking to replace Greenkeeper, this Renovate config comes pretty close:

{
  "extends": ["config:base"],
  "labels": ["greenkeeper"], // ;)
  "suppressNotifications": ["prIgnoreNotification"],
  "rangeStrategy": "replace"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants