Skip to content
This repository has been archived by the owner on Aug 11, 2022. It is now read-only.

Commit

Permalink
tar: warn when using Node 6+
Browse files Browse the repository at this point in the history
Credit: @othiym23
PR-URL: #13077
  • Loading branch information
othiym23 authored and iarna committed Jun 17, 2016
1 parent dda3ca7 commit 4e52cef
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 3 deletions.
7 changes: 7 additions & 0 deletions lib/utils/tar.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ var writeStreamAtomic = require('fs-write-stream-atomic')
var log = require('npmlog')
var uidNumber = require('uid-number')
var readJson = require('read-package-json')
var semver = require('semver')
var tar = require('tar')
var zlib = require('zlib')
var fstream = require('fstream')
Expand Down Expand Up @@ -35,6 +36,12 @@ exports.unpack = unpack
function pack (tarball, folder, pkg, cb) {
log.verbose('tar pack', [tarball, folder])

if (semver.gte(process.version, '6.0.0')) {
log.warn('pack', 'Publishing and packing are buggy under Node versions greater than 6.0.0.')
log.warn('pack', 'Please use Node.js LTS (4.4.x) to publish packages.')
log.warn('pack', 'See https://github.com/npm/npm/issues/5082 for details and current status.')
}

log.verbose('tarball', tarball)
log.verbose('folder', folder)

Expand Down
8 changes: 7 additions & 1 deletion test/tap/full-warning-messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ var test = require('tap').test
var path = require('path')
var mkdirp = require('mkdirp')
var rimraf = require('rimraf')
var semver = require('semver')
var fs = require('graceful-fs')
var common = require('../common-tap')

Expand Down Expand Up @@ -93,7 +94,12 @@ test('tree-style', function (t) {
t.match(stdout, /modA@1.0.0/, 'modA got installed')
t.notMatch(stdout, /modB/, 'modB not installed')
var stderrlines = stderr.trim().split(/\n/)
t.is(stderrlines.length, 2, 'two lines of warnings')
// https://github.com/npm/npm/pull/13077
if (semver.gte(process.version, '6.0.0')) {
t.is(stderrlines.length, 5)
} else {
t.is(stderrlines.length, 2, 'two lines of warnings')
}
t.match(stderr, /Skipping failed optional dependency/, 'expected optional failure warning')
t.match(stderr, /Not compatible with your operating system or architecture/, 'reason for optional failure')
exists(t, modJoin(base, 'modA'), 'module A')
Expand Down
8 changes: 7 additions & 1 deletion test/tap/pack-scoped.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var fs = require('graceful-fs')
var join = require('path').join
var mkdirp = require('mkdirp')
var rimraf = require('rimraf')
var semver = require('semver')

var pkg = join(__dirname, 'scoped_package')
var manifest = join(pkg, 'package.json')
Expand Down Expand Up @@ -66,7 +67,12 @@ test('test', function (t) {
}, function (err, code, stdout, stderr) {
t.ifErr(err, 'npm pack finished without error')
t.equal(code, 0, 'npm pack exited ok')
t.notOk(stderr, 'got stderr data: ' + JSON.stringify('' + stderr))
// https://github.com/npm/npm/pull/13077
if (semver.gte(process.version, '6.0.0')) {
t.is(stderr.trim().split(/\n/).length, 3)
} else {
t.notOk(stderr, 'got stderr data: ' + JSON.stringify('' + stderr))
}
stdout = stdout.trim()
var regex = new RegExp('scope-generic-package-90000.100001.5.tgz', 'ig')
t.ok(stdout.match(regex), 'found package')
Expand Down
8 changes: 7 additions & 1 deletion test/tap/prepublish.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var fs = require('graceful-fs')
var join = require('path').join
var mkdirp = require('mkdirp')
var rimraf = require('rimraf')
var semver = require('semver')

var pkg = join(__dirname, 'prepublish_package')
var tmp = join(pkg, 'tmp')
Expand Down Expand Up @@ -59,7 +60,12 @@ test('test', function (t) {
t.equal(code, 0, 'pack finished successfully')
t.ifErr(err, 'pack finished successfully')

t.notOk(stderr, 'got stderr data:' + JSON.stringify('' + stderr))
// https://github.com/npm/npm/pull/13077
if (semver.gte(process.version, '6.0.0')) {
t.is(stderr.trim().split(/\n/).length, 3)
} else {
t.notOk(stderr, 'got stderr data: ' + JSON.stringify('' + stderr))
}
var c = stdout.trim()
var regex = new RegExp('' +
'> npm-test-prepublish@1.2.5 prepublish [^\\r\\n]+\\r?\\n' +
Expand Down

0 comments on commit 4e52cef

Please sign in to comment.