Wed, 11 Jun 2014 16:00:00 UTC - tjfontaine - Uncategorized

Notes from the Road

As Project Lead for Node.js, I was excited to have the opportunity to go on the road and bring production stories to all of our users. We've had amazing speakers and turn out in San Francisco, Seattle, Portland, Boston, and New York. But I wanted to make sure we reached more than just our coasts, so soon we'll be in Minneapolis and I'll be returning to my home state of Ohio and doing an event in Cincinnati. The Node.js community is all over the world, and hopefully Node on the Road can reach as many of you as it can. Nominate your city to be a future stop on the Node.js on the Road series here.

These Node on the Road events are successful because of the incredible support from the community and the existing meetup organizations in their respective cities. But the biggest advantage is that the project gets to solicit feedback directly from our users about what is and isn't working for them in Node.js, what modules they're using, and where they need Node to do better.

Release schedules

Some of the feedback we've received has been about the upgrade process for Node. Veteran Node.js alums will occasionally sit around campfires and tell the stories of when things would break every release, or how long they stayed on 0.4 before upgrading to 0.6. Some production companies are still out there running on 0.8 afraid to make the jump to 0.10. While other companies advise people to avoid upgrading to a new release of a Node version until the patch number hits double digits. It's those sorts of stories that make it important for us to get the release for 0.12 right, from the get go.

Node is in a fantastic place right now, it's maturing quickly and finding its footing in new environments with new users and new use cases. The expectation for Node is getting higher each day with every release. There are multiple interests at stake, keeping Node lean, keeping it up to date with languages and standards, keeping it fast, and balanced with keeping it stable such that we don't upset the adoption rate. That means Node needs to make the right choices that balance the needs of all of our users without closing the doors to others.

All of these conversations are helping to shape the release process going forward, and helping to scope just what does go into a release and how fast people want to see those happen. In fact something we've been considering is eliminating the confusion around our Stable/Unstable branches, and instead moving to releases that are always stable. But it's important that the features and changes that go into a release are shaped by user feedback, which is why events like Node on the Road are vital.

Better Documentation

Another key piece of feedback has consistently been around our documentation. Users need us to clean up our API reference documentation, there are lots of undocumented and under-documented methods and properties that are being used or should be used. Node needs to include what errors may be delivered as part of the operation of your application, as well as what methods will throw and under what circumstances.

But mostly users are looking for more general purpose documentation that can help both new and veteran Node.js users be more productive with Node. And the people who are most equipped to provide that documentation are the users themselves who've already been successful.

Easier Contribution

Aside from soliciting feedback from users of Node.js and bringing production stories to our users, Node on the Road has also been about highlighting the various ways you as a member of the community can contribute. There are many ways you can contribute from meetups and conferences, to publishing modules, to finding issues in modules or core, to fixing issues in modules or core, or even adding features to modules or core. Where ever you are passionate about Node.js there are ways you can contribute back to Node.

Node.js has inherited many things from our largest dependency V8, we've adopted their build system GYP, we use their test runner (which is unfortunately in python), and when we were structuring the project we brought along the Contributor License Agreement (CLA) that Google uses to manage contributions for Chromium and V8. The CLA is there as a way for a project to audit itself and to give itself the opportunity to relicense itself in the future if necessary. Node.js though is distributed under the venerable MIT license, and that's not going to change. The MIT license is one of the most permissible open source licenses out there, and has fostered a ton of development with Node.js and we want that to continue.

In an effort to make it easier for users to contribute to Node.js the project has decided to lift the requirement of signing the CLA before contributions are eligible for integration. Having to sign the CLA could at times be a stumbling block for a contribution. It could involve a long conversation with your legal department to ultimately contribute typo corrections.

I'm excited to see what contributions will be coming from the community in the future, excited to see where our users take Node.js, and excited to be participating with all of you on this project.

Fri, 02 May 2014 14:45:51 UTC - release

2014.05.01, Version 0.10.28 (Stable)

  • npm: upgrade to v1.4.9

Source Code: http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz

Macintosh Installer (Universal): http://nodejs.org/dist/v0.10.28/node-v0.10.28.pkg

Windows Installer: http://nodejs.org/dist/v0.10.28/node-v0.10.28-x86.msi

Windows x64 Installer: http://nodejs.org/dist/v0.10.28/x64/node-v0.10.28-x64.msi

Windows x64 Files: http://nodejs.org/dist/v0.10.28/x64/

