Commit f7bf3391 authored by Jérémy Lal's avatar Jérémy Lal

Imported Upstream version 0.6.7

parent 15b8e7e0
core
vgcore.*
.waf*
tags
.lock-wscript
......
language: node_js
before_script:
- "./configure"
- "make"
script:
- "make test"
notifications:
email: false
irc:
- "irc.freenode.net#libuv"
......@@ -235,3 +235,21 @@ Jacob H.C. Kragh <jhckragh@gmail.com>
Benjamin Pasero <benjamin.pasero@gmail.com>
Scott Anderson <sanderson7@gmail.com>
Yoji SHIDARA <dara@shidara.net>
Mathias Bynens <mathias@qiwi.be>
Łukasz Walukiewicz <lukasz@walukiewicz.eu>
Artur Adib <arturadib@gmail.com>
E. Azer Koçulu <azer@kodfabrik.com>
Roman Shtylman <shtylman@gmail.com>
Kyle Robinson Young <kyle@dontkry.com>
Tim Oxley <secoif@gmail.com>
Ingmar Runge <ingmar@irsoft.de>
Russ Bradberry <rbradberry@gmail.com>
Andreas Madsen <amwebdk@gmail.com>
Adam Malcontenti-Wilson <adman.com@gmail.com>
James Hartig <james.hartig@grooveshark.com>
Shannen Saez <shannenlaptop@gmail.com>
Seong-Rak Choi <ragiragi@hanmail.net>
Dave Irvine <davman99@gmail.com>
Ju-yeong Park <interruptz@gmail.com>
Phil Sung <psung@dnanexus.com>
Damon Oehlman <damon.oehlman@sidelab.com>
2011.12.04, Version 0.6.5 (stable)
2012.01.06, Version 0.6.7 (stable)
* V8 hash collision fix (Breaks MIPS) (Bert Belder, Erik Corry)
* Upgrade V8 to 3.6.6.15
* Upgrade npm to 1.1.0-beta-10 (isaacs)
* many doc updates (Ben Noordhuis, Jeremy Martin, koichik, Dave Irvine,
Seong-Rak Choi, Shannen, Adam Malcontenti-Wilson, koichik)
* Fix segfault in node_http_parser.cc
* dgram, timers: fix memory leaks (Ben Noordhuis, Yoshihiro Kukuchi)
* repl: fix repl.start not passing the `ignoreUndefined` arg (Damon Oehlman)
* #1980: Socket.pause null reference when called on a closed Stream (koichik)
* #2263: XMLHttpRequest piped in a writable file stream hang (koichik)
* #2069: http resource leak (koichik)
* buffer.readInt global pollution fix (Phil Sung)
* timers: fix performance regression (Ben Noordhuis)
* #2308, #2246: node swallows openssl error on request (koichik)
* #2114: timers: remove _idleTimeout from item in .unenroll() (James Hartig)
* #2379: debugger: Request backtrace w/o refs (Fedor Indutny)
* simple DTrace ustack helper (Dave Pacheco)
* crypto: rewrite HexDecode without snprintf (Roman Shtylman)
* crypto: don't ignore DH init errors (Ben Noordhuis)
2011.12.14, Version 0.6.6
* npm update to 1.1.0-beta-4 (Isaac Z. Schlueter)
* cli: fix output of --help (Ben Noordhuis)
* new website
* pause/resume semantics for stdin (Isaac Z. Schlueter)
* Travis CI integration (Maciej Małecki)
* child_process: Fix bug regarding closed stdin (Ben Noordhuis)
* Enable upgrades in MSI. (Igor Zinkovsky)
* net: Fixes memory leak (Ben Noordhuis)
* fs: handle fractional or NaN ReadStream buffer size (Ben Noordhuis)
* crypto: fix memory leaks in PBKDF2 error path (Ben Noordhuis)
2011.12.04, Version 0.6.5 (stable), 6cc94db653a2739ab28e33b2d6a63c51bd986a9f
* npm workaround Windows antivirus software (isaacs)
......
......@@ -79,8 +79,8 @@ The externally maintained libraries used by Node are:
licensed under a permissive free software license. See
deps/zlib/LICENSE.
- deps/npm NPM is a package manager program copyright 2009, 2010, 2011
Isaac Z. Schlueter and licensed under MIT. NPM includes several
- deps/npm npm is a package manager program copyright 2009, 2010, 2011
Isaac Z. Schlueter and licensed under MIT. npm includes several
subpackages MIT or Apache licenses, see deps/npm/LICENSE for more
information. NPM is included in the Node .msi and .pkg distributions
information. npm is included in the Node .msi and .pkg distributions
but not in the Node binary itself.
......@@ -42,6 +42,7 @@ test-valgrind: all
test-all: all
python tools/test.py --mode=debug,release
make test-npm
test-all-http1: all
python tools/test.py --mode=debug,release --use-http1
......@@ -67,13 +68,18 @@ test-pummel: all
test-internet: all
python tools/test.py internet
test-npm: all
./node deps/npm/test/run.js
test-npm-publish: all
npm_package_config_publishtest=true ./node deps/npm/test/run.js
out/Release/node: all
apidoc_sources = $(wildcard doc/api/*.markdown)
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html))
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets out/doc/about out/doc/community out/doc/logos
apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*)))
......@@ -86,8 +92,22 @@ website_files = \
out/doc/sh_vim-dark.css \
out/doc/logo.png \
out/doc/sponsored.png \
out/doc/favicon.ico \
out/doc/pipe.css
out/doc/favicon.ico \
out/doc/pipe.css \
out/doc/about/index.html \
out/doc/close-downloads.png \
out/doc/community/index.html \
out/doc/community/not-invented-here.png \
out/doc/download-logo.png \
out/doc/ebay-logo.png \
out/doc/footer-logo.png \
out/doc/icons.png \
out/doc/linkedin-logo.png \
out/doc/logos/index.html \
out/doc/microsoft-logo.png \
out/doc/platform-icons.png \
out/doc/ryan-speaker.jpg \
out/doc/yahoo-logo.png
doc docs: out/Release/node $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs)
......@@ -106,7 +126,7 @@ out/doc/api/%.html: doc/api/%.markdown out/Release/node $(apidoc_dirs) $(apiasse
out/doc/%:
website-upload: doc
scp -r out/doc/* $(web_root)
rsync -r out/doc/ node@nodejs.org:~/web/nodejs.org/
docopen: out/doc/api/all.html
-google-chrome out/doc/api/all.html
......@@ -142,8 +162,8 @@ pkg: $(PKG)
$(PKG):
-rm -rf $(PKGDIR)
$(WAF) configure --prefix=/usr/local
DESTDIR=$(PKGDIR) $(WAF) install
$(WAF) configure --prefix=/usr/local --without-snapshot
DESTDIR=$(PKGDIR) $(WAF) install
$(packagemaker) \
--id "org.nodejs.NodeJS-$(VERSION)" \
--doc tools/osx-pkg.pmdoc \
......
Evented I/O for V8 javascript.
Evented I/O for V8 javascript. [![Build Status](https://secure.travis-ci.org/joyent/node.png)](http://travis-ci.org/joyent/node)
===
### To build:
Unix/Macintosh (requires python >= 2.5.2):
Unix/Macintosh (requires python 2.6 or 2.7):
./configure
make
......
......@@ -54,6 +54,12 @@ var server = http.createServer(function (req, res) {
} else if (command == "fixed") {
body = fixed;
} else if (command == "echo") {
res.writeHead(200, { "Content-Type": "text/plain",
"Transfer-Encoding": "chunked" });
req.pipe(res);
return;
} else {
status = 404;
body = "not found\n";
......
......@@ -51,7 +51,6 @@ static void writetest(int size, size_t bsize)
exit(254);
}
}
close(fd);
#ifndef NSYNC
# ifdef __linux__
......@@ -61,6 +60,8 @@ static void writetest(int size, size_t bsize)
# endif
#endif /* SYNC */
close(fd);
end = now();
elapsed = (end - start) / 1e6;
mbps = ((tsize/elapsed)) / 1048576;
......
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var count = 2e6,
left = count,
start;
function onNextTick() {
if (--left) {
process.nextTick(onNextTick);
} else {
finalize();
}
}
function finalize() {
var duration = (new Date()).getTime() - start,
ticksPerSec = count / duration * 1000;
console.log("nextTick callbacks per second: " + Math.round(ticksPerSec));
}
start = (new Date()).getTime();
process.nextTick(onNextTick);
......@@ -36,19 +36,25 @@
url = https://github.com/mikeal/request.git
[submodule "node_modules/tar"]
path = node_modules/tar
url = git://github.com/isaacs/node-tar.git
url = https://github.com/isaacs/node-tar.git
[submodule "node_modules/fstream"]
path = node_modules/fstream
url = git://github.com/isaacs/fstream.git
url = https://github.com/isaacs/fstream.git
[submodule "node_modules/inherits"]
path = node_modules/inherits
url = git://github.com/isaacs/inherits.git
url = https://github.com/isaacs/inherits.git
[submodule "node_modules/block-stream"]
path = node_modules/block-stream
url = git://github.com/isaacs/block-stream.git
url = https://github.com/isaacs/block-stream.git
[submodule "node_modules/mkdirp"]
path = node_modules/mkdirp
url = git://github.com/isaacs/node-mkdirp.git
url = https://github.com/isaacs/node-mkdirp.git
[submodule "node_modules/fast-list"]
path = node_modules/fast-list
url = git://github.com/isaacs/fast-list.git
url = https://github.com/isaacs/fast-list.git
[submodule "node_modules/read"]
path = node_modules/read
url = https://github.com/isaacs/read.git
[submodule "node_modules/lru-cache"]
path = node_modules/lru-cache
url = https://github.com/isaacs/node-lru-cache.git
language: node_js
before_install: "make &>out || cat out; rm out"
node_js:
- 0.6
......@@ -108,18 +108,29 @@ version: link
git add package.json &&\
git ci -m v$(shell npm -v)
publish: link
publish: link doc
git tag -d v$(shell npm -v) || true
git push origin :v$(shell npm -v) || true
npm unpublish npm@$(shell npm -v) || true
git tag -s -m v$(shell npm -v) v$(shell npm -v) &&\
git push origin master --tags &&\
git push origin --tags &&\
npm publish &&\
make doc-publish
npm tag npm@$(shell npm -v) $(shell npm -v | awk -F. '{print $$1 "." $$2}') &&\
make doc-publish &&\
make zip-publish
docpublish: doc-publish
doc-publish: doc
rsync -vazu --stats --no-implied-dirs --delete html/doc/ npmjs.org:/var/www/npmjs.org/public/doc
rsync -vazu --stats --no-implied-dirs --delete html/api/ npmjs.org:/var/www/npmjs.org/public/api
zip-publish: release
scp release/*.zip npmjs.org:/var/www/npmjs.org/public/dist/
release:
@bash scripts/release.sh
sandwich:
@[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself"
.PHONY: all latest install dev link doc clean uninstall test man doc-publish doc-clean docclean docpublish
.PHONY: all latest install dev link doc clean uninstall test man doc-publish doc-clean docclean docpublish release zip-publish
......@@ -12,6 +12,9 @@ if (typeof WScript !== "undefined") {
return
}
process.title = "npm"
var log = require("../lib/utils/log.js")
log.waitForConfig()
log.info("ok", "it worked if it ends with")
......
......@@ -225,6 +225,14 @@ The location of npm's cache directory. See `npm-cache(1)`
If false, never shows colors. If `"always"` then always shows colors.
If true, then only prints color codes for tty file descriptors.
### coverage
* Default: false
* Type: Boolean
A flag to tell test-harness to run with their coverage options enabled,
if they respond to the `npm_config_coverage` environment variable.
### depth
* Default: Infinity
......@@ -379,13 +387,16 @@ The location to write log output.
### loglevel
* Default: "warn"
* Default: "http"
* Type: String
* Values: "silent", "win", "error", "warn", "info", "verbose", "silly"
* Values: "silent", "win", "error", "warn", "http", "info", "verbose", "silly"
What level of logs to report. On failure, *all* logs are written to
`npm-debug.log` in the current working directory.
Any logs of a higher level than the setting are shown.
The default is "http", which shows http, warn, and error output.
### logprefix
* Default: true on Posix, false on Windows
......@@ -537,6 +548,16 @@ Space-separated options that are always passed to search.
Space-separated options that limit the results from search.
### searchsort
* Default: "name"
* Type: String
* Values: "name", "-name", "date", "-date", "description",
"-description", "keywords", "-keywords"
Indication of which field to sort search results by. Prefix with a `-`
character to indicate reverse sort.
### shell
* Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
......
......@@ -150,8 +150,8 @@ You can give publish a url to a tarball, or a filename of a tarball,
or a path to a folder.
Note that pretty much **everything in that folder will be exposed**
by default. So, if you have secret stuff in there, use a `.npminclude`
or `.npmignore` file to list out the globs to include/ignore, or publish
by default. So, if you have secret stuff in there, use a
`.npmignore` file to list out the globs to ignore, or publish
from a fresh checkout.
## Brag about it
......
npm-disputes(1) -- Handling Module Name Disputes
================================================
## SYNOPSIS
1. Get the author email with `npm owner ls <pkgname>`
1. Email the author, CC <i@izs.me>.
2. After a few weeks, if there's no resolution, we'll sort it out.
## DESCRIPTION
There sometimes arise cases where a user publishes a module, and then
later, some other user wants to use that name. Here are some common
ways that happens (each of these is based on actual events.)
1. Bob writes a JavaScript module `foo`, which is not node-specific.
Bob doesn't use node at all. Joe wants to use `foo` in node, so he
wraps it in an npm module. Some time later, Bob starts using node,
and wants to take over management of his program.
2. Bob writes an npm module `foo`, and publishes it. Perhaps much
later, Joe finds a bug in `foo`, and fixes it. He sends a pull
request to Bob, but Bob doesn't have the time to deal with it,
because he has a new job and a new baby and is focused on his new
erlang project, and kind of not involved with node any more. Joe
would like to publish a new `foo`, but can't, because the name is
taken.
3. Bob writes a 10-line flow-control library, and calls it `foo`, and
publishes it to the npm registry. Being a simple little thing, it
never really has to be updated. Joe works for Foo Inc, the makers
of the critically acclaimed and widely-marketed `foo` JavaScript
toolkit framework. They publish it to npm as `foojs`, but people are
routinely confused when `npm install foo` is some different thing.
4. Bob writes a parser for the widely-known `foo` file format, because
he needs it for work. Then, he gets a new job, and never updates the
prototype. Later on, Joe writes a much more complete `foo` parser,
but can't publish, because Bob's `foo` is in the way.
The validity of Joe's claim in each situation can be debated. However,
Joe's appropriate course of action in each case is the same.
1. `npm owner ls foo`. This will tell Joe the email address of the
owner (Bob).
2. Joe emails Bob, explaining the situation **as respecfully as possible**,
and what he would like to do with the module name. He adds
isaacs <i@izs.me> to the CC list of the email. Mention in the email
that Bob can run `npm owner add joe foo` to add Joe as an owner of
the `foo` package.
3. After a reasonable amount of time, if Bob has not responded, or if
Bob and Joe can't come to any sort of resolution, email isaacs
<i@izs.me> and we'll sort it out.
## REASONING
In almost every case so far, the parties involved have been able to reach
an amicable resolution without any major intervention. Most people
really do want to be reasonable, and are probably not even aware that
they're in your way.
Module ecosystems are most vibrant and powerful when they are as
self-directed as possible. If an admin one day deletes something you
had worked on, then that is going to make most people quite upset,
regardless of the justification. When humans solve their problems by
talking to other humans with respect, everyone has the chance to end up
feeling good about the interaction.
## EXCEPTIONS
Some things are not allowed, and will be removed without discussion if
they are brought to the attention of the npm registry admins, including
but not limited to:
1. Malware (that is, a module designed to exploit or harm the machine on
which it is installed)
2. Violations of copyright or licenses (for example, cloning an
MIT-licensed program, and then removing or changing the copyright and
license statement)
3. Illegal content.
If you see bad behavior like this, please report it right away.
## SEE ALSO
* npm-registry(1)
* npm-owner(1)
......@@ -32,35 +32,65 @@ tl;dr:
something with the `-g` flag, then its executables go in `npm bin -g`
and its modules go in `npm root -g`.
## How do I install something everywhere?
## How do I install something on my computer in a central location?
Install it globally by tacking `-g` or `--global` to the command.
Install it globally by tacking `-g` or `--global` to the command. (This
is especially important for command line utilities that need to add