|
1 |
| -Evented I/O for V8 javascript. [](http://travis-ci.org/joyent/node) |
2 |
| -=== |
| 1 | +Node.js |
| 2 | +======= |
3 | 3 |
|
4 |
| -### To build: |
| 4 | +[](https://gitter.im/nodejs/node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) |
5 | 5 |
|
6 |
| -Prerequisites (Unix only): |
| 6 | +The Node.js project is supported by the |
| 7 | +[Node.js Foundation](https://nodejs.org/en/foundation/). Contributions, |
| 8 | +policies and releases are managed under an |
| 9 | +[open governance model](./GOVERNANCE.md). We are also bound by a |
| 10 | +[Code of Conduct](./CODE_OF_CONDUCT.md). |
7 | 11 |
|
8 |
| - * GCC 4.2 or newer |
9 |
| - * Python 2.6 or 2.7 |
10 |
| - * GNU Make 3.81 or newer |
11 |
| - * libexecinfo (FreeBSD and OpenBSD only) |
| 12 | +If you need help using or installing Node.js, please use the |
| 13 | +[nodejs/help](https://github.com/nodejs/help) issue tracker. |
12 | 14 |
|
13 |
| -Unix/Macintosh: |
| 15 | +## Release Types |
14 | 16 |
|
15 |
| - ./configure |
16 |
| - make |
17 |
| - make install |
| 17 | +The Node.js project maintains multiple types of releases: |
18 | 18 |
|
19 |
| -If your python binary is in a non-standard location or has a |
| 19 | +* **Stable**: Released from active development branches of this repository, |
| 20 | + versioned by [SemVer](http://semver.org/) and signed by a member of the |
| 21 | + [Release Team](#release-team). |
| 22 | + Code for Stable releases is organized in this repository by major version |
| 23 | + number, For example: [v4.x](https://github.com/nodejs/node/tree/v4.x). |
| 24 | + The major version number of Stable releases will increment every 6 months |
| 25 | + allowing for breaking changes to be introduced. This happens in April and |
| 26 | + October every year. Stable release lines beginning in October each year have |
| 27 | + a maximum support life of 8 months. Stable release lines beginning in April |
| 28 | + each year will convert to LTS (see below) after 6 months and receive further |
| 29 | + support for 30 months. |
| 30 | +* **LTS**: Releases that receive Long-term Support, with a focus on stability |
| 31 | + and security. Every second Stable release line (major version) will become an |
| 32 | + LTS line and receive 18 months of _Active LTS_ support and a further 12 |
| 33 | + months of _Maintenance_. LTS release lines are given alphabetically |
| 34 | + ordered codenames, begining with v4 Argon. LTS releases are less frequent |
| 35 | + and will attempt to maintain consistent major and minor version numbers, |
| 36 | + only incrementing patch version numbers. There are no breaking changes or |
| 37 | + feature additions, except in some special circumstances. More information |
| 38 | + can be found in the [LTS README](https://github.com/nodejs/LTS/). |
| 39 | +* **Nightly**: Versions of code in this repository on the current Stable |
| 40 | + branch, automatically built every 24-hours where changes exist. Use with |
| 41 | + caution. |
| 42 | + |
| 43 | +## Download |
| 44 | + |
| 45 | +Binaries, installers, and source tarballs are available at |
| 46 | +<https://nodejs.org>. |
| 47 | + |
| 48 | +**Stable** and **LTS** releases are available at |
| 49 | +<https://nodejs.org/download/release/>, listed under their version strings. |
| 50 | +The [latest](https://nodejs.org/download/release/latest/) directory is an |
| 51 | +alias for the latest Stable release. The latest LTS release from an LTS |
| 52 | +line is available in the form: latest-lts-_codename_. For example: |
| 53 | +<https://nodejs.org/download/release/latest-lts-argon> |
| 54 | + |
| 55 | +**Nightly** builds are available at |
| 56 | +<https://nodejs.org/download/nightly/>, listed under their version |
| 57 | +string which includes their date (in UTC time) and the commit SHA at |
| 58 | +the HEAD of the release. |
| 59 | + |
| 60 | +**API documentation** is available in each release and nightly |
| 61 | +directory under _docs_. <https://nodejs.org/api/> points to the API |
| 62 | +documentation of the latest stable version. |
| 63 | + |
| 64 | +### Verifying Binaries |
| 65 | + |
| 66 | +Stable, LTS and Nightly download directories all contain a *SHASUM256.txt* |
| 67 | +file that lists the SHA checksums for each file available for |
| 68 | +download. To check that a downloaded file matches the checksum, run |
| 69 | +it through `sha256sum` with a command such as: |
| 70 | + |
| 71 | +``` |
| 72 | +$ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c - |
| 73 | +``` |
| 74 | + |
| 75 | +_(Where "node-vx.y.z.tar.gz" is the name of the file you have |
| 76 | +downloaded)_ |
| 77 | + |
| 78 | +Additionally, Stable and LTS releases (not Nightlies) have GPG signed |
| 79 | +copies of SHASUM256.txt files available as SHASUM256.txt.asc. You can use |
| 80 | +`gpg` to verify that the file has not been tampered with. |
| 81 | + |
| 82 | +To verify a SHASUM256.txt.asc, you will first need to import all of |
| 83 | +the GPG keys of individuals authorized to create releases. They are |
| 84 | +listed at the bottom of this README under [Release Team](#release-team). |
| 85 | +Use a command such as this to import the keys: |
| 86 | + |
| 87 | +``` |
| 88 | +$ gpg --keyserver pool.sks-keyservers.net \ |
| 89 | + --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D |
| 90 | +``` |
| 91 | + |
| 92 | +_(See the bottom of this README for a full script to import active |
| 93 | +release keys)_ |
| 94 | + |
| 95 | +You can then use `gpg --verify SHASUMS256.txt.asc` to verify that the |
| 96 | +file has been signed by an authorized member of the Node.js team. |
| 97 | + |
| 98 | +Once verified, use the SHASUMS256.txt.asc file to get the checksum for |
| 99 | +the binary verification command above. |
| 100 | + |
| 101 | +## Build |
| 102 | + |
| 103 | +### Unix / Macintosh |
| 104 | + |
| 105 | +Prerequisites: |
| 106 | + |
| 107 | +* GCC 4.2 or newer |
| 108 | +* G++ 4.2 or newer |
| 109 | +* Python 2.6 or 2.7 |
| 110 | +* GNU Make 3.81 or newer |
| 111 | +* libexecinfo (FreeBSD and OpenBSD only) |
| 112 | + |
| 113 | +```text |
| 114 | +$ ./configure |
| 115 | +$ make |
| 116 | +$ [sudo] make install |
| 117 | +``` |
| 118 | + |
| 119 | +If your Python binary is in a non-standard location or has a |
20 | 120 | non-standard name, run the following instead:
|
21 | 121 |
|
22 |
| - export PYTHON=/path/to/python |
23 |
| - $PYTHON ./configure |
24 |
| - make |
25 |
| - make install |
| 122 | +```text |
| 123 | +$ export PYTHON=/path/to/python |
| 124 | +$ $PYTHON ./configure |
| 125 | +$ make |
| 126 | +$ [sudo] make install |
| 127 | +``` |
| 128 | + |
| 129 | +To run the tests: |
| 130 | + |
| 131 | +```text |
| 132 | +$ make test |
| 133 | +``` |
| 134 | + |
| 135 | +To build the documentation: |
| 136 | + |
| 137 | +```text |
| 138 | +$ make doc |
| 139 | +``` |
| 140 | + |
| 141 | +To read the documentation: |
| 142 | + |
| 143 | +```text |
| 144 | +$ man doc/node.1 |
| 145 | +``` |
| 146 | + |
| 147 | +To test if Node.js was built correctly: |
| 148 | + |
| 149 | +``` |
| 150 | +$ node -e "console.log('Hello from node.js ' + process.version)" |
| 151 | +``` |
| 152 | + |
| 153 | +### Windows |
| 154 | + |
| 155 | +Prerequisites: |
| 156 | + |
| 157 | +* [Python 2.6 or 2.7](https://www.python.org/downloads/) |
| 158 | +* Visual Studio 2010 or 2012; or |
| 159 | +* Visual Studio 2013 for Windows Desktop; or |
| 160 | +* Visual Studio Express 2013 for Windows Desktop |
| 161 | +* Basic Unix tools required for some tests, |
| 162 | + [Git for Windows](http://git-scm.com/download/win) includes Git Bash |
| 163 | + and tools which can be included in the global `PATH`. |
| 164 | + |
| 165 | +```text |
| 166 | +> vcbuild nosign |
| 167 | +``` |
| 168 | + |
| 169 | +To run the tests: |
| 170 | + |
| 171 | +```text |
| 172 | +> vcbuild test |
| 173 | +``` |
| 174 | + |
| 175 | +To test if Node.js was built correctly: |
| 176 | + |
| 177 | +``` |
| 178 | +$ node -e "console.log('Hello from node.js ' + process.version)" |
| 179 | +``` |
| 180 | + |
| 181 | +### Android / Android based devices, aka. Firefox OS |
| 182 | + |
| 183 | +Be sure you have downloaded and extracted [Android NDK] |
| 184 | +(https://developer.android.com/tools/sdk/ndk/index.html) |
| 185 | +before in a folder. Then run: |
| 186 | + |
| 187 | +``` |
| 188 | +$ ./android-configure /path/to/your/android-ndk |
| 189 | +$ make |
| 190 | +``` |
| 191 | + |
| 192 | +## Resources for Newcomers |
| 193 | + |
| 194 | +* [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) |
| 195 | +* [CONTRIBUTING.md](./CONTRIBUTING.md) |
| 196 | +* [GOVERNANCE.md](./GOVERNANCE.md) |
| 197 | +* IRC: |
| 198 | + [#io.js on Freenode.net](http://webchat.freenode.net?channels=io.js&uio=d4) |
| 199 | +* [nodejs/node on Gitter](https://gitter.im/nodejs/node) |
| 200 | + |
| 201 | +## Security |
| 202 | + |
| 203 | +All security bugs in node.js are taken seriously and should be reported by |
| 204 | +emailing security@nodejs.org. This will be delivered to a subset of the project |
| 205 | +team who handle security issues. Please don't disclose security bugs |
| 206 | +public until they have been handled by the security team. |
26 | 207 |
|
27 |
| -Windows: |
| 208 | +Your email will be acknowledged within 24 hours, and you’ll receive a more |
| 209 | +detailed response to your email within 48 hours indicating the next steps in |
| 210 | +handling your report. |
28 | 211 |
|
29 |
| - vcbuild.bat |
| 212 | +## Current Project Team Members |
30 | 213 |
|
31 |
| -You can download pre-built binaries for various operating systems from |
32 |
| -[http://nodejs.org/download/](http://nodejs.org/download/). The Windows |
33 |
| -and OS X installers will prompt you for the location to install to. |
34 |
| -The tarballs are self-contained; you can extract them to a local directory |
35 |
| -with: |
| 214 | +The Node.js project team comprises a group of core collaborators and a sub-group |
| 215 | +that forms the _Technical Steering Committee_ (TSC) which governs the project. For more |
| 216 | +information about the governance of the Node.js project, see |
| 217 | +[GOVERNANCE.md](./GOVERNANCE.md). |
36 | 218 |
|
37 |
| - tar xzf /path/to/node-<version>-<platform>-<arch>.tar.gz |
| 219 | +### TSC (Technical Steering Committee) |
38 | 220 |
|
39 |
| -Or system-wide with: |
| 221 | +* [bnoordhuis](https://github.com/bnoordhuis) - **Ben Noordhuis** <info@bnoordhuis.nl> |
| 222 | +* [chrisdickinson](https://github.com/chrisdickinson) - **Chris Dickinson** <christopher.s.dickinson@gmail.com> |
| 223 | +* [cjihrig](https://github.com/cjihrig) - **Colin Ihrig** <cjihrig@gmail.com> |
| 224 | +* [fishrock123](https://github.com/fishrock123) - **Jeremiah Senkpiel** <fishrock123@rocketmail.com> |
| 225 | +* [indutny](https://github.com/indutny) - **Fedor Indutny** <fedor.indutny@gmail.com> |
| 226 | +* [jasnell](https://github.com/jasnell) - **James M Snell** <jasnell@gmail.com> |
| 227 | +* [misterdjules](https://github.com/misterdjules) - **Julien Gilli** <jgilli@nodejs.org> |
| 228 | +* [mscdex](https://github.com/mscdex) - **Brian White** <mscdex@mscdex.net> |
| 229 | +* [orangemocha](https://github.com/orangemocha) - **Alexis Campailla** <orangemocha@nodejs.org> |
| 230 | +* [piscisaureus](https://github.com/piscisaureus) - **Bert Belder** <bertbelder@gmail.com> |
| 231 | +* [rvagg](https://github.com/rvagg) - **Rod Vagg** <rod@vagg.org> |
| 232 | +* [shigeki](https://github.com/shigeki) - **Shigeki Ohtsu** <ohtsu@iij.ad.jp> |
| 233 | +* [trevnorris](https://github.com/trevnorris) - **Trevor Norris** <trev.norris@gmail.com> |
40 | 234 |
|
41 |
| - cd /usr/local && tar --strip-components 1 -xzf \ |
42 |
| - /path/to/node-<version>-<platform>-<arch>.tar.gz |
| 235 | +### Collaborators |
43 | 236 |
|
44 |
| -### To run the tests: |
| 237 | +* [brendanashworth](https://github.com/brendanashworth) - **Brendan Ashworth** <brendan.ashworth@me.com> |
| 238 | +* [ChALkeR](https://github.com/ChALkeR) - **Сковорода Никита Андреевич** <chalkerx@gmail.com> |
| 239 | +* [domenic](https://github.com/domenic) - **Domenic Denicola** <d@domenic.me> |
| 240 | +* [evanlucas](https://github.com/evanlucas) - **Evan Lucas** <evanlucas@me.com> |
| 241 | +* [geek](https://github.com/geek) - **Wyatt Preul** <wpreul@gmail.com> |
| 242 | +* [isaacs](https://github.com/isaacs) - **Isaac Z. Schlueter** <i@izs.me> |
| 243 | +* [jbergstroem](https://github.com/jbergstroem) - **Johan Bergström** <bugs@bergstroem.nu> |
| 244 | +* [joaocgreis](https://github.com/joaocgreis) - **João Reis** <reis@janeasystems.com> |
| 245 | +* [julianduque](https://github.com/julianduque) - **Julian Duque** <julianduquej@gmail.com> |
| 246 | +* [lxe](https://github.com/lxe) - **Aleksey Smolenchuk** <lxe@lxe.co> |
| 247 | +* [mhdawson](https://github.com/mhdawson) - **Michael Dawson** <michael_dawson@ca.ibm.com> |
| 248 | +* [micnic](https://github.com/micnic) - **Nicu Micleușanu** <micnic90@gmail.com> |
| 249 | +* [mikeal](https://github.com/mikeal) - **Mikeal Rogers** <mikeal.rogers@gmail.com> |
| 250 | +* [monsanto](https://github.com/monsanto) - **Christopher Monsanto** <chris@monsan.to> |
| 251 | +* [ofrobots](https://github.com/ofrobots) - **Ali Ijaz Sheikh** <ofrobots@google.com> |
| 252 | +* [Olegas](https://github.com/Olegas) - **Oleg Elifantiev** <oleg@elifantiev.ru> |
| 253 | +* [petkaantonov](https://github.com/petkaantonov) - **Petka Antonov** <petka_antonov@hotmail.com> |
| 254 | +* [qard](https://github.com/qard) - **Stephen Belanger** <admin@stephenbelanger.com> |
| 255 | +* [rlidwka](https://github.com/rlidwka) - **Alex Kocharin** <alex@kocharin.ru> |
| 256 | +* [robertkowalski](https://github.com/robertkowalski) - **Robert Kowalski** <rok@kowalski.gd> |
| 257 | +* [romankl](https://github.com/romankl) - **Roman Klauke** <romaaan.git@gmail.com> |
| 258 | +* [saghul](https://github.com/saghul) - **Saúl Ibarra Corretgé** <saghul@gmail.com> |
| 259 | +* [sam-github](https://github.com/sam-github) - **Sam Roberts** <vieuxtech@gmail.com> |
| 260 | +* [seishun](https://github.com/seishun) - **Nikolai Vavilov** <vvnicholas@gmail.com> |
| 261 | +* [silverwind](https://github.com/silverwind) - **Roman Reiss** <me@silverwind.io> |
| 262 | +* [srl295](https://github.com/srl295) - **Steven R Loomis** <srloomis@us.ibm.com> |
| 263 | +* [targos](https://github.com/targos) - **Michaël Zasso** <mic.besace@gmail.com> |
| 264 | +* [tellnes](https://github.com/tellnes) - **Christian Tellnes** <christian@tellnes.no> |
| 265 | +* [thealphanerd](http://github.com/thealphanerd) - **Myles Borins** <myles.borins@gmail.com> |
| 266 | +* [thefourtheye](https://github.com/thefourtheye) - **Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> |
| 267 | +* [thlorenz](https://github.com/thlorenz) - **Thorsten Lorenz** <thlorenz@gmx.de> |
| 268 | +* [Trott](https://github.com/Trott) - **Rich Trott** <rtrott@gmail.com> |
| 269 | +* [tunniclm](https://github.com/tunniclm) - **Mike Tunnicliffe** <m.j.tunnicliffe@gmail.com> |
| 270 | +* [vkurchatkin](https://github.com/vkurchatkin) - **Vladimir Kurchatkin** <vladimir.kurchatkin@gmail.com> |
| 271 | +* [yosuke-furukawa](https://github.com/yosuke-furukawa) - **Yosuke Furukawa** <yosuke.furukawa@gmail.com> |
45 | 272 |
|
46 |
| -Unix/Macintosh: |
| 273 | +Collaborators & TSC members follow the [COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in |
| 274 | +maintaining the Node.js project. |
47 | 275 |
|
48 |
| - make test |
| 276 | +### Release Team |
49 | 277 |
|
50 |
| -Windows: |
| 278 | +Releases of Node.js and io.js will be signed with one of the following GPG keys: |
51 | 279 |
|
52 |
| - vcbuild.bat test |
| 280 | +* **Chris Dickinson** <christopher.s.dickinson@gmail.com> `9554F04D7259F04124DE6B476D5A82AC7E37093B` |
| 281 | +* **Colin Ihrig** <cjihrig@gmail.com> `94AE36675C464D64BAFA68DD7434390BDBE9B9C5` |
| 282 | +* **Sam Roberts** <octetcloud@keybase.io> `0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93` |
| 283 | +* **Jeremiah Senkpiel** <fishrock@keybase.io> `FD3A5288F042B6850C66B31F09FE44734EB7990E` |
| 284 | +* **James M Snell** <jasnell@keybase.io> `71DCFD284A79C3B38668286BC97EC7A07EDE3FC1` |
| 285 | +* **Rod Vagg** <rod@vagg.org> `DD8F2338BAE7501E3DD5AC78C273792F7D83545D` |
53 | 286 |
|
54 |
| -### To build the documentation: |
| 287 | +The full set of trusted release keys can be imported by running: |
55 | 288 |
|
56 |
| - make doc |
| 289 | +``` |
| 290 | +gpg --keyserver pool.sks-keyservers.net --recv-keys 9554F04D7259F04124DE6B476D5A82AC7E37093B |
| 291 | +gpg --keyserver pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 |
| 292 | +gpg --keyserver pool.sks-keyservers.net --recv-keys 0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 |
| 293 | +gpg --keyserver pool.sks-keyservers.net --recv-keys FD3A5288F042B6850C66B31F09FE44734EB7990E |
| 294 | +gpg --keyserver pool.sks-keyservers.net --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 |
| 295 | +gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D |
| 296 | +``` |
57 | 297 |
|
58 |
| -### To read the documentation: |
| 298 | +See the section above on [Verifying Binaries](#verifying-binaries) for |
| 299 | +details on what to do with these keys to verify that a downloaded file is official. |
59 | 300 |
|
60 |
| - man doc/node.1 |
| 301 | +Previous releases of Node.js have been signed with one of the following GPG |
| 302 | +keys: |
61 | 303 |
|
62 |
| -Resources for Newcomers |
63 |
| ---- |
64 |
| - - [The Wiki](https://github.com/joyent/node/wiki) |
65 |
| - - [nodejs.org](http://nodejs.org/) |
66 |
| - - [how to install node.js and npm (node package manager)](http://www.joyent.com/blog/installing-node-and-npm/) |
67 |
| - - [list of modules](https://github.com/joyent/node/wiki/modules) |
68 |
| - - [searching the npm registry](http://npmjs.org/) |
69 |
| - - [list of companies and projects using node](https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node) |
70 |
| - - [node.js mailing list](http://groups.google.com/group/nodejs) |
71 |
| - - irc chatroom, [#node.js on freenode.net](http://webchat.freenode.net?channels=node.js&uio=d4) |
72 |
| - - [community](https://github.com/joyent/node/wiki/Community) |
73 |
| - - [contributing](https://github.com/joyent/node/wiki/Contributing) |
74 |
| - - [big list of all the helpful wiki pages](https://github.com/joyent/node/wiki/_pages) |
| 304 | +* Julien Gilli <jgilli@fastmail.fm> `114F43EE0176B71C7BC219DD50A3051F888C628D` |
| 305 | +* Timothy J Fontaine <tjfontaine@gmail.com> `7937DFD2AB06298B2293C3187D33FF9D0246406D` |
| 306 | +* Isaac Z. Schlueter <i@izs.me> `93C7E9E91B49E432C2F75674B0A78B0A6C481CF6` |
0 commit comments