Linux 32-bit Binary: http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x86.tar.gz

Linux 64-bit Binary: http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz

Solaris 32-bit Binary: http://nodejs.org/dist/v0.10.28/node-v0.10.28-sunos-x86.tar.gz

Solaris 64-bit Binary: http://nodejs.org/dist/v0.10.28/node-v0.10.28-sunos-x64.tar.gz

Other release files: http://nodejs.org/dist/v0.10.28/

Website: http://nodejs.org/docs/v0.10.28/

Documentation: http://nodejs.org/docs/v0.10.28/api/

Shasums:

6eff580cc8460741155d42ef1ef537961194443f  node-v0.10.28-darwin-x64.tar.gz
d95ed3e8305ba459015549ef8a925ffbb889ef35  node-v0.10.28-darwin-x86.tar.gz
4b9cf9437decea3d9913b694ea2e9b0a06ced2dd  node-v0.10.28-linux-x64.tar.gz
3daec68e972abc299882b73fa6360387c5145a97  node-v0.10.28-linux-x86.tar.gz
17898dcf188d4b672bf5d2ec2f8e7a0abb6ccbcf  node-v0.10.28-sunos-x64.tar.gz
19075b6ce07fb3a331b2f710ddddd07f86a5a5cd  node-v0.10.28-sunos-x86.tar.gz
0c9ebeecf7cfad99fad1af7e7043fcd6fac8eef9  node-v0.10.28-x86.msi
f94bb307f8c4aa408c4702704461533f1d4fa793  node-v0.10.28.pkg
ef08a75f6359a16e672cae684e0804ca7f4554b7  node-v0.10.28.tar.gz
57e565d7a2c10dd9299c15b98ab752e01ab3b4e0  node.exe
97de4ea47677773ee21c2361b88fa8751f613bb3  node.exp
20614aa1b6505e3c6921897bab09117b86da9c29  node.lib
10bfcfa936d25a12f0778f472c3439c2aaac0ff9  node.pdb
9aa42387fb7d18a74059ffef85f9d8ca316525b6  pkgsrc/nodejs-ia32-0.10.28.tgz
b987cd71d9ca1aeb513343b459a3e5f7b8c4df1d  pkgsrc/nodejs-x64-0.10.28.tgz
6122b245f2237268a3ad10e8b008752888713906  x64/node-v0.10.28-x64.msi
8017b24d8e6955bbfc2dc28f7a57c3d03e159020  x64/node.exe
8da812d32830442a0aafa3c3be85ca3ee7ce43c4  x64/node.exp
8961ea28d99d05dd85c3bf1ac4dd88fb4e23be3b  x64/node.lib
02d57f356d754da2e5ba8885243ad7a9a67bad38  x64/node.pdb

Thu, 01 May 2014 22:29:37 UTC - release

2014.05.01, Version 0.10.27 (Stable)

  • npm: upgrade to v1.4.8

  • openssl: upgrade to 1.0.1g

  • uv: update to v0.10.27

  • dns: fix certain txt entries (Fedor Indutny)

  • assert: Ensure reflexivity of deepEqual (Mike Pennisi)

  • child_process: fix deadlock when sending handles (Fedor Indutny)

  • child_process: fix sending handle twice (Fedor Indutny)

  • crypto: do not lowercase cipher/hash names (Fedor Indutny)

  • dtrace: workaround linker bug on FreeBSD (Fedor Indutny)

  • http: do not emit EOF non-readable socket (Fedor Indutny)

  • http: invoke createConnection when no agent (Nathan Rajlich)

  • stream: remove useless check (Brian White)

  • timer: don't reschedule timer bucket in a domain (Greg Brail)

  • url: treat the same as / (isaacs)

  • util: format as Error if instanceof Error (Rod Vagg)

Source Code: http://nodejs.org/dist/v0.10.27/node-v0.10.27.tar.gz

Macintosh Installer (Universal): http://nodejs.org/dist/v0.10.27/node-v0.10.27.pkg

Windows Installer: http://nodejs.org/dist/v0.10.27/node-v0.10.27-x86.msi

Windows x64 Installer: http://nodejs.org/dist/v0.10.27/x64/node-v0.10.27-x64.msi

Windows x64 Files: http://nodejs.org/dist/v0.10.27/x64/

Linux 32-bit Binary: http://nodejs.org/dist/v0.10.27/node-v0.10.27-linux-x86.tar.gz

Linux 64-bit Binary: http://nodejs.org/dist/v0.10.27/node-v0.10.27-linux-x64.tar.gz

Solaris 32-bit Binary: http://nodejs.org/dist/v0.10.27/node-v0.10.27-sunos-x86.tar.gz

Solaris 64-bit Binary: http://nodejs.org/dist/v0.10.27/node-v0.10.27-sunos-x64.tar.gz

Other release files: http://nodejs.org/dist/v0.10.27/

Website: http://nodejs.org/docs/v0.10.27/

Documentation: http://nodejs.org/docs/v0.10.27/api/

Shasums:

74a33b3a095370b6a42f74527817ad4c57110c21  node-v0.10.27-darwin-x64.tar.gz
77c76d4433d9d2ebdf3b6b41da61ef869b9c080c  node-v0.10.27-darwin-x86.tar.gz
5e5328172491bb6861376a751b530ed35a45d128  node-v0.10.27-linux-x64.tar.gz
6e5b2d22dc720398fc52266395ad04da61df564f  node-v0.10.27-linux-x86.tar.gz
bd441a809c2256cca4f23d0d53f7599d1684da1f  node-v0.10.27-sunos-x64.tar.gz
7a116e9f128cbc2e46ae9c21bc5adc9054ef4c0d  node-v0.10.27-sunos-x86.tar.gz
36771e0712ccc5363bb97674d44c36d784901cb7  node-v0.10.27-x86.msi
a0ff5292c46e7ea984362e9fd54fa7f8ae981760  node-v0.10.27.pkg
b9429a86d774d06cccd840e6bd189f9106928a87  node-v0.10.27.tar.gz
6d61a07a184d1103fe8f801ca75053a44ab514fc  node.exe
618c4152b7729cf41b3e53b2bb8f172ba017e128  node.exp
65845a7ef3582c1ccd3943f6b2d8e804a8317f31  node.lib
3eacd9aef672410ed42ccc807f81a79ec130013e  node.pdb
f8e8097df171f108c6f8925d2fce061ac5caf9de  pkgsrc/nodejs-ia32-0.10.27.tgz
323e2d72943381bb89fa29f8305697854b423537  pkgsrc/nodejs-x64-0.10.27.tgz
911832602bf8e65bc7e2b2e34c7dd1af17b427e5  x64/node-v0.10.27-x64.msi
92f3aa0c7664489d7e796206be04fa2dec1f61e3  x64/node.exe
82f6409c91d2294c7e450a5b83701c9988a40a45  x64/node.exp
181c71e5277614dd60b2c04067008d38030708eb  x64/node.lib
12855dc1d77372367d2ef917dd06e9db3a628a71  x64/node.pdb

Wed, 12 Mar 2014 14:56:30 UTC - release

2014.03.11, Version 0.11.12 (Unstable)

  • uv: Upgrade to v0.11.22 (Timothy J Fontaine)

  • buffer: allow toString to accept Infinity for end (Brian White)

  • child_process: add spawnSync/execSync (Bert Belder, Timothy J Fontaine)

  • cluster: handle bind errors on Windows (Alexis Campailla)

  • contextify: handle infinite recursion errors (Fedor Indutny)

  • crypto: allow custom generator for DiffieHellman (Brian White)

  • crypto: allow setting add'l authenticated data (Brian White)

  • crypto: fix CipherFinal return value check (Brian White)

  • crypto: make NewSessionDoneCb public (Fedor Indutny)

  • dgram: pass the bytes sent to the send callback (Timothy J Fontaine)

  • dns: validate arguments in resolver (Kenan Sulayman)

  • dns: verify argument is valid function in resolve (Kenan Sulayman)

  • http: avoid duplicate keys in writeHead (David Bjo╠łrklund)

  • net: add localPort to connect options (Timothy J Fontaine)

  • node: do not print SyntaxError hints to stderr (Fedor Indutny)

  • node: invoke beforeExit again if loop was active (Fedor Indutny)

  • node: make AsyncListenerInst field more explicit (Trevor Norris)

  • os: networkInterfaces include scopeid for ipv6 (Xidorn Quan)

  • process: allow changing exitCode in on('exit') (Fedor Indutny)

  • readline: fix line event, if input emit 'end' (Yazhong Liu)

  • src: add tracing.v8.on('gc') statistics hooks (Ben Noordhuis)

  • src: add v8.getHeapStatistics() function (Ben Noordhuis)

  • src: emit 'beforeExit' event on process object (Ben Noordhuis)

  • src: move AsyncListener from process to tracing (Trevor Norris)

  • tls: fix crash in SNICallback (Fedor Indutny)

  • tls: introduce asynchronous newSession (Fedor Indutny)

  • util: show meaningful values for boxed primitives (Nathan Rajlich)

  • vm: don't copy Proxy object from parent context (Ben Noordhuis)

  • windows: make stdout/sterr pipes blocking (Alexis Campailla)

  • zlib: add sync versions for convenience methods (Nikolai Vavilov)

Source Code: http://nodejs.org/dist/v0.11.12/node-v0.11.12.tar.gz

Macintosh Installer (Universal): http://nodejs.org/dist/v0.11.12/node-v0.11.12.pkg

Windows Installer: http://nodejs.org/dist/v0.11.12/node-v0.11.12-x86.msi

Windows x64 Installer: http://nodejs.org/dist/v0.11.12/x64/node-v0.11.12-x64.msi

Windows x64 Files: http://nodejs.org/dist/v0.11.12/x64/

Linux 32-bit Binary: http://nodejs.org/dist/v0.11.12/node-v0.11.12-linux-x86.tar.gz

Linux 64-bit Binary: http://nodejs.org/dist/v0.11.12/node-v0.11.12-linux-x64.tar.gz

Solaris 32-bit Binary: http://nodejs.org/dist/v0.11.12/node-v0.11.12-sunos-x86.tar.gz

Solaris 64-bit Binary: http://nodejs.org/dist/v0.11.12/node-v0.11.12-sunos-x64.tar.gz

Other release files: http://nodejs.org/dist/v0.11.12/

Website: http://nodejs.org/docs/v0.11.12/

Documentation: http://nodejs.org/docs/v0.11.12/api/

Shasums:

058930a3993e91bc6e79a0874b2c1a0b103469b1  node-v0.11.12-darwin-x64.tar.gz
0e6210a19ac94920e0357716f3600722de63763b  node-v0.11.12-darwin-x86.tar.gz
b9d2eae74df55bdb252fab239d2c496aec329aad  node-v0.11.12-linux-x64.tar.gz
d0f22e5821f0b105300415283143e9da4937dca2  node-v0.11.12-linux-x86.tar.gz
7b9e432212e7ad04e1e4a00b0747cfe5e1ad50d0  node-v0.11.12-sunos-x64.tar.gz
66e4af23c0489b258b87d8cd2eee350294e6c3f5  node-v0.11.12-sunos-x86.tar.gz
5452d6aadbef3b4a65bb147407a0fd1657a7fb15  node-v0.11.12-x86.msi
3522b87d7c10527182bc9f1cff313a737c1a37bb  node-v0.11.12.pkg
d991057af05dd70feb2126469ce279a2fe869e86  node-v0.11.12.tar.gz
6544c0c193a80f7450fa8f36f8080cbe062d27bb  node.exe
c27b3dee963e5ec0c3b25e42292b3679e4e2f50b  node.exp
c52a86505b53edc9d8fe6f65916fc77165e404d1  node.lib
65ceb13db7ff0706a5ea3611ac2cbd84afe6798c  node.pdb
d943ecaf3fd55b198c617e01f52bdee480d1c9b7  openssl-cli.exe
97628b29758cbbdddab027215f441a623f95e35e  openssl-cli.pdb
d02987fe0852a85e63acdbd45d7178ad55d6fe0b  pkgsrc/nodejs-ia32-0.11.12.tgz
4076893ac96718edbc2f2ed1f20953a8ec66cf48  pkgsrc/nodejs-x64-0.11.12.tgz
e88f8ae5a722e135083ed3d0085e2d15ea527125  x64/node-v0.11.12-x64.msi
ea6fc65061aafcf4e4b58d58a3e7eee9c4866a0b  x64/node.exe
3c7cc6b0fcd1e304e6ccdc179e5a7df24909910e  x64/node.exp
7b906562dc52d9e5825de3e4ce46ac114f7f76d3  x64/node.lib
06a0d0b1c941f805dd48f9b85c8baef1e0e936d4  x64/node.pdb
90f3d8c4f470b5a46934e90a7b0f983afc6fa0ec  x64/openssl-cli.exe
c5df898ab9dd3ed28826aa7be715c0ae52842f10  x64/openssl-cli.pdb

← Page 2

Page 4 →