diff --git a/AUTHORS b/AUTHORS index 5ab61aebf209..de39c29bf287 100644 --- a/AUTHORS +++ b/AUTHORS @@ -623,7 +623,7 @@ Steve Sharp Victor Widell Evan Rutledge Borden Johnny Ray -Steve Mao +Steve Mao Stiliyan Lazarov Wang Xinyong Ray Donnelly @@ -782,7 +782,7 @@ Chad Johnston Sam Stites Matthew Lye Matt Loring -P.S.V.R +Minqi Pan Jacob Edelman Mike Atkins hackerjs <4141095@qq.com> @@ -831,7 +831,7 @@ Claudio Rodriguez Ido Ben-Yair Kyle Smith Marti Martz -Stefan Budeanu +Stefan Budeanu Emily Aviva Kapor-Mater Sam P Gallagher-Bishop David Woods @@ -868,5 +868,122 @@ Super Zheng Rafał Pocztarski Michael Ruddy Andy Bettisworth +Jörg Krause +Alexander Martin +Prince J Wesley +janriemer +Arthur Gautier +Martin von Gagern +Hideki Yamamura +Lenny Markus +Nelson Pecora +Graham Fairweather +Nicholas Young +chrisjohn404 +Bo Borgerson +Mudit Ameta +Adri Van Houdt +Max Barinov +Damian Schenkelman +iamchenxin +Nik Nyby +Ben Ripkens +Ryan Sobol +jona +Martin Bark +José F. Romaniello +Richard Sun +Sequoia McDowell +zoubin +Robert Jefe Lindstaedt +Saquib +Daniel Sellers +Julien Waechter +Vitor Cortez +Michael Theriot +Peter Geiss +Richard Lau +José Moreira +Tom Atkinson +Glen Arrowsmith +Jeff Harris +Alexander Makarenko +Drew Folta +Myles Borins +Dmitriy Lazarev +Adam Langley +Kári Tristan Helgason +Manuel Valls +Prayag Verma +Gibson Fahnestock +Alan Cohen +Christophe Naud-Dulude +Matthias Bastian +Phillip Kovalev +Rainer Oviir +HUANG Wei +DC +Daniel Turing +Julie Pagano +Ruben Bridgewater +Felix Becker +Igor Klopov +Tsarevich Dmitry +Ojas Shirekar +Noah Rose +Rafael Cepeda +Chinedu Francis Nwafili +Braydon Fuller +Jiho Choi +Dirceu Pereira Tiegs +Marc Cuva +Chris Dew +Tristan Slominski +Hugo Wood +Owen Smith +Anton Andesen +Aayush Naik +Netto Farah +Craig Akimoto +Michael Barrett +Alexander Marchenko +Robert C Jensen +Vaibhav +Stefano Vozza +Daijiro Wachi +Kirill Fomichev +Mithun Patel +Alexander Penev +Andrea Giammarchi +Lance Ball +Jarrett Widman +Florian Margaine +Wolfgang Steiner +Bill Automata +Robert Chiras +Corey Kosak +John Eversole +Gareth Ellis +Eugene Obrezkov +Kyle Simpson +Bogdan Lobor +Daniel Wang +Mihai Potra +Brendon Pierson +Brad Hill +Mike Kaufman +Igor Kalashnikov +Anna Henningsen +Amery +James Reggio +Joran Dirk Greef +Matthew Douglass +William Kapke +Yuta Hiroto +Ilya Shaisultanov +James Lal +Josh Leder +surya panikkal +vsemozhetbyt # Generated by tools/update-authors.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e4b4a1896b4..cd8c0ff965c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,43 +4,61 @@ ### Notable changes -The following significant (semver-major) changes have been made since the -previous Node v5.0.0 release. +The following significant changes have been made since the previous Node.js +v5.0.0 release. * Buffer * New Buffer constructors have been added - [#4682](https://github.com/nodejs/node/pull/4682) + [#4682](https://github.com/nodejs/node/pull/4682) and + [#5833](https://github.com/nodejs/node/pull/5833). + * Existing `Buffer()` and `SlowBuffer()` constructors have been deprecated + in docs [#4682](https://github.com/nodejs/node/pull/4682) and + [#5833](https://github.com/nodejs/node/pull/5833). * Previously deprecated Buffer APIs are removed [#5048](https://github.com/nodejs/node/pull/5048), - [#4594](https://github.com/nodejs/node/pull/4594) - * Improved error handling [#4514](https://github.com/nodejs/node/pull/4514) + [#4594](https://github.com/nodejs/node/pull/4594). + * Improved error handling [#4514](https://github.com/nodejs/node/pull/4514). + * The `Buffer.prototype.lastIndexOf()` method has been added + [#4846](https://github.com/nodejs/node/pull/4846). * Cluster * Worker emitted as first argument in 'message' event [#5361](https://github.com/nodejs/node/pull/5361). + * The `worker.exitedAfterDisconnect` property replaces `worker.suicide` + [#3743](https://github.com/nodejs/node/pull/3743). +* Console + * Calling `console.timeEnd()` with an unknown label now emits a process + warning rather than throwing + [#5901](https://github.com/nodejs/node/pull/5901). * Crypto * Improved error handling [#3100](https://github.com/nodejs/node/pull/3100), - [#5611](https://github.com/nodejs/node/pull/5611) + [#5611](https://github.com/nodejs/node/pull/5611). * Simplified Certificate class bindings - [#5382](https://github.com/nodejs/node/pull/5382) + [#5382](https://github.com/nodejs/node/pull/5382). * Improved control over FIPS mode - [#5181](https://github.com/nodejs/node/pull/5181) + [#5181](https://github.com/nodejs/node/pull/5181). * pbkdf2 digest overloading is deprecated - [#4047](https://github.com/nodejs/node/pull/4047) + [#4047](https://github.com/nodejs/node/pull/4047). * Dependencies * Reintroduce shared c-ares build support [#5775](https://github.com/nodejs/node/pull/5775). - * V8 updated to 5.0.71.31 [#6111](https://github.com/nodejs/node/pull/6111). + * V8 updated to 5.0.71.35 [#6372](https://github.com/nodejs/node/pull/6372). * DNS - * Add resolvePtr API to query plain DNS PTR records + * Add `dns.resolvePtr()` API to query plain DNS PTR records [#4921](https://github.com/nodejs/node/pull/4921). * Domains * Clear stack when no error handler [#4659](https://github.com/nodejs/node/pull/4659). +* Events + * The `EventEmitter.prototype._events` object no longer inherits from + Object.prototype [#6092](https://github.com/nodejs/node/pull/6092). + * The `EventEmitter.prototype.prependListener()` and + `EventEmitter.prototype.prependOnceListener()` methods have been added + [#6032](https://github.com/nodejs/node/pull/6032). * File System * The `fs.realpath()` and `fs.realpathSync()` methods have been updated - to use a more efficient libuv implementation. This change includes the - removal of the `cache` argument and the method can throw new errors - [#3594](https://github.com/nodejs/node/pull/3594) + to use a more efficient libuv-based implementation. This change includes + the removal of the `cache` argument and the method can throw new errors + [#3594](https://github.com/nodejs/node/pull/3594). * FS apis can now accept and return paths as Buffers [#5616](https://github.com/nodejs/node/pull/5616). * Error handling and type checking improvements @@ -49,22 +67,25 @@ previous Node v5.0.0 release. [#4518](https://github.com/nodejs/node/pull/4518), [#3917](https://github.com/nodejs/node/pull/3917). * fs.read's string interface is deprecated - [#4525](https://github.com/nodejs/node/pull/4525) + [#4525](https://github.com/nodejs/node/pull/4525). * HTTP * 'clientError' can now be used to return custom errors from an HTTP server [#4557](https://github.com/nodejs/node/pull/4557). * Modules * Current directory is now prioritized for local lookups - [#5689](https://github.com/nodejs/node/pull/5689) + [#5689](https://github.com/nodejs/node/pull/5689). * Symbolic links are preserved when requiring modules - [#5950](https://github.com/nodejs/node/pull/5950) + [#5950](https://github.com/nodejs/node/pull/5950). * Net * DNS hints no longer implicitly set [#6021](https://github.com/nodejs/node/pull/6021). * Improved error handling and type checking [#5981](https://github.com/nodejs/node/pull/5981), [#5733](https://github.com/nodejs/node/pull/5733), - [#2904](https://github.com/nodejs/node/pull/2904) + [#2904](https://github.com/nodejs/node/pull/2904). +* OS X + * MACOSX_DEPLOYMENT_TARGET has been bumped up to 10.7 + [#6402](https://github.com/nodejs/node/pull/6402). * Path * Improved type checking [#5348](https://github.com/nodejs/node/pull/5348). * Process @@ -72,30 +93,51 @@ previous Node v5.0.0 release. [#4782](https://github.com/nodejs/node/pull/4782). * Throw exception when non-function passed to nextTick [#3860](https://github.com/nodejs/node/pull/3860). +* Querystring + * The object returned by `querystring.parse()` no longer inherits from + Object.prototype [#6055](https://github.com/nodejs/node/pull/6055). * Readline - * Emit key info unconditionally - [#6024](https://github.com/nodejs/node/pull/6024) + * Key info is emitted unconditionally + [#6024](https://github.com/nodejs/node/pull/6024). + * History can now be explicitly disabled + [#6352](https://github.com/nodejs/node/pull/6352). * REPL - * Assignment to `_` will emit a warning. - [#5535](https://github.com/nodejs/node/pull/5535) + * Assignment to `_` will emit a warning + [#5535](https://github.com/nodejs/node/pull/5535). + * Expressions will no longer be completed when eval fails + [#6328](https://github.com/nodejs/node/pull/6328). * Timers * Fail early when callback is not a function - [#4362](https://github.com/nodejs/node/pull/4362) + [#4362](https://github.com/nodejs/node/pull/4362). +* Streams + * `null` is now an invalid chunk to write in object mode + [#6170](https://github.com/nodejs/node/pull/6170). * TLS * Rename 'clientError' to 'tlsClientError' - [#4557](https://github.com/nodejs/node/pull/4557) + [#4557](https://github.com/nodejs/node/pull/4557). * SHA1 used for sessionIdContext - [#3866](https://github.com/nodejs/node/pull/3866) + [#3866](https://github.com/nodejs/node/pull/3866). * TTY * Previously deprecated setRawMode wrapper is removed [#2528](https://github.com/nodejs/node/pull/2528). +* URL + * Username and password will be dropped by `url.resolve()` if the host + changes [#1480](https://github.com/nodejs/node/pull/1480). * Util * Changes to Error object formatting [#4582](https://github.com/nodejs/node/pull/4582). + * The `util._extend()` method has been deprecated + [#4903](https://github.com/nodejs/node/pull/4903) + * The `util.log()` method has been deprecated + [#6161](https://github.com/nodejs/node/pull/6161). * Windows * Windows XP and Vista are no longer supported - [#5167](https://github.com/nodejs/node/pull/5167), [#5167](https://github.com/nodejs/node/pull/5167). +* Zlib + * Multiple improvements have been made to Zlib processing + [#5883](https://github.com/nodejs/node/pull/5883) and + [#5707](https://github.com/nodejs/node/pull/5707). + ### Commits @@ -107,8 +149,10 @@ Semver-major Changes since v5.0.0 * [[`3b27dd5ce1`](https://github.com/nodejs/node/commit/3b27dd5ce1)] - **(SEMVER-MAJOR)** **buffer**: throw if both length and enc are passed (Mathias Buus) [#4514](https://github.com/nodejs/node/pull/4514) * [[`3fe204c700`](https://github.com/nodejs/node/commit/3fe204c700)] - **(SEMVER-MAJOR)** **buffer**: docs-only deprecate SlowBuffer (James M Snell) [#5833](https://github.com/nodejs/node/pull/5833) * [[`627524973a`](https://github.com/nodejs/node/commit/627524973a)] - **(SEMVER-MAJOR)** **buffer**: add Buffer.allocUnsafeSlow(size) (James M Snell) [#5833](https://github.com/nodejs/node/pull/5833) +* [[`204f3a8a0b`](https://github.com/nodejs/node/commit/204f3a8a0b)] - **(SEMVER-MAJOR)** **build**: Bump MACOSX_DEPLOYMENT_TARGET to 10.7 (Сковорода Никита Андреевич) [#6402](https://github.com/nodejs/node/pull/6402) * [[`90a5fc20be`](https://github.com/nodejs/node/commit/90a5fc20be)] - **(SEMVER-MAJOR)** **build**: remove lint/dotfiles from release tarball (Johan Bergström) [#5695](https://github.com/nodejs/node/pull/5695) * [[`66f4586dd0`](https://github.com/nodejs/node/commit/66f4586dd0)] - **(SEMVER-MAJOR)** **cluster**: emit worker as first 'message' event arg (Ben Noordhuis) [#5361](https://github.com/nodejs/node/pull/5361) +* [[`4f619bde4c`](https://github.com/nodejs/node/commit/4f619bde4c)] - **(SEMVER-MAJOR)** **cluster**: migrate from worker.suicide (Evan Lucas) [#3743](https://github.com/nodejs/node/pull/3743) * [[`a5cce79ec3`](https://github.com/nodejs/node/commit/a5cce79ec3)] - **(SEMVER-MAJOR)** **console**: delete timers that have ended (Vladimir Varankin) [#3562](https://github.com/nodejs/node/pull/3562) * [[`1c84579031`](https://github.com/nodejs/node/commit/1c84579031)] - **(SEMVER-MAJOR)** **console**: timeEnd() with no label emits warning (Eugene Obrezkov) [#5901](https://github.com/nodejs/node/pull/5901) * [[`41feaa89e0`](https://github.com/nodejs/node/commit/41feaa89e0)] - **(SEMVER-MAJOR)** **crypto**: improve error messages (Sakthipriyan Vairamani) [#3100](https://github.com/nodejs/node/pull/3100) @@ -160,6 +204,7 @@ Semver-major Changes since v5.0.0 * [[`0a62f929da`](https://github.com/nodejs/node/commit/0a62f929da)] - **(SEMVER-MAJOR)** **readline**: emit key info unconditionally (cjihrig) [#6024](https://github.com/nodejs/node/pull/6024) * [[`3de9bc9429`](https://github.com/nodejs/node/commit/3de9bc9429)] - **(SEMVER-MAJOR)** **readline**: document emitKeypressEvents() (cjihrig) [#6024](https://github.com/nodejs/node/pull/6024) * [[`ca2e8b292f`](https://github.com/nodejs/node/commit/ca2e8b292f)] - **(SEMVER-MAJOR)** **readline**: deprecate undocumented exports (cjihrig) [#3862](https://github.com/nodejs/node/pull/3862) +* [[`0303a2552e`](https://github.com/nodejs/node/commit/0303a2552e)] - **(SEMVER-MAJOR)** **readline**: allow history to be disabled (surya panikkal) [#6352](https://github.com/nodejs/node/pull/6352) * [[`ad8257fa5b`](https://github.com/nodejs/node/commit/ad8257fa5b)] - **(SEMVER-MAJOR)** **repl**: Assignment of _ allowed with warning (Lance Ball) [#5535](https://github.com/nodejs/node/pull/5535) * [[`3ee68f794f`](https://github.com/nodejs/node/commit/3ee68f794f)] - **(SEMVER-MAJOR)** **repl**: don’t complete expressions when eval fails (Anna Henningsen) [#6328](https://github.com/nodejs/node/pull/6328) * [[`757fbac64b`](https://github.com/nodejs/node/commit/757fbac64b)] - **(SEMVER-MAJOR)** **src**: remove deprecated internal functions (Ben Noordhuis) [#6053](https://github.com/nodejs/node/pull/6053) @@ -184,6 +229,7 @@ Semver-major Changes since v5.0.0 * [[`34a35919e1`](https://github.com/nodejs/node/commit/34a35919e1)] - **(SEMVER-MAJOR)** **util**: improve typed array formatting (Ben Noordhuis) [#3793](https://github.com/nodejs/node/pull/3793) * [[`1cf26c036d`](https://github.com/nodejs/node/commit/1cf26c036d)] - **(SEMVER-MAJOR)** **win**: prevent node from running on Windows Vista or earlier (Alexis Campailla) [#5167](https://github.com/nodejs/node/pull/5167) * [[`55db19074d`](https://github.com/nodejs/node/commit/55db19074d)] - **(SEMVER-MAJOR)** **win,msi**: prevent from installing on Windows Vista or earlier (Alexis Campailla) [#5167](https://github.com/nodejs/node/pull/5167) +* [['54a5287e3e']](https://github.com/nodejs/node/commit/54a5287e3e) - **(SEMVER-MAJOR)** **zlib**: fix gzip member head/buffer boundary issue (Anna Henningsen) [#5883](https://github.com/nodejs/node/pull/5883) * [[`8b43d3f52d`](https://github.com/nodejs/node/commit/8b43d3f52d)] - **(SEMVER-MAJOR)** **zlib**: do not emit event on *Sync() methods (Rich Trott) [#5707](https://github.com/nodejs/node/pull/5707) @@ -191,10 +237,19 @@ Semver-major Changes since v5.0.0 Semver-minor and patch commits since v5.11.0 * [[`6c1e5ad3ab`](https://github.com/nodejs/node/commit/6c1e5ad3ab)] - **(SEMVER-MINOR)** **buffer**: add Buffer.prototype.lastIndexOf() (dcposch@dcpos.ch) [#4846](https://github.com/nodejs/node/pull/4846) +* [[`dd67608bfd`](https://github.com/nodejs/node/commit/dd67608bfd)] - **buffer**: safeguard against accidental kNoZeroFill (Сковорода Никита Андреевич) [nodejs/node-private#30](https://github.com/nodejs/node-private/pull/30) * [[`a4b8000029`](https://github.com/nodejs/node/commit/a4b8000029)] - **build**: update android-configure script for npm (Robert Chiras) [#6349](https://github.com/nodejs/node/pull/6349) * [[`40ede46690`](https://github.com/nodejs/node/commit/40ede46690)] - **cares**: Support malloc(0) scenarios for AIX (Gireesh Punathil) [#6305](https://github.com/nodejs/node/pull/6305) * [[`e5f1e2c1df`](https://github.com/nodejs/node/commit/e5f1e2c1df)] - **deps**: upgrade to V8 5.0.71.35 (Ali Ijaz Sheikh) [#6372](https://github.com/nodejs/node/pull/6372) * [[`49e42c530b`](https://github.com/nodejs/node/commit/49e42c530b)] - **deps**: upgrade to V8 5.0.71.34 (Ali Ijaz Sheikh) [#6320](https://github.com/nodejs/node/pull/6320) +* [[`2011f2c6dc`](https://github.com/nodejs/node/commit/2011f2c6dc)] - **doc**: fix position of `fs.readSync()` (Jeremiah Senkpiel) [#6399](https://github.com/nodejs/node/pull/6399) +* [[`29a6c7c1f0`](https://github.com/nodejs/node/commit/29a6c7c1f0)] - **doc**: change references to Stable to Current (Myles Borins) [#6318](https://github.com/nodejs/node/pull/6318) +* [[`a026cd0fa5`](https://github.com/nodejs/node/commit/a026cd0fa5)] - **doc**: update authors (James M Snell) [#6373](https://github.com/nodejs/node/pull/6373) +* [[`92a02d51dc`](https://github.com/nodejs/node/commit/92a02d51dc)] - **doc**: add JacksonTian to collaborators (Jackson Tian) [#6388](https://github.com/nodejs/node/pull/6388) +* [[`879aeb5e49`](https://github.com/nodejs/node/commit/879aeb5e49)] - **doc**: add Minqi Pan to collaborators (Minqi Pan) [#6387](https://github.com/nodejs/node/pull/6387) +* [[`be5d699055`](https://github.com/nodejs/node/commit/be5d699055)] - **doc**: add eljefedelrodeodeljefe to collaborators (Robert Jefe Lindstaedt) [#6389](https://github.com/nodejs/node/pull/6389) +* [[`916b1a1d44`](https://github.com/nodejs/node/commit/916b1a1d44)] - **doc**: add ronkorving to collaborators (ronkorving) [#6385](https://github.com/nodejs/node/pull/6385) +* [[`c7066fb853`](https://github.com/nodejs/node/commit/c7066fb853)] - **doc**: add estliberitas to collaborators (Alexander Makarenko) [#6386](https://github.com/nodejs/node/pull/6386) * [[`983a809456`](https://github.com/nodejs/node/commit/983a809456)] - **doc**: fix broken references (Alexander Gromnitsky) [#6350](https://github.com/nodejs/node/pull/6350) * [[`ae991e7577`](https://github.com/nodejs/node/commit/ae991e7577)] - **doc**: add note for platform specific flags `fs.open()` (Robert Jefe Lindstaedt) [#6136](https://github.com/nodejs/node/pull/6136) * [[`f85412d49b`](https://github.com/nodejs/node/commit/f85412d49b)] - **doc**: improvements to child_process, process docs (Alexander Makarenko) @@ -204,7 +259,6 @@ Semver-minor and patch commits since v5.11.0 * [[`0e7d57af35`](https://github.com/nodejs/node/commit/0e7d57af35)] - **(SEMVER-MINOR)** **events**: add prependListener() and prependOnceListener() (James M Snell) [#6032](https://github.com/nodejs/node/pull/6032) * [[`c1cd64481f`](https://github.com/nodejs/node/commit/c1cd64481f)] - **events**: make eventNames() use Reflect.ownKeys() (Luigi Pinca) [#5822](https://github.com/nodejs/node/pull/5822) * [[`f1294f5bfd`](https://github.com/nodejs/node/commit/f1294f5bfd)] - **gyp**: inherit parent for `*.host` (Johan Bergström) [#6173](https://github.com/nodejs/node/pull/6173) -* [[`9bb5a5e2a1`](https://github.com/nodejs/node/commit/9bb5a5e2a1)] - **handle_wrap**: IsRefed -> Unrefed, no isAlive check (Jeremiah Senkpiel) [#6204](https://github.com/nodejs/node/pull/6204) * [[`d5922bd7a9`](https://github.com/nodejs/node/commit/d5922bd7a9)] - **querystring**: fix comments (Brian White) [#6365](https://github.com/nodejs/node/pull/6365) * [[`2c480bdae6`](https://github.com/nodejs/node/commit/2c480bdae6)] - **src**: fix check-imports.py linter errors (Sakthipriyan Vairamani) [#6105](https://github.com/nodejs/node/pull/6105) * [[`5eb4ec090d`](https://github.com/nodejs/node/commit/5eb4ec090d)] - **src**: squelch -Wunused-variable in non-icu builds (Ben Noordhuis) [#6351](https://github.com/nodejs/node/pull/6351) @@ -413,10 +467,10 @@ Semver-minor and patch commits since v5.11.0 * **fs**: add the fs.mkdtemp() function. (Florian MARGAINE) [#5333](https://github.com/nodejs/node/pull/5333) * **net**: emit host in lookup event (HUANG Wei) [#5598](https://github.com/nodejs/node/pull/5598) * **node**: --no-browser-globals configure flag (Fedor Indutny) [#5853](https://github.com/nodejs/node/pull/5853) -* **npm**: Upgrade to v3.8.3. Fixes a security flaw in the use of authentication tokens in HTTP requests that - would allow an attacker to set up a server that could collect tokens from users of the command-line interface. - Authentication tokens have previously been sent with every request made by the CLI for logged-in users, - regardless of the destination of the request. This update fixes this by only including those tokens for requests +* **npm**: Upgrade to v3.8.3. Fixes a security flaw in the use of authentication tokens in HTTP requests that + would allow an attacker to set up a server that could collect tokens from users of the command-line interface. + Authentication tokens have previously been sent with every request made by the CLI for logged-in users, + regardless of the destination of the request. This update fixes this by only including those tokens for requests made against the registry or registries used for the current install. (Forrest L Norvell) [npm/node#6](https://github.com/npm/node/pull/6) * **repl**: support standalone blocks (Prince J Wesley) [#5581](https://github.com/nodejs/node/pull/5581) * **src**: override v8 thread defaults using cli options (Tom Gallacher) [#4344](https://github.com/nodejs/node/pull/4344) @@ -436,7 +490,7 @@ Semver-minor and patch commits since v5.11.0 * [[`5ee5fa292f`](https://github.com/nodejs/node/commit/5ee5fa292f)] - **build**: add missing `openssl_fips%` to common.gypi (Fedor Indutny) [#5919](https://github.com/nodejs/node/pull/5919) * [[`5681ffecf7`](https://github.com/nodejs/node/commit/5681ffecf7)] - **build**: enable compilation for linuxOne (Michael Dawson) [#5941](https://github.com/nodejs/node/pull/5941) * [[`660ec9f889`](https://github.com/nodejs/node/commit/660ec9f889)] - **child_process**: refactor self=this in socket_list (Benjamin Gruenbaum) [#5860](https://github.com/nodejs/node/pull/5860) -* [[`e1a012f277`](https://github.com/nodejs/node/commit/e1a012f277)] - **deps**: upgrade npm to 3.8.3 (Forrest L Norvell) +* [[`e1a012f277`](https://github.com/nodejs/node/commit/e1a012f277)] - **deps**: upgrade npm to 3.8.3 (Forrest L Norvell) * [[`ec1813199d`](https://github.com/nodejs/node/commit/ec1813199d)] - **deps**: backport 8d00c2c from v8 upstream (Ben Noordhuis) [#5577](https://github.com/nodejs/node/pull/5577) * [[`2a5c6d7006`](https://github.com/nodejs/node/commit/2a5c6d7006)] - **dns**: Refactor forEach to map (Benjamin Gruenbaum) [#5803](https://github.com/nodejs/node/pull/5803) * [[`6a6112a2f3`](https://github.com/nodejs/node/commit/6a6112a2f3)] - **dns**: Use object without protoype for map (Benjamin Gruenbaum) [#5843](https://github.com/nodejs/node/pull/5843) @@ -2281,7 +2335,7 @@ Maintenance update. * [[`907a13a07f`](https://github.com/nodejs/node/commit/907a13a07f)] - Add missing va_end before return (Ömer Fadıl Usta) [#3565](https://github.com/nodejs/node/pull/3565) * [[`7ffc01756f`](https://github.com/nodejs/node/commit/7ffc01756f)] - **buffer**: fix writeInt{B,L}E for some neg values (Peter A. Bigot) [#3994](https://github.com/nodejs/node/pull/3994) -* [[`db0186e435`](https://github.com/nodejs/node/commit/db0186e435)] - **buffer**: let WriteFloatGeneric silently drop values (P.S.V.R) +* [[`db0186e435`](https://github.com/nodejs/node/commit/db0186e435)] - **buffer**: let WriteFloatGeneric silently drop values (Minqi Pan) * [[`5c6740865a`](https://github.com/nodejs/node/commit/5c6740865a)] - **build**: update signtool description, add url (Rod Vagg) [#4011](https://github.com/nodejs/node/pull/4011) * [[`60dda70f89`](https://github.com/nodejs/node/commit/60dda70f89)] - **build**: fix --with-intl=system-icu for x-compile (Steven R. Loomis) [#3808](https://github.com/nodejs/node/pull/3808) * [[`22208b067c`](https://github.com/nodejs/node/commit/22208b067c)] - **build**: fix configuring with prebuilt libraries (Markus Tzoe) [#3135](https://github.com/nodejs/node/pull/3135) @@ -2834,7 +2888,7 @@ Security Update ### Notable changes -* **buffer**: The `noAssert` option for many buffer functions will now silently drop invalid write values rather than crashing (P.S.V.R) [#3767](https://github.com/nodejs/node/pull/3767). +* **buffer**: The `noAssert` option for many buffer functions will now silently drop invalid write values rather than crashing (Minqi Pan) [#3767](https://github.com/nodejs/node/pull/3767). - This makes the behavior match what the docs suggest. * **child_process**: `child.send()` now properly returns a boolean like the docs suggest (Rich Trott) [#3577](https://github.com/nodejs/node/pull/3577). * **doc**: All of the API docs have been re-ordered so as to read in alphabetical order (Tristian Flanagan) [#3662](https://github.com/nodejs/node/pull/3662). @@ -2859,7 +2913,7 @@ Security Update * [[`b663d2bbb5`](https://github.com/nodejs/node/commit/b663d2bbb5)] - **async_wrap**: call callback in destructor (Trevor Norris) [#3461](https://github.com/nodejs/node/pull/3461) * [[`eccbec99ea`](https://github.com/nodejs/node/commit/eccbec99ea)] - **async_wrap**: new instances get uid (Trevor Norris) [#3461](https://github.com/nodejs/node/pull/3461) * [[`5d34c81a5c`](https://github.com/nodejs/node/commit/5d34c81a5c)] - **async_wrap**: allow some hooks to be optional (Trevor Norris) [#3461](https://github.com/nodejs/node/pull/3461) -* [[`7bff0138e2`](https://github.com/nodejs/node/commit/7bff0138e2)] - **buffer**: let WriteFloatGeneric silently drop values (P.S.V.R) [#3767](https://github.com/nodejs/node/pull/3767) +* [[`7bff0138e2`](https://github.com/nodejs/node/commit/7bff0138e2)] - **buffer**: let WriteFloatGeneric silently drop values (Minqi Pan) [#3767](https://github.com/nodejs/node/pull/3767) * [[`56673693cd`](https://github.com/nodejs/node/commit/56673693cd)] - **buffer**: neuter external `nullptr` buffers (Fedor Indutny) [#3624](https://github.com/nodejs/node/pull/3624) * [[`2d0ca0293a`](https://github.com/nodejs/node/commit/2d0ca0293a)] - **build**: fix configuring with prebuilt libraries (Markus Tzoe) [#3135](https://github.com/nodejs/node/pull/3135) * [[`2a69b6820f`](https://github.com/nodejs/node/commit/2a69b6820f)] - **build**: fix --with-intl=system-icu for x-compile (Steven R. Loomis) [#3808](https://github.com/nodejs/node/pull/3808) @@ -3025,7 +3079,7 @@ This is an LTS maintenance release that addresses a number of issues: * [[`1d0f2cbf87`](https://github.com/nodejs/node/commit/1d0f2cbf87)] - **buffer**: fix value check for writeUInt{B,L}E (Trevor Norris) [#3500](https://github.com/nodejs/node/pull/3500) * [[`2a45b72b4a`](https://github.com/nodejs/node/commit/2a45b72b4a)] - **buffer**: don't CHECK on zero-sized realloc (Ben Noordhuis) [#3499](https://github.com/nodejs/node/pull/3499) -* [[`dc655e1dd2`](https://github.com/nodejs/node/commit/dc655e1dd2)] - **build**: rectify --link-module help text (P.S.V.R) [#3379](https://github.com/nodejs/node/pull/3379) +* [[`dc655e1dd2`](https://github.com/nodejs/node/commit/dc655e1dd2)] - **build**: rectify --link-module help text (Minqi Pan) [#3379](https://github.com/nodejs/node/pull/3379) * [[`a6469e901a`](https://github.com/nodejs/node/commit/a6469e901a)] - **deps**: backport 010897c from V8 upstream (Ali Ijaz Sheikh) [#3520](https://github.com/nodejs/node/pull/3520) * [[`cadee67c25`](https://github.com/nodejs/node/commit/cadee67c25)] - **deps**: backport 8d6a228 from the v8's upstream (Fedor Indutny) [#3549](https://github.com/nodejs/node/pull/3549) * [[`1ebd35550b`](https://github.com/nodejs/node/commit/1ebd35550b)] - **doc**: fix typos in changelog (reggi) [#3291](https://github.com/nodejs/node/pull/3291) @@ -3133,7 +3187,7 @@ This is an LTS maintenance release that addresses a number of issues: * [[`1a41feb559`](https://github.com/nodejs/node/commit/1a41feb559)] - **buffer**: don't CHECK on zero-sized realloc (Ben Noordhuis) [#3499](https://github.com/nodejs/node/pull/3499) * [[`5f6579d366`](https://github.com/nodejs/node/commit/5f6579d366)] - **(SEMVER-MAJOR)** **buffer**: remove raw & raws encoding (Sakthipriyan Vairamani) [#2859](https://github.com/nodejs/node/pull/2859) * [[`70fca2a81e`](https://github.com/nodejs/node/commit/70fca2a81e)] - **build**: Updates for AIX npm support - part 1 (Michael Dawson) [#3114](https://github.com/nodejs/node/pull/3114) -* [[`b36b4f385a`](https://github.com/nodejs/node/commit/b36b4f385a)] - **build**: rectify --link-module help text (P.S.V.R) [#3379](https://github.com/nodejs/node/pull/3379) +* [[`b36b4f385a`](https://github.com/nodejs/node/commit/b36b4f385a)] - **build**: rectify --link-module help text (Minqi Pan) [#3379](https://github.com/nodejs/node/pull/3379) * [[`a89eeca590`](https://github.com/nodejs/node/commit/a89eeca590)] - **console**: rename argument of time and timeEnd (Michaël Zasso) [#3166](https://github.com/nodejs/node/pull/3166) * [[`870108aaa8`](https://github.com/nodejs/node/commit/870108aaa8)] - **(SEMVER-MAJOR)** **console**: sub-millisecond accuracy for console.time (Michaël Zasso) [#3166](https://github.com/nodejs/node/pull/3166) * [[`0a43697ce8`](https://github.com/nodejs/node/commit/0a43697ce8)] - **deps**: backport 010897c from V8 upstream (Ali Ijaz Sheikh) [#3520](https://github.com/nodejs/node/pull/3520) @@ -3384,8 +3438,8 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current * [[`39b8730e8b`](https://github.com/nodejs/node/commit/39b8730e8b)] - **async_wrap**: ensure all objects have internal field (Trevor Norris) [#3139](https://github.com/nodejs/node/pull/3139) * [[`99e66074d7`](https://github.com/nodejs/node/commit/99e66074d7)] - **async_wrap**: update providers and add test (Trevor Norris) [#3139](https://github.com/nodejs/node/pull/3139) * [[`7a58157d4e`](https://github.com/nodejs/node/commit/7a58157d4e)] - **benchmark**: update comment in common.js (Minwoo Jung) [#2399](https://github.com/nodejs/node/pull/2399) -* [[`9e9bfa4dc0`](https://github.com/nodejs/node/commit/9e9bfa4dc0)] - **build**: iojs -> nodejs of release-urlbase (P.S.V.R) [#3015](https://github.com/nodejs/node/pull/3015) -* [[`8335ec7191`](https://github.com/nodejs/node/commit/8335ec7191)] - **build**: fix some typos inside the configure script (P.S.V.R) [#3016](https://github.com/nodejs/node/pull/3016) +* [[`9e9bfa4dc0`](https://github.com/nodejs/node/commit/9e9bfa4dc0)] - **build**: iojs -> nodejs of release-urlbase (Minqi Pan) [#3015](https://github.com/nodejs/node/pull/3015) +* [[`8335ec7191`](https://github.com/nodejs/node/commit/8335ec7191)] - **build**: fix some typos inside the configure script (Minqi Pan) [#3016](https://github.com/nodejs/node/pull/3016) * [[`d6ac547d5d`](https://github.com/nodejs/node/commit/d6ac547d5d)] - **build,win**: fix node.exe resource version (João Reis) [#3053](https://github.com/nodejs/node/pull/3053) * [[`798dad24f4`](https://github.com/nodejs/node/commit/798dad24f4)] - **child_process**: `null` channel handle on close (Fedor Indutny) [#3041](https://github.com/nodejs/node/pull/3041) * [[`e5615854ea`](https://github.com/nodejs/node/commit/e5615854ea)] - **contextify**: use CHECK instead of `if` (Oguz Bastemur) [#3125](https://github.com/nodejs/node/pull/3125) @@ -3404,7 +3458,7 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current * [[`5c3f50b21d`](https://github.com/nodejs/node/commit/5c3f50b21d)] - **doc**: rearrange execSync and execFileSync (Laurent Fortin) [#2940](https://github.com/nodejs/node/pull/2940) * [[`4fc33ac11a`](https://github.com/nodejs/node/commit/4fc33ac11a)] - **doc**: make execFileSync in line with execFile (Laurent Fortin) [#2940](https://github.com/nodejs/node/pull/2940) * [[`a366e84b17`](https://github.com/nodejs/node/commit/a366e84b17)] - **doc**: fix typos in cluster & errors (reggi) [#3011](https://github.com/nodejs/node/pull/3011) -* [[`52031e1bf1`](https://github.com/nodejs/node/commit/52031e1bf1)] - **doc**: switch LICENSE from closure-linter to eslint (P.S.V.R) [#3018](https://github.com/nodejs/node/pull/3018) +* [[`52031e1bf1`](https://github.com/nodejs/node/commit/52031e1bf1)] - **doc**: switch LICENSE from closure-linter to eslint (Minqi Pan) [#3018](https://github.com/nodejs/node/pull/3018) * [[`b28f6a53bc`](https://github.com/nodejs/node/commit/b28f6a53bc)] - **docs**: Clarify assert.doesNotThrow behavior (Fabio Oliveira) [#2807](https://github.com/nodejs/node/pull/2807) * [[`99943e189d`](https://github.com/nodejs/node/commit/99943e189d)] - **http**: fix out-of-order 'finish' bug in pipelining (Fedor Indutny) [#3128](https://github.com/nodejs/node/pull/3128) * [[`fb7a491d1c`](https://github.com/nodejs/node/commit/fb7a491d1c)] - **http_server**: pause socket properly (Fedor Indutny) [#3128](https://github.com/nodejs/node/pull/3128) @@ -3774,7 +3828,7 @@ See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and curren * [[`34ef53364f`](https://github.com/nodejs/node/commit/34ef53364f)] - **deps**: update V8 to 4.4.63.30 (Michaël Zasso) [#2482](https://github.com/nodejs/node/pull/2482) * [[`23579a5f4a`](https://github.com/nodejs/node/commit/23579a5f4a)] - **doc**: add TSC meeting minutes 2015-08-12 (Rod Vagg) [#2438](https://github.com/nodejs/node/pull/2438) * [[`0cc59299a4`](https://github.com/nodejs/node/commit/0cc59299a4)] - **doc**: add TSC meeting minutes 2015-08-26 (Rod Vagg) [#2591](https://github.com/nodejs/node/pull/2591) -* [[`6efa96e33a`](https://github.com/nodejs/node/commit/6efa96e33a)] - **doc**: merge CHANGELOG.md with joyent/node ChangeLog (P.S.V.R) [#2536](https://github.com/nodejs/node/pull/2536) +* [[`6efa96e33a`](https://github.com/nodejs/node/commit/6efa96e33a)] - **doc**: merge CHANGELOG.md with joyent/node ChangeLog (Minqi Pan) [#2536](https://github.com/nodejs/node/pull/2536) * [[`f75d54607b`](https://github.com/nodejs/node/commit/f75d54607b)] - **doc**: clarify cluster behaviour with no workers (Jeremiah Senkpiel) [#2606](https://github.com/nodejs/node/pull/2606) * [[`8936302121`](https://github.com/nodejs/node/commit/8936302121)] - **doc**: minor clarification in buffer.markdown (Сковорода Никита Андреевич) [#2574](https://github.com/nodejs/node/pull/2574) * [[`0db0e53753`](https://github.com/nodejs/node/commit/0db0e53753)] - **doc**: add @jasnell and @sam-github to release team (Rod Vagg) [#2455](https://github.com/nodejs/node/pull/2455) @@ -3901,7 +3955,7 @@ See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and curren * **buffer**: Fixed a couple large memory leaks (Ben Noordhuis) [#2352](https://github.com/nodejs/node/pull/2352). * **crypto**: - Fixed a couple of minor memory leaks (Karl Skomski) [#2375](https://github.com/nodejs/node/pull/2375). - - Signing now checks for OpenSSL errors (P.S.V.R) [#2342](https://github.com/nodejs/node/pull/2342). **Note that this may expose previously hidden errors in user code.** + - Signing now checks for OpenSSL errors (Minqi Pan) [#2342](https://github.com/nodejs/node/pull/2342). **Note that this may expose previously hidden errors in user code.** * **intl**: Intl support using small-icu is now enabled by default in builds (Steven R. Loomis) [#2264](https://github.com/nodejs/node/pull/2264). - [`String#normalize()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize) can now be used for unicode normalization. - The [`Intl`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Intl) object and various `String` and `Number` methods are present, but only support the English locale. @@ -3928,7 +3982,7 @@ See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and curren * [[`071640abdd`](https://github.com/nodejs/node/commit/071640abdd)] - **build**: Intl: bump ICU4C from 54 to 55 (Steven R. Loomis) [#2293](https://github.com/nodejs/node/pull/2293) * [[`07a88b0c8b`](https://github.com/nodejs/node/commit/07a88b0c8b)] - **build**: update manifest to include Windows 10 (Lucien Greathouse) [#2332](https://github.com/nodejs/io.js/pull/2332) * [[`0bb099f444`](https://github.com/nodejs/node/commit/0bb099f444)] - **build**: expand ~ in install prefix early (Ben Noordhuis) [#2307](https://github.com/nodejs/io.js/pull/2307) -* [[`7fe6dd8f5d`](https://github.com/nodejs/node/commit/7fe6dd8f5d)] - **crypto**: check for OpenSSL errors when signing (P.S.V.R) [#2342](https://github.com/nodejs/node/pull/2342) +* [[`7fe6dd8f5d`](https://github.com/nodejs/node/commit/7fe6dd8f5d)] - **crypto**: check for OpenSSL errors when signing (Minqi Pan) [#2342](https://github.com/nodejs/node/pull/2342) * [[`605f6ee904`](https://github.com/nodejs/node/commit/605f6ee904)] - **crypto**: fix memory leak in PBKDF2Request (Karl Skomski) [#2375](https://github.com/nodejs/node/pull/2375) * [[`ba6eb8af12`](https://github.com/nodejs/node/commit/ba6eb8af12)] - **crypto**: fix memory leak in ECDH::SetPrivateKey (Karl Skomski) [#2375](https://github.com/nodejs/node/pull/2375) * [[`6a16368611`](https://github.com/nodejs/node/commit/6a16368611)] - **crypto**: fix memory leak in PublicKeyCipher::Cipher (Karl Skomski) [#2375](https://github.com/nodejs/node/pull/2375) diff --git a/README.md b/README.md index 99113d55e875..5a55009f3384 100644 --- a/README.md +++ b/README.md @@ -21,19 +21,19 @@ If you need help using or installing Node.js, please use the The Node.js project maintains multiple types of releases: -* **Stable**: Released from active development branches of this repository, +* **Current**: Released from active development branches of this repository, versioned by [SemVer](http://semver.org/) and signed by a member of the [Release Team](#release-team). - Code for Stable releases is organized in this repository by major version + Code for Current releases is organized in this repository by major version number, For example: [v4.x](https://github.com/nodejs/node/tree/v4.x). - The major version number of Stable releases will increment every 6 months + The major version number of Current releases will increment every 6 months allowing for breaking changes to be introduced. This happens in April and - October every year. Stable release lines beginning in October each year have - a maximum support life of 8 months. Stable release lines beginning in April + October every year. Current release lines beginning in October each year have + a maximum support life of 8 months. Current release lines beginning in April each year will convert to LTS (see below) after 6 months and receive further support for 30 months. * **LTS**: Releases that receive Long-term Support, with a focus on stability - and security. Every second Stable release line (major version) will become an + and security. Every second Current release line (major version) will become an LTS line and receive 18 months of _Active LTS_ support and a further 12 months of _Maintenance_. LTS release lines are given alphabetically ordered codenames, beginning with v4 Argon. LTS releases are less frequent @@ -41,7 +41,7 @@ The Node.js project maintains multiple types of releases: only incrementing patch version numbers. There are no breaking changes or feature additions, except in some special circumstances. More information can be found in the [LTS README](https://github.com/nodejs/LTS/). -* **Nightly**: Versions of code in this repository on the current Stable +* **Nightly**: Versions of code in this repository on the current Current branch, automatically built every 24-hours where changes exist. Use with caution. @@ -50,10 +50,10 @@ The Node.js project maintains multiple types of releases: Binaries, installers, and source tarballs are available at . -**Stable** and **LTS** releases are available at +**Current** and **LTS** releases are available at , listed under their version strings. The [latest](https://nodejs.org/download/release/latest/) directory is an -alias for the latest Stable release. The latest LTS release from an LTS +alias for the latest Current release. The latest LTS release from an LTS line is available in the form: latest-_codename_. For example: @@ -68,7 +68,7 @@ documentation of the latest stable version. ### Verifying Binaries -Stable, LTS and Nightly download directories all contain a *SHASUM256.txt* +Current, LTS and Nightly download directories all contain a *SHASUM256.txt* file that lists the SHA checksums for each file available for download. @@ -88,7 +88,7 @@ $ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c - _(Where "node-vx.y.z.tar.gz" is the name of the file you have downloaded)_ -Additionally, Stable and LTS releases (not Nightlies) have GPG signed +Additionally, Current and LTS releases (not Nightlies) have GPG signed copies of SHASUM256.txt files available as SHASUM256.txt.asc. You can use `gpg` to verify that the file has not been tampered with. @@ -174,10 +174,13 @@ information about the governance of the Node.js project, see * [calvinmetcalf](https://github.com/calvinmetcalf) - **Calvin Metcalf** <calvin.metcalf@gmail.com> * [claudiorodriguez](https://github.com/claudiorodriguez) - **Claudio Rodriguez** <cjrodr@yahoo.com> * [domenic](https://github.com/domenic) - **Domenic Denicola** <d@domenic.me> +* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - **Robert Lindstaedt** <robert.lindstaedt@gmail.com> +* [estliberitas](https://github.com/estliberitas) - **Alexander Makarenko** <estliberitas@gmail.com> * [geek](https://github.com/geek) - **Wyatt Preul** <wpreul@gmail.com> * [iarna](https://github.com/iarna) - **Rebecca Turner** <me@re-becca.org> * [isaacs](https://github.com/isaacs) - **Isaac Z. Schlueter** <i@izs.me> * [iWuzHere](https://github.com/iWuzHere) - **Imran Iqbal** <imran@imraniqbal.org> +* [JacksonTian](https://github.com/JacksonTian) - **Jackson Tian** <shvyo1987@gmail.com> * [jbergstroem](https://github.com/jbergstroem) - **Johan Bergström** <bugs@bergstroem.nu> * [joaocgreis](https://github.com/joaocgreis) - **João Reis** <reis@janeasystems.com> * [julianduque](https://github.com/julianduque) - **Julian Duque** <julianduquej@gmail.com> @@ -191,11 +194,13 @@ information about the governance of the Node.js project, see * [Olegas](https://github.com/Olegas) - **Oleg Elifantiev** <oleg@elifantiev.ru> * [petkaantonov](https://github.com/petkaantonov) - **Petka Antonov** <petka_antonov@hotmail.com> * [phillipj](https://github.com/phillipj) - **Phillip Johnsen** <johphi@gmail.com> +* [pmq20](https://github.com/pmq20) - **Minqi Pan** <pmq2001@gmail.com> * [qard](https://github.com/qard) - **Stephen Belanger** <admin@stephenbelanger.com> * [rlidwka](https://github.com/rlidwka) - **Alex Kocharin** <alex@kocharin.ru> * [rmg](https://github.com/rmg) - **Ryan Graham** <r.m.graham@gmail.com> * [robertkowalski](https://github.com/robertkowalski) - **Robert Kowalski** <rok@kowalski.gd> * [romankl](https://github.com/romankl) - **Roman Klauke** <romaaan.git@gmail.com> +* [ronkorving](https://github.com/ronkorving) - **Ron Korving** <ron@ronkorving.nl> * [saghul](https://github.com/saghul) - **Saúl Ibarra Corretgé** <saghul@gmail.com> * [sam-github](https://github.com/sam-github) - **Sam Roberts** <vieuxtech@gmail.com> * [santigimeno](https://github.com/santigimeno) - **Santiago Gimeno** <santiago.gimeno@gmail.com> diff --git a/common.gypi b/common.gypi index ac06e55b181e..585b9485884e 100644 --- a/common.gypi +++ b/common.gypi @@ -308,7 +308,7 @@ 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics 'PREBINDING': 'NO', # No -Wl,-prebind - 'MACOSX_DEPLOYMENT_TARGET': '10.5', # -mmacosx-version-min=10.5 + 'MACOSX_DEPLOYMENT_TARGET': '10.7', # -mmacosx-version-min=10.7 'USE_HEADERMAP': 'NO', 'OTHER_CFLAGS': [ '-fno-strict-aliasing', diff --git a/doc/api/cluster.md b/doc/api/cluster.md index 8937aa91287d..dcf2f8a1e92f 100644 --- a/doc/api/cluster.md +++ b/doc/api/cluster.md @@ -239,7 +239,7 @@ those servers, and then disconnect the IPC channel. In the master, an internal message is sent to the worker causing it to call `.disconnect()` on itself. -Causes `.suicide` to be set. +Causes `.exitedAfterDisconnect` to be set. Note that after a server is closed, it will no longer accept new connections, but connections may be accepted by any other listening worker. Existing @@ -292,6 +292,27 @@ if (cluster.isMaster) { } ``` +### worker.exitedAfterDisconnect + +* {Boolean} + +Set by calling `.kill()` or `.disconnect()`. Until then, it is `undefined`. + +The boolean `worker.exitedAfterDisconnect` lets you distinguish between voluntary +and accidental exit, the master may choose not to respawn a worker based on +this value. + +```js +cluster.on('exit', (worker, code, signal) => { + if (worker.exitedAfterDisconnect === true) { + console.log('Oh, it was just voluntary\' – no need to worry'). + } +}); + +// kill worker +worker.kill(); +``` + ### worker.id * {Number} @@ -322,7 +343,7 @@ This function will kill the worker. In the master, it does this by disconnecting the `worker.process`, and once disconnected, killing with `signal`. In the worker, it does it by disconnecting the channel, and then exiting with code `0`. -Causes `.suicide` to be set. +Causes `.exitedAfterDisconnect` to be set. This method is aliased as `worker.destroy()` for backwards compatibility. @@ -340,8 +361,8 @@ is stored. See: [Child Process module][] Note that workers will call `process.exit(0)` if the `'disconnect'` event occurs -on `process` and `.suicide` is not `true`. This protects against accidental -disconnection. +on `process` and `.exitedAfterDisconnect` is not `true`. This protects against +accidental disconnection. ### worker.send(message[, sendHandle][, callback]) @@ -374,17 +395,20 @@ if (cluster.isMaster) { ### worker.suicide -* {Boolean} + Stability: 0 - Deprecated: Use [`worker.exitedAfterDisconnect`][] instead. -Set by calling `.kill()` or `.disconnect()`, until then it is `undefined`. +An alias to [`worker.exitedAfterDisconnect`][]. -The boolean `worker.suicide` lets you distinguish between voluntary and accidental -exit, the master may choose not to respawn a worker based on this value. +Set by calling `.kill()` or `.disconnect()`. Until then, it is `undefined`. + +The boolean `worker.suicide` lets you distinguish between voluntary +and accidental exit, the master may choose not to respawn a worker based on +this value. ```js cluster.on('exit', (worker, code, signal) => { if (worker.suicide === true) { - console.log('Oh, it was just suicide\' – no need to worry'). + console.log('Oh, it was just voluntary\' – no need to worry'). } }); @@ -392,6 +416,9 @@ cluster.on('exit', (worker, code, signal) => { worker.kill(); ``` +This API only exists for backwards compatibility and will be removed in the +future. + ## Event: 'disconnect' * `worker` {cluster.Worker} @@ -707,6 +734,7 @@ socket.on('data', (id) => { [`disconnect`]: child_process.html#child_process_child_disconnect [`kill`]: process.html#process_process_kill_pid_signal [`server.close()`]: net.html#net_event_close +[`worker.exitedAfterDisconnect`]: #cluster_worker_exitedafterdisconnect [Child Process module]: child_process.html#child_process_child_process_fork_modulepath_args_options [child_process event: 'exit']: child_process.html#child_process_event_exit [child_process event: 'message']: child_process.html#child_process_event_message diff --git a/doc/api/fs.md b/doc/api/fs.md index 1d64f7363372..5d73c38fe2e0 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -945,6 +945,16 @@ object with an `encoding` property specifying the character encoding to use for the link path passed to the callback. If the `encoding` is set to `'buffer'`, the link path returned will be passed as a `Buffer` object. +## fs.readSync(fd, buffer, offset, length, position) + +* `fd` {Integer} +* `buffer` {String | Buffer} +* `offset` {Integer} +* `length` {Integer} +* `position` {Integer} + +Synchronous version of [`fs.read()`][]. Returns the number of `bytesRead`. + ## fs.realpath(path[, options], callback) * `path` {String | Buffer} @@ -960,16 +970,6 @@ object with an `encoding` property specifying the character encoding to use for the path passed to the callback. If the `encoding` is set to `'buffer'`, the path returned will be passed as a `Buffer` object. -## fs.readSync(fd, buffer, offset, length, position) - -* `fd` {Integer} -* `buffer` {String | Buffer} -* `offset` {Integer} -* `length` {Integer} -* `position` {Integer} - -Synchronous version of [`fs.read()`][]. Returns the number of `bytesRead`. - ## fs.realpathSync(path[, options]) * `path` {String | Buffer}; diff --git a/doc/api/readline.md b/doc/api/readline.md index db543d2306a5..f939368122d5 100644 --- a/doc/api/readline.md +++ b/doc/api/readline.md @@ -300,7 +300,8 @@ the following values: treated like a TTY, and have ANSI/VT100 escape codes written to it. Defaults to checking `isTTY` on the `output` stream upon instantiation. - - `historySize` - maximum number of history lines retained. Defaults to `30`. + - `historySize` - maximum number of history lines retained. To disable the + history set this value to `0`. Defaults to `30`. The `completer` function is given the current line entered by the user, and is supposed to return an Array with 2 entries: diff --git a/doc/api/tls.md b/doc/api/tls.md index ae324f8852e2..a0068f5f9b82 100644 --- a/doc/api/tls.md +++ b/doc/api/tls.md @@ -168,6 +168,8 @@ the total bytes written to the socket, *including the TLS overhead*. ## Class: SecurePair + Stability: 0 - Deprecated: Use [`tls.TLSSocket`][] instead. + Returned by tls.createSecurePair. ### Event: 'secure' @@ -379,9 +381,9 @@ Construct a new TLSSocket object from an existing TCP socket. - `server`: An optional [`net.Server`][] instance - - `requestCert`: Optional, see [`tls.createSecurePair()`][] + - `requestCert`: Optional, see [`tls.createServer()`][] - - `rejectUnauthorized`: Optional, see [`tls.createSecurePair()`][] + - `rejectUnauthorized`: Optional, see [`tls.createServer()`][] - `NPNProtocols`: Optional, see [`tls.createServer()`][] @@ -745,6 +747,8 @@ publicly trusted list of CAs as given in ## tls.createSecurePair([context][, isServer][, requestCert][, rejectUnauthorized][, options]) + Stability: 0 - Deprecated: Use [`tls.TLSSocket`][] instead. + Creates a new secure pair object with two streams, one of which reads and writes the encrypted data and the other of which reads and writes the cleartext data. Generally, the encrypted stream is piped to/from an incoming encrypted data @@ -770,6 +774,23 @@ stream. NOTE: `cleartext` has the same API as [`tls.TLSSocket`][] +**Deprecated** `tls.createSecurePair()` is now deprecated in favor of +`tls.TLSSocket()`. For example: + +```js +pair = tls.createSecurePair( ... ); +pair.encrypted.pipe(socket); +socket.pipe(pair.encrypted); +``` + +can be replaced with: + +```js +secure_socket = tls.TLSSocket(socket, options); +``` + +where `secure_socket` has the same API as `pair.cleartext`. + ## tls.createServer(options[, secureConnectionListener]) Creates a new [tls.Server][]. The `connectionListener` argument is diff --git a/doc/releases.md b/doc/releases.md index 512deb34acf8..b7e006836930 100644 --- a/doc/releases.md +++ b/doc/releases.md @@ -127,7 +127,7 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current * Include the full list of commits since the last release here. Do not include "Working on X.Y.Z+1" commits. ``` -The release type should be either Stable, LTS, or Maintenance, depending on the type of release being produced. +The release type should be either Current, LTS, or Maintenance, depending on the type of release being produced. ### 4. Create Release Commit @@ -187,7 +187,7 @@ Jenkins collects the artifacts from the builds, allowing you to download and ins Once you have produced builds that you're happy with, create a new tag. By waiting until this stage to create tags, you can discard a proposed release if something goes wrong or additional commits are required. Once you have created a tag and pushed it to GitHub, you ***should not*** delete and re-tag. If you make a mistake after tagging then you'll have to version-bump and start again and count that tag/version as lost. -Tag summaries have a predictable format, look at a recent tag to see, `git tag -v v5.3.0`. The message should look something like `2015-12-16 Node.js v5.3.0 (Stable) Release`. +Tag summaries have a predictable format, look at a recent tag to see, `git tag -v v6.0.0`. The message should look something like `2016-04-26 Node.js v6.0.0 (Current) Release`. Create a tag using the following command: diff --git a/lib/buffer.js b/lib/buffer.js index 9076ad24c0ce..515f841fd365 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -62,17 +62,20 @@ Buffer.prototype.swap32 = function swap32() { const flags = bindingObj.flags; const kNoZeroFill = 0; -function createBuffer(size) { - const ui8 = new Uint8Array(size); - Object.setPrototypeOf(ui8, Buffer.prototype); - return ui8; +function createBuffer(size, noZeroFill) { + flags[kNoZeroFill] = noZeroFill ? 1 : 0; + try { + const ui8 = new Uint8Array(size); + Object.setPrototypeOf(ui8, Buffer.prototype); + return ui8; + } finally { + flags[kNoZeroFill] = 0; + } } function createPool() { poolSize = Buffer.poolSize; - if (poolSize > 0) - flags[kNoZeroFill] = 1; - allocPool = createBuffer(poolSize); + allocPool = createBuffer(poolSize, true); poolOffset = 0; } createPool(); @@ -154,15 +157,13 @@ Buffer.alloc = function(size, fill, encoding) { return createBuffer(size); if (fill !== undefined) { // Since we are filling anyway, don't zero fill initially. - flags[kNoZeroFill] = 1; // Only pay attention to encoding if it's a string. This // prevents accidentally sending in a number that would // be interpretted as a start offset. return typeof encoding === 'string' ? - createBuffer(size).fill(fill, encoding) : - createBuffer(size).fill(fill); + createBuffer(size, true).fill(fill, encoding) : + createBuffer(size, true).fill(fill); } - flags[kNoZeroFill] = 0; return createBuffer(size); }; @@ -182,9 +183,7 @@ Buffer.allocUnsafe = function(size) { **/ Buffer.allocUnsafeSlow = function(size) { assertSize(size); - if (size > 0) - flags[kNoZeroFill] = 1; - return createBuffer(size); + return createBuffer(size, true); }; // If --zero-fill-buffers command line argument is set, a zero-filled @@ -192,9 +191,7 @@ Buffer.allocUnsafeSlow = function(size) { function SlowBuffer(length) { if (+length != length) length = 0; - if (length > 0) - flags[kNoZeroFill] = 1; - return createBuffer(+length); + return createBuffer(+length, true); } Object.setPrototypeOf(SlowBuffer.prototype, Uint8Array.prototype); @@ -216,9 +213,7 @@ function allocate(size) { // Even though this is checked above, the conditional is a safety net and // sanity check to prevent any subsequent typed array allocation from not // being zero filled. - if (size > 0) - flags[kNoZeroFill] = 1; - return createBuffer(size); + return createBuffer(size, true); } } diff --git a/lib/cluster.js b/lib/cluster.js index b43d4a0a34fa..651b2f481de8 100644 --- a/lib/cluster.js +++ b/lib/cluster.js @@ -27,7 +27,20 @@ function Worker(options) { if (options === null || typeof options !== 'object') options = {}; - this.suicide = undefined; + this.exitedAfterDisconnect = undefined; + + Object.defineProperty(this, 'suicide', { + get: function() { + // TODO: Print deprecation message. + return this.exitedAfterDisconnect; + }, + set: function(val) { + // TODO: Print deprecation message. + this.exitedAfterDisconnect = val; + }, + enumerable: true + }); + this.state = options.state || 'none'; this.id = options.id | 0; @@ -355,7 +368,7 @@ function masterInit() { removeWorker(worker); } - worker.suicide = !!worker.suicide; + worker.exitedAfterDisconnect = !!worker.exitedAfterDisconnect; worker.state = 'dead'; worker.emit('exit', exitCode, signalCode); cluster.emit('exit', worker, exitCode, signalCode); @@ -376,7 +389,7 @@ function masterInit() { */ if (worker.isDead()) removeWorker(worker); - worker.suicide = !!worker.suicide; + worker.exitedAfterDisconnect = !!worker.exitedAfterDisconnect; worker.state = 'disconnected'; worker.emit('disconnect'); cluster.emit('disconnect', worker); @@ -407,7 +420,7 @@ function masterInit() { }; Worker.prototype.disconnect = function() { - this.suicide = true; + this.exitedAfterDisconnect = true; send(this, { act: 'disconnect' }); removeHandlesForWorker(this); removeWorker(this); @@ -432,8 +445,8 @@ function masterInit() { queryServer(worker, message); else if (message.act === 'listening') listening(worker, message); - else if (message.act === 'suicide') - suicide(worker, message); + else if (message.act === 'exitedAfterDisconnect') + exitedAfterDisconnect(worker, message); else if (message.act === 'close') close(worker, message); } @@ -444,14 +457,14 @@ function masterInit() { cluster.emit('online', worker); } - function suicide(worker, message) { - worker.suicide = true; + function exitedAfterDisconnect(worker, message) { + worker.exitedAfterDisconnect = true; send(worker, { ack: message.seq }); } function queryServer(worker, message) { // Stop processing if worker already disconnecting - if (worker.suicide) + if (worker.exitedAfterDisconnect) return; var args = [message.address, message.port, @@ -533,7 +546,7 @@ function workerInit() { cluster.worker = worker; process.once('disconnect', function() { worker.emit('disconnect'); - if (!worker.suicide) { + if (!worker.exitedAfterDisconnect) { // Unexpected disconnect, master exited, or some such nastiness, so // worker exits immediately. process.exit(0); @@ -670,10 +683,10 @@ function workerInit() { }; Worker.prototype.destroy = function() { - this.suicide = true; + this.exitedAfterDisconnect = true; if (!this.isConnected()) process.exit(0); var exit = process.exit.bind(null, 0); - send({ act: 'suicide' }, () => process.disconnect()); + send({ act: 'exitedAfterDisconnect' }, () => process.disconnect()); process.once('disconnect', exit); }; @@ -682,19 +695,20 @@ function workerInit() { } function _disconnect(masterInitiated) { - this.suicide = true; + this.exitedAfterDisconnect = true; let waitingCount = 1; function checkWaitingCount() { waitingCount--; if (waitingCount === 0) { - // If disconnect is worker initiated, wait for ack to be sure suicide - // is properly set in the master, otherwise, if it's master initiated - // there's no need to send the suicide message + // If disconnect is worker initiated, wait for ack to be sure + // exitedAfterDisconnect is properly set in the master, otherwise, if + // it's master initiated there's no need to send the + // exitedAfterDisconnect message if (masterInitiated) { process.disconnect(); } else { - send({ act: 'suicide' }, () => process.disconnect()); + send({ act: 'exitedAfterDisconnect' }, () => process.disconnect()); } } } diff --git a/lib/readline.js b/lib/readline.js index 3948d990539d..680ffbf2cd99 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -53,12 +53,15 @@ function Interface(input, output, completer, terminal) { historySize = input.historySize; input = input.input; } - historySize = historySize || kHistorySize; if (completer && typeof completer !== 'function') { throw new TypeError('Argument "completer" must be a function'); } + if (historySize === undefined) { + historySize = kHistorySize; + } + if (typeof historySize !== 'number' || isNaN(historySize) || historySize < 0) { @@ -228,6 +231,9 @@ Interface.prototype._writeToOutput = function _writeToOutput(stringToWrite) { Interface.prototype._addHistory = function() { if (this.line.length === 0) return ''; + // if the history is disabled then return the line + if (this.historySize === 0) return this.line; + if (this.history.length === 0 || this.history[0] !== this.line) { this.history.unshift(this.line); diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 1e9226c9256d..a143576227b8 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -5696,10 +5696,10 @@ void ExportChallenge(const FunctionCallbackInfo& args) { void InitCryptoOnce() { + OPENSSL_config(NULL); SSL_library_init(); OpenSSL_add_all_algorithms(); SSL_load_error_strings(); - OPENSSL_config(NULL); crypto_lock_init(); CRYPTO_set_locking_callback(crypto_lock_cb); diff --git a/src/node_version.h b/src/node_version.h index fa299eca6dba..f182847e6e53 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -3,7 +3,7 @@ #define NODE_MAJOR_VERSION 6 #define NODE_MINOR_VERSION 0 -#define NODE_PATCH_VERSION 0 +#define NODE_PATCH_VERSION 1 #define NODE_VERSION_IS_RELEASE 1 diff --git a/test/parallel/test-cluster-worker-disconnect.js b/test/parallel/test-cluster-worker-disconnect.js index 4c9aaf1115d1..6ee12795fd50 100644 --- a/test/parallel/test-cluster-worker-disconnect.js +++ b/test/parallel/test-cluster-worker-disconnect.js @@ -8,8 +8,12 @@ if (cluster.isWorker) { http.Server(function() { }).listen(common.PORT, '127.0.0.1'); + const worker = cluster.worker; + assert.strictEqual(worker.exitedAfterDisconnect, worker.suicide); cluster.worker.on('disconnect', function() { + assert.strictEqual(cluster.worker.exitedAfterDisconnect, + cluster.worker.suicide); process.exit(42); }); @@ -26,7 +30,7 @@ if (cluster.isWorker) { emitDisconnectInsideWorker: false, emitExit: false, state: false, - suicideMode: false, + voluntaryMode: false, died: false } }; @@ -60,7 +64,7 @@ if (cluster.isWorker) { // Check worker events and properties worker.once('disconnect', function() { checks.worker.emitDisconnect = true; - checks.worker.suicideMode = worker.suicide; + checks.worker.voluntaryMode = worker.exitedAfterDisconnect; checks.worker.state = worker.state; }); @@ -86,7 +90,7 @@ if (cluster.isWorker) { // flags assert.equal(w.state, 'disconnected', 'The state property was not set'); - assert.equal(w.suicideMode, true, 'Suicide mode was not set'); + assert.equal(w.voluntaryMode, true, 'Voluntary exit mode was not set'); // is process alive assert.ok(w.died, 'The worker did not die'); diff --git a/test/parallel/test-cluster-worker-exit.js b/test/parallel/test-cluster-worker-exit.js index 60c80ec93855..ad1e30ddb019 100644 --- a/test/parallel/test-cluster-worker-exit.js +++ b/test/parallel/test-cluster-worker-exit.js @@ -3,7 +3,7 @@ // verifies that, when a child process exits (by calling `process.exit(code)`) // - the parent receives the proper events in the proper order, no duplicates // - the exitCode and signalCode are correct in the 'exit' event -// - the worker.suicide flag, and worker.state are correct +// - the worker.exitedAfterDisconnect flag, and worker.state are correct // - the worker process actually goes away var common = require('../common'); @@ -32,6 +32,8 @@ if (cluster.isWorker) { worker_emitExit: [1, "the worker did not emit 'exit'"], worker_state: ['disconnected', 'the worker state is incorrect'], worker_suicideMode: [false, 'the worker.suicide flag is incorrect'], + worker_exitedAfterDisconnect: [false, + 'the .exitedAfterDisconnect flag is incorrect'], worker_died: [true, 'the worker is still running'], worker_exitCode: [EXIT_CODE, 'the worker exited w/ incorrect exitCode'], worker_signalCode: [null, 'the worker exited w/ incorrect signalCode'] @@ -66,6 +68,7 @@ if (cluster.isWorker) { worker.on('disconnect', function() { results.worker_emitDisconnect += 1; results.worker_suicideMode = worker.suicide; + results.worker_exitedAfterDisconnect = worker.exitedAfterDisconnect; results.worker_state = worker.state; if (results.worker_emitExit > 0) { process.nextTick(function() { finish_test(); }); diff --git a/test/parallel/test-cluster-worker-forced-exit.js b/test/parallel/test-cluster-worker-forced-exit.js index ef9f7728bad3..4f42532b5530 100644 --- a/test/parallel/test-cluster-worker-forced-exit.js +++ b/test/parallel/test-cluster-worker-forced-exit.js @@ -6,7 +6,7 @@ var cluster = require('cluster'); var SENTINEL = 42; // workers forcibly exit when control channel is disconnected, if -// their .suicide flag isn't set +// their .exitedAfterDisconnect flag isn't set // // test this by: // diff --git a/test/parallel/test-cluster-worker-kill.js b/test/parallel/test-cluster-worker-kill.js index 7c2465f9a463..bce4af11b7bb 100644 --- a/test/parallel/test-cluster-worker-kill.js +++ b/test/parallel/test-cluster-worker-kill.js @@ -3,7 +3,7 @@ // verifies that, when a child process is killed (we use SIGKILL) // - the parent receives the proper events in the proper order, no duplicates // - the exitCode and signalCode are correct in the 'exit' event -// - the worker.suicide flag, and worker.state are correct +// - the worker.exitedAfterDisconnect flag, and worker.state are correct // - the worker process actually goes away var common = require('../common'); @@ -29,7 +29,8 @@ if (cluster.isWorker) { worker_emitDisconnect: [1, "the worker did not emit 'disconnect'"], worker_emitExit: [1, "the worker did not emit 'exit'"], worker_state: ['disconnected', 'the worker state is incorrect'], - worker_suicideMode: [false, 'the worker.suicide flag is incorrect'], + worker_exitedAfter: [false, + 'the .exitedAfterDisconnect flag is incorrect'], worker_died: [true, 'the worker is still running'], worker_exitCode: [null, 'the worker exited w/ incorrect exitCode'], worker_signalCode: [KILL_SIGNAL, @@ -65,7 +66,7 @@ if (cluster.isWorker) { // Check worker events and properties worker.on('disconnect', function() { results.worker_emitDisconnect += 1; - results.worker_suicideMode = worker.suicide; + results.worker_exitedAfter = worker.exitedAfterDisconnect; results.worker_state = worker.state; }); diff --git a/test/parallel/test-readline-interface.js b/test/parallel/test-readline-interface.js index 02f6dc980a10..ab0c6d8824b9 100644 --- a/test/parallel/test-readline-interface.js +++ b/test/parallel/test-readline-interface.js @@ -27,6 +27,25 @@ function isWarned(emitter) { var rli; var called; + // disable history + fi = new FakeInput(); + rli = new readline.Interface({ input: fi, output: fi, terminal: terminal, + historySize: 0 }); + assert.strictEqual(rli.historySize, 0); + + fi.emit('data', 'asdf\n'); + assert.deepStrictEqual(rli.history, terminal ? [] : undefined); + rli.close(); + + // default history size 30 + fi = new FakeInput(); + rli = new readline.Interface({ input: fi, output: fi, terminal: terminal}); + assert.strictEqual(rli.historySize, 30); + + fi.emit('data', 'asdf\n'); + assert.deepStrictEqual(rli.history, terminal ? ['asdf'] : undefined); + rli.close(); + // sending a full line fi = new FakeInput(); rli = new readline.Interface({ input: fi, output: fi, terminal: terminal });