Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps...
Transcript of Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps...
![Page 1: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/1.jpg)
The road four nodeEvan Lucas
https://github.com/evanlucashttps://twitter.com/evanhlucas
1
![Page 2: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/2.jpg)
About
• Node.js Engineer at Help.com
• Node.js Core Collaborator
• Node.js Website Collaborator
2
![Page 3: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/3.jpg)
Overview• Versioning
• Official Builds
• Tested Platforms
• Contributions
• Working Groups
• ES2015
• Governance
• Nan
• Upgrading
3
![Page 4: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/4.jpg)
Timeline
4
3/11/13 Node.js v0.10 Released
3/28/13 Node.js v0.11 Released (Unstable)
11/24/14 io.js is born
1/14/15 io.js v1.0.0 Released
2/6/15 Node.js v0.12 Released
5/8/15 Node.js BDFL steps down
5/13/15 io.js TC joins Node Foundation
9/8/15 Node.js v4.0.0 Released (1st Converged Release)
10/13/15 Node.js v4.2.1 Argon Released (1st LTS Release)
![Page 5: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/5.jpg)
SemVer
• Previously, odd-even versioning
• Moved to Semantic Versioning
5
![Page 6: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/6.jpg)
Official BuildsWindows 32-bit 64-bit
Mac OS X 64-bit
Linux 32-bit 64-bit
SunOS 32-bit 64-bit
ARM ARMv6 ARMv7 ARMv8
6
![Page 7: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/7.jpg)
Tested PlatformsWindows 2008 Windows 2012 Windows 10
64-bit 64-bit 64-bit
Windows
FreeBSD 10.1 FreeBSD 10.132-bit 64-bit
FreeBSD
SmartOS 14.x.x SmartOS 14.x.x32-bit 64-bit
SmartOS
7
![Page 8: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/8.jpg)
Tested PlatformsCentOS 5.10 CentOS 5.10 CentOS 6.5 CentOS 7.0
32-bit 64-bit 64-bit 64-bit
Fedora 21 Fedora 22 Ubuntu 12.04 Ubuntu 14.0464-bit 64-bit 64-bit 32-bit
Ubuntu 14.04 Ubuntu 14.10 Ubuntu 15.04 Debian 864-bit 64-bit 64-bit 64-bit
Fedora 21 Ubuntu 14.0464-bit (PPC BE) 64-bit (PPC LE)
Linux
8
![Page 9: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/9.jpg)
Tested PlatformsUbuntu 14.04 Ubuntu 14.04 Wheezy Wheezy
ARMv7 ARMv8 ARMv7 ARMv8
ARM
9
![Page 10: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/10.jpg)
Contributions
10
![Page 11: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/11.jpg)
Working Groups• API
• Benchmarking
• Build
• Documentation
• Evangelism
• Hardware
• Help
• Internationalization
• LTS
• Post Mortem Diagnostics
• Tracing
• Website
11
![Page 12: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/12.jpg)
ES 2015• Template Strings
• Maps / Sets
• Generators
• Promises
• Block Scoping (let/const)
• Symbols
• Arrow Functions
https://nodejs.org/en/docs/es6/
12
![Page 13: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/13.jpg)
Template Strings
13
![Page 14: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/14.jpg)
Maps and Sets
14
![Page 15: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/15.jpg)
Generators
15
![Page 16: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/16.jpg)
Promises
16
![Page 17: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/17.jpg)
Block Scoping
17
![Page 18: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/18.jpg)
Symbols
18
![Page 19: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/19.jpg)
Arrow Functions
19
![Page 20: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/20.jpg)
GovernanceTechnical Committee
• Responsible for high-level guidance of the project.
• Initial membership invitations to the TSC were given to individuals who had been active contributors to Node.js, and who have significant experience with the management of the Node.js project.
• Follows consensus seeking process.
• No more than 1/3 of the TSC members may be affiliated with the same employer.
• Current Members
20
![Page 21: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/21.jpg)
GovernanceCollaborators
• In addition to the TSC, node also has collaborators.
• Anyone making significant and valuable contributions are made Collaborators and given commit-access to the project.
• Responsible for reviewing and landing pull requests as well as handling issues.
• May opt to elevate significant or controversial modifications, or modification that have not found consensus to the TSC for discussion.
• Collaborators
21
![Page 22: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/22.jpg)
GovernanceMore details regarding the governance of
Node.js can be found in the GitHub repository
22
![Page 23: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/23.jpg)
NanNative Abstractions for Node.js
• Created by Rod Vagg (@rvagg) to make writing native addons easier across multiple versions of node.
• Helps prevent getting into a "macro tangle" when trying to support multiple versions
https://github.com/nodejs/nan
23
![Page 24: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/24.jpg)
NanSupports the following versions
• node v0.10.x
• node v0.12.x
• iojs v1.x, v2.x, v3.x
• node v4.x, v5.x
24
![Page 25: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/25.jpg)
Without Nan
25
![Page 26: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/26.jpg)
With Nan
26
![Page 27: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/27.jpg)
Upgrading
• NodeSource Upgrade Self-service
• Blog post by Dave Lutz (NodeSource)
• upgrade-utils
• Breaking changes from v0.10 to v4
27
![Page 28: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/28.jpg)
Long Term Support
28
![Page 29: Evan Lucas · 1/14/15 io.js v1.0.0 Released 2/6/15 Node.js v0.12 Released 5/8/15 Node.js BDFL steps down 5/13/15 io.js TC joins Node Foundation 9/8/15 Node.js v4.0.0 Released (1st](https://reader034.fdocuments.net/reader034/viewer/2022050415/5f8b3829ea48172140341c67/html5/thumbnails/29.jpg)
Thanks!
Any questions?
29