| @@ -0,0 +1,125 @@ | ||
| var common = require('../common-tap.js') | ||
| var test = require('tap').test | ||
| var osenv = require('osenv') | ||
| var npm = require.resolve("../../bin/npm-cli.js") | ||
| var node = process.execPath | ||
| var path = require('path') | ||
| var fs = require('fs') | ||
| var rimraf = require('rimraf') | ||
| var mkdirp = require('mkdirp') | ||
| var pkg = path.resolve(__dirname, 'ignore-install-link') | ||
| var spawn = require('child_process').spawn | ||
| var linkDir = path.resolve(osenv.tmpdir(), 'npm-link-issue') | ||
|
|
||
| test('ignore-install-link: ignore install if a package is linked', function(t) { | ||
| setup(function(err) { | ||
| if (err) { | ||
| t.ifError(err) | ||
| t.end() | ||
| return | ||
| } | ||
|
|
||
| var p = path.resolve(pkg, 'node_modules', 'npm-link-issue') | ||
| fs.lstat(p, function(err, s) { | ||
| t.ifError(err) | ||
|
|
||
| t.ok(true === s.isSymbolicLink(), 'child is a symlink') | ||
| t.end() | ||
| }) | ||
| }) | ||
| }) | ||
|
|
||
| test('cleanup', function(t) { | ||
| process.chdir(osenv.tmpdir()) | ||
| rimraf.sync(pkg) | ||
| rimraf.sync(linkDir) | ||
| t.end() | ||
| }) | ||
|
|
||
|
|
||
| function setup(cb) { | ||
| rimraf.sync(linkDir) | ||
| mkdirp.sync(pkg) | ||
| mkdirp.sync(path.resolve(pkg, 'cache')) | ||
| mkdirp.sync(path.resolve(pkg, 'node_modules')) | ||
| mkdirp.sync(linkDir) | ||
| fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ | ||
| author: 'Evan Lucas', | ||
| name: 'ignore-install-link', | ||
| version: '0.0.0', | ||
| description: 'Test for ignoring install when a package has been linked', | ||
| dependencies: { | ||
| 'npm-link-issue': 'git+https://github.com/lancefisher/npm-link-issue.git#0.0.1' | ||
| } | ||
| }), 'utf8') | ||
| fs.writeFileSync(path.resolve(linkDir, 'package.json'), JSON.stringify({ | ||
| author: 'lancefisher', | ||
| name: 'npm-link-issue', | ||
| version: '0.0.1', | ||
| description: 'Sample Dependency' | ||
| }), 'utf8') | ||
|
|
||
| clone(cb) | ||
| } | ||
|
|
||
| function clone (cb) { | ||
| var child = createChild(process.cwd(), 'git', ['--git-dir', linkDir, 'init']) | ||
| child.on('close', function(c) { | ||
| if (c !== 0) | ||
| return cb(new Error('Failed to init the git repository')) | ||
|
|
||
| console.log('Successfully inited the git repository') | ||
| process.chdir(linkDir) | ||
| performLink(cb) | ||
| }) | ||
| } | ||
|
|
||
| function performLink (cb) { | ||
| var child = createChild(linkDir, node, [npm, 'link', '.']) | ||
| child.on('close', function(c) { | ||
| if (c !== 0) | ||
| return cb(new Error('Failed to link ' + linkDir + ' globally')) | ||
|
|
||
| console.log('Successfully linked ' + linkDir + ' globally') | ||
| performLink2(cb) | ||
| }) | ||
| } | ||
|
|
||
| function performLink2 (cb) { | ||
| var child = createChild(pkg, node, [npm, 'link', 'npm-link-issue']) | ||
| child.on('close', function(c) { | ||
| if (c !== 0) | ||
| return cb(new Error('Failed to link ' + linkDir + ' to local node_modules')) | ||
|
|
||
| console.log('Successfully linked ' + linkDir + ' to local node_modules') | ||
| performInstall(cb) | ||
| }) | ||
| } | ||
|
|
||
| function performInstall (cb) { | ||
| var child = createChild(pkg, node, [npm, 'install']) | ||
| child.on('close', function(c) { | ||
| if (c !== 0) | ||
| return cb(new Error('Failed to install')) | ||
|
|
||
| console.log('Successfully installed') | ||
| cb() | ||
| }) | ||
| } | ||
|
|
||
| function createChild (cwd, cmd, args) { | ||
| var env = { | ||
| HOME: process.env.HOME, | ||
| Path: process.env.PATH, | ||
| PATH: process.env.PATH | ||
| } | ||
|
|
||
| if (process.platform === "win32") | ||
| env.npm_config_cache = "%APPDATA%\\npm-cache" | ||
|
|
||
| return spawn(cmd, args, { | ||
| cwd: cwd, | ||
| stdio: "inherit", | ||
| env: env | ||
| }) | ||
| } |
| @@ -0,0 +1,71 @@ | ||
| var test = require('tap').test | ||
| var path = require('path') | ||
| var npm = path.resolve(__dirname, '../../cli.js') | ||
| var pkg = __dirname + '/scripts-whitespace-windows' | ||
| var tmp = pkg + '/tmp' | ||
| var cache = pkg + '/cache' | ||
| var modules = pkg + '/node_modules' | ||
| var dep = pkg + '/dep' | ||
|
|
||
| var mkdirp = require('mkdirp') | ||
| var rimraf = require('rimraf') | ||
| var node = process.execPath | ||
| var spawn = require('child_process').spawn | ||
|
|
||
| test('setup', function (t) { | ||
| mkdirp.sync(cache) | ||
| mkdirp.sync(tmp) | ||
| rimraf.sync(modules) | ||
|
|
||
| var env = { | ||
| npm_config_cache: cache, | ||
| npm_config_tmp: tmp, | ||
| npm_config_prefix: pkg, | ||
| npm_config_global: 'false' | ||
| } | ||
|
|
||
| var child = spawn(node, [npm, 'i', dep], { | ||
| cwd: pkg, | ||
| env: env | ||
| }) | ||
|
|
||
| child.stdout.setEncoding('utf8') | ||
| child.stderr.on('data', function(chunk) { | ||
| throw new Error('got stderr data: ' + JSON.stringify('' + chunk)) | ||
| }) | ||
| child.on('close', function () { | ||
| t.end() | ||
| }) | ||
| }) | ||
|
|
||
| test('test', function (t) { | ||
|
|
||
| var child = spawn(node, [npm, 'run', 'foo'], { | ||
| cwd: pkg, | ||
| env: process.env | ||
| }) | ||
|
|
||
| child.stdout.setEncoding('utf8') | ||
| child.stderr.on('data', function(chunk) { | ||
| throw new Error('got stderr data: ' + JSON.stringify('' + chunk)) | ||
| }) | ||
| child.stdout.on('data', ondata) | ||
| child.on('close', onend) | ||
| var c = '' | ||
| function ondata (chunk) { | ||
| c += chunk | ||
| } | ||
| function onend () { | ||
| c = c.trim() | ||
|
|
||
| t.ok(/npm-test-fine/.test(c)) | ||
| t.end() | ||
| } | ||
| }) | ||
|
|
||
| test('cleanup', function (t) { | ||
| rimraf.sync(cache) | ||
| rimraf.sync(tmp) | ||
| rimraf.sync(modules) | ||
| t.end() | ||
| }) |
| @@ -0,0 +1 @@ | ||
| # Hi |
| @@ -0,0 +1 @@ | ||
| # Hi! |
| @@ -0,0 +1,4 @@ | ||
| #!/usr/bin/env node | ||
|
|
||
| if (process.argv.length === 8) | ||
| console.log('npm-test-fine') |
| @@ -0,0 +1,6 @@ | ||
| { | ||
| "name": "scripts-whitespace-windows-dep", | ||
| "version": "0.0.1", | ||
| "bin": [ "bin/foo" ], | ||
| "repository": "git://github.com/robertkowalski/bogusfixture" | ||
| } |
| @@ -0,0 +1,11 @@ | ||
| { | ||
| "name": "scripts-whitespace-windows", | ||
| "scripts": { | ||
| "foo": "foo --title \"Analysis of\" --recurse -d report src" | ||
| }, | ||
| "description": "a test", | ||
| "repository": "git://github.com/robertkowalski/bogus", | ||
| "dependencies": { | ||
| "scripts-whitespace-windows-dep": "0.0.1" | ||
| } | ||
| } |
| @@ -0,0 +1,52 @@ | ||
| title: Node.js and the Road Ahead | ||
| date: Thu Jan 16 15:00:00 PST 2014 | ||
| author: Timothy J Fontaine | ||
| slug: nodejs-road-ahead | ||
|
|
||
| As the new project lead for Node.js I am excited for our future, and want to | ||
| give you an update on where we are. | ||
|
|
||
| One of Node's major goals is to provide a small core, one that provides the | ||
| right amount of surface area for consumers to achieve and innovate, without | ||
| Node itself getting in the way. That ethos is alive and well, we're going to | ||
| continue to provide a small, simple, and stable set of APIs that facilitate the | ||
| amazing uses the community finds for Node. We're going to keep providing | ||
| backward compatible APIs, so code you write today will continue to work on | ||
| future versions of Node. And of course, performance tuning and bug fixing will | ||
| always be an important part of every release cycle. | ||
|
|
||
| The release of Node v0.12 is imminent, and a lot of significant work has gone | ||
| into this release. There's streams3, a better keep alive agent for http, the vm | ||
| module is now based on contextify, and significant performance work done in | ||
| core features (Buffers, TLS, streams). We have a few APIs that are still being | ||
| ironed out before we can feature freeze and branch (execSync, AsyncListeners, | ||
| user definable instrumentation). We are definitely in the home stretch. | ||
|
|
||
| But Node is far from done. In the short term there will be new releases of v8 | ||
| that we'll need to track, as well as integrating the new ABI stable C module | ||
| interface. There are interesting language features that we can use to extend | ||
| Node APIs (extend not replace). We need to write more tooling, we need to | ||
| expose more interfaces to further enable innovation. We can explore | ||
| functionality to embed Node in your existing project. | ||
|
|
||
| The list can go on and on. Yet, Node is larger than the software itself. Node | ||
| is also the community, the businesses, the ecosystems, and their related | ||
| events. With that in mind there are things we can work to improve. | ||
|
|
||
| The core team will be improving its procedures such that we can quickly and | ||
| efficiently communicate with you. We want to provide high quality and timely | ||
| responses to issues, describe our development roadmap, as well as provide our | ||
| progress during each release cycle. We know you're interested in our plans for | ||
| Node, and it's important we're able to provide that information. Communication | ||
| should be bidirectional: we want to continue to receive feedback about how | ||
| you're using Node, and what your pain points are. | ||
|
|
||
| After the release of v0.12 we will facilitate the community to contribute and | ||
| curate content for nodejs.org. Allowing the community to continue to invest in | ||
| Node will ensure nodejs.org is an excellent starting point and the primary | ||
| resource for tutorials, documentation, and materials regarding Node. We have an | ||
| awesome and engaged community, and they're paramount to our success. | ||
|
|
||
| I'm excited for Node's future, to see new and interesting use cases, and to | ||
| continue to help businesses scale and innovate with Node. We have a lot we can | ||
| accomplish together, and I look forward to seeing those results. |
| @@ -0,0 +1,72 @@ | ||
| date: Thu Jan 23 11:43:30 PST 2014 | ||
| version: 0.10.25 | ||
| category: release | ||
| title: Node v0.10.25 (Stable) | ||
| slug: node-v0-10-25-stable | ||
|
|
||
| 2014.01.23, Version 0.10.25 (Stable) | ||
|
|
||
| * uv: Upgrade to v0.10.23 | ||
|
|
||
| * npm: Upgrade to v1.3.24 | ||
|
|
||
| * v8: Fix enumeration for objects with lots of properties | ||
|
|
||
| * child_process: fix spawn() optional arguments (Sam Roberts) | ||
|
|
||
| * cluster: report more errors to workers (Fedor Indutny) | ||
|
|
||
| * domains: exit() only affects active domains (Ryan Graham) | ||
|
|
||
| * src: OnFatalError handler must abort() (Timothy J Fontaine) | ||
|
|
||
| * stream: writes may return false but forget to emit drain (Yang Tianyang) | ||
|
|
||
|
|
||
| Source Code: http://nodejs.org/dist/v0.10.25/node-v0.10.25.tar.gz | ||
|
|
||
| Macintosh Installer (Universal): http://nodejs.org/dist/v0.10.25/node-v0.10.25.pkg | ||
|
|
||
| Windows Installer: http://nodejs.org/dist/v0.10.25/node-v0.10.25-x86.msi | ||
|
|
||
| Windows x64 Installer: http://nodejs.org/dist/v0.10.25/x64/node-v0.10.25-x64.msi | ||
|
|
||
| Windows x64 Files: http://nodejs.org/dist/v0.10.25/x64/ | ||
|
|
||
| Linux 32-bit Binary: http://nodejs.org/dist/v0.10.25/node-v0.10.25-linux-x86.tar.gz | ||
|
|
||
| Linux 64-bit Binary: http://nodejs.org/dist/v0.10.25/node-v0.10.25-linux-x64.tar.gz | ||
|
|
||
| Solaris 32-bit Binary: http://nodejs.org/dist/v0.10.25/node-v0.10.25-sunos-x86.tar.gz | ||
|
|
||
| Solaris 64-bit Binary: http://nodejs.org/dist/v0.10.25/node-v0.10.25-sunos-x64.tar.gz | ||
|
|
||
| Other release files: http://nodejs.org/dist/v0.10.25/ | ||
|
|
||
| Website: http://nodejs.org/docs/v0.10.25/ | ||
|
|
||
| Documentation: http://nodejs.org/docs/v0.10.25/api/ | ||
|
|
||
| Shasums: | ||
| ``` | ||
| b347508376ceef724b464e6009ec2daead7ea572 node-v0.10.25-darwin-x64.tar.gz | ||
| f7b3c7a36b45a83360bcd9e541e64bf18ef29272 node-v0.10.25-darwin-x86.tar.gz | ||
| 7c75e7e13561be1222bddd438a84a8f228fe1bc3 node-v0.10.25-linux-x64.tar.gz | ||
| 16a2c861de5b27ef907dc18253fcd4f33d506662 node-v0.10.25-linux-x86.tar.gz | ||
| 05bdc1cd7933ccfa95c2f1f058ff0125eacbdc2d node-v0.10.25-sunos-x64.tar.gz | ||
| 250a48c9a2b6c6a8a6feebb0d7d33f96bf8d82f4 node-v0.10.25-sunos-x86.tar.gz | ||
| ce78cc8b49e339f71888f627c4e985dda0a83e27 node-v0.10.25-x86.msi | ||
| abab975e86250b51a7434d229d13b30acdf4e82e node-v0.10.25.pkg | ||
| 1e330b4fbb6f7bb858a0b37d8573dd4956f40885 node-v0.10.25.tar.gz | ||
| e3779ed14a68dc6f711ead628fe11a127d09547c node.exe | ||
| 35521b6142d39fa371aba7d1fda87a1836db78e4 node.exp | ||
| 35eb46e5d04fdb1c1417876d1712b85eea6be03c node.lib | ||
| cc749498572b4cf4b277225404beefdd75a4e903 node.pdb | ||
| 9bf1bf3a59a3f0dc0fd32f9504e8011e5b4ebc42 pkgsrc/nodejs-ia32-0.10.25.tgz | ||
| f4a6e7d561c321b917c1b6a021fe38cd330a374e pkgsrc/nodejs-x64-0.10.25.tgz | ||
| aab984860cc02e1d27a0932c4c8d34e5e3551ebf x64/node-v0.10.25-x64.msi | ||
| d2f884d75d5f30693f62625787f27fb2a8824178 x64/node.exe | ||
| 75cdbe43984c9a9f6c5f1e5875fa7422c97b2d62 x64/node.exp | ||
| 108c2d9dd6ecf7cad83c4cb5cd62303f51c5570a x64/node.lib | ||
| a7c37dadc994c281d08f6a55bfbd01ecf738fe66 x64/node.pdb | ||
| ``` |