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

cli: don't run update-notifier in CI environment #33

Closed
wants to merge 4 commits into from
Closed

cli: don't run update-notifier in CI environment #33

wants to merge 4 commits into from

Conversation

@sibiraj-s
Copy link

@sibiraj-s sibiraj-s commented Jul 28, 2018

This Prevents update notifier from running in CI environment

@sibiraj-s sibiraj-s requested a review from as a code owner Jul 28, 2018
@olore
Copy link
Contributor

@olore olore commented Jul 28, 2018

Nice one @sibiraj-s. This and #32 will make the update-notifier work the same as pnpm

@zkat
Copy link
Contributor

@zkat zkat commented Jul 30, 2018

Ahh, I commented on #32 before seeing this PR. @olore feel free to ignore my comments related to CI itself.

Copy link
Contributor

@zkat zkat left a comment

So far so good! Thanks a bunch for submitting this PR, and welcome! Just a couple of changes and I think this is ready to go. 🎉

bin/npm-cli.js Outdated
@@ -80,9 +80,10 @@
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('is-ci')
Copy link
Contributor

@zkat zkat Jul 30, 2018

I'd rather use ci-info, since it's what is-ci itself uses. We don't need yet another package.json floating around for a one-liner by the same author. ci-info exports an isCI property that you can achieve the same thing with.

Copy link
Author

@sibiraj-s sibiraj-s Aug 16, 2018

@zkat . It seems is-ci is already a part of this package(a dependant of update-notifier). having that now won't make a difference?

bin/npm-cli.js Outdated
if (
notifier.update &&
notifier.update.latest !== pkg.version
notifier.update.latest !== pkg.version && !isCI
Copy link
Contributor

@zkat zkat Jul 30, 2018

do you mind putting this on the next line for consistency?

package.json Outdated
@@ -177,6 +178,7 @@
"inherits",
"ini",
"init-package-json",
"is-ci",
Copy link
Contributor

@zkat zkat Jul 30, 2018

Awesome! You added it to bundleDependencies. Additionally, we commit our dependencies, and we use package-lock.json so please go ahead and git add -A node_modules/ package-lock.json as well before you commit the ci-info change I asked for above!

@@ -80,9 +80,11 @@
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('ci-info').isCI
Copy link
Contributor

@iarna iarna Jul 31, 2018

We already detect CI in a handful of places and currently ci-info doesn't entirely align. Then again, our various detectors don't align with each other. Ideally, I'd like to see those patched to use ci-info as well (but not in this PR).

For reference, our existing CI detectors are here:

'progress': !process.env.TRAVIS && !process.env.CI,

and here:

https://github.com/npm/npm-registry-fetch/blob/03dde52817d00996d8316b155832d8802f338236/config.js#L26

The latter one detects things ci-info doesn't, so ci-info will need patching before we can entirely switch over to it.

There's also:

https://github.com/npm/npm-registry-client/blob/d70399bff938b04cd3ed7052f415c6ed2d6bd275/lib/initialize.js#L15

Which should probably be patched too, though we aren't/won't be using it any more in npm proper.

Copy link

@watson watson Aug 16, 2018

BTW: The is-ci module is just a convenience wrapper around ci-info, that when used programmatically returns a boolean and when used from the command line uses the exit code to signal if it's being run on a CI server or not.

package.json Outdated
@@ -45,6 +45,7 @@
"cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
"ci-info": "^1.1.3",
Copy link
Contributor

@iarna iarna Jul 31, 2018

There's still no package-lock.json change in this PR? We'll need that to land this.

Copy link
Author

@sibiraj-s sibiraj-s Aug 10, 2018

@iarna I got it. The ci-info is already used as a dependecy of update-notifier

update-notifier -> is-ci -> ci-info

Copy link
Contributor

@zkat zkat Aug 13, 2018

ohhhhh

that makes sense.

@sibiraj-s
Copy link
Author

@sibiraj-s sibiraj-s commented Jul 31, 2018

@iarna . I raised a PR in ci-info for detecting solano-ci. which is the only ci which is not detected by ci-info and used here.

watson/ci-info#9

@zkat
Copy link
Contributor

@zkat zkat commented Aug 13, 2018

Once @watson gets around to reviewing/approving the ci-info changes, I think we'll be ready to merge this. So I figure I'll ping him 😅

@zkat
Copy link
Contributor

@zkat zkat commented Aug 13, 2018

As a note for @iarna: I think it's fine and pretty much safe that ci-info uses different env var keys for Bamboo. If one is present, the other one is also present. And if you're being that clever about tricking npm into thinking you're in bamboo, then I dunno what to tell ya. I think it's fine to accept this once ci-info gets the solano patch. Everything else seems to be the same.

Additional note to self: I should probably patch npm-registry-fetch to use this as well. Maybe pacote if this gets merged before we upgrade pacote to the n-r-f version.

@watson
Copy link

@watson watson commented Aug 14, 2018

@zkat Thanks a lot of pinging me on this. I'm so bad at checking github notifications - have a huge backlog 😬

@sibiraj-s
Copy link
Author

@sibiraj-s sibiraj-s commented Aug 14, 2018

ci-info updated to v1.3.1. detects solano-ci

zkat
zkat approved these changes Aug 20, 2018
Copy link
Contributor

@zkat zkat left a comment

👍 looks good! Thank you @watson and @sibiraj-s!

zkat added a commit that referenced this issue Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this issue Aug 20, 2018
@zkat
Copy link
Contributor

@zkat zkat commented Aug 20, 2018

I merged this manually, so github isn't gonna detect it as a merge, but this is now in release-next: cabc0f0

@zkat zkat closed this Aug 20, 2018
zkat added a commit that referenced this issue Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this issue Aug 20, 2018
@sibiraj-s sibiraj-s deleted the ci-skip-update-notifier branch Aug 21, 2018
@sibiraj-s
Copy link
Author

@sibiraj-s sibiraj-s commented Aug 21, 2018

cool. @zkat I would also suggest to update ci-info to v1.4 before the release, as it detects two more popular CI's

mislav added a commit to mislav/npm-cli that referenced this issue Sep 3, 2018
This is a followup to npm#33 that changes the logic to literally *not* run update-notifier
in CI environment, instead of running it and omitting the result.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants