Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
e31ab7c
inspector: enable --inspect-brk
refack Apr 24, 2017
a7d4cad
crypto: add sign/verify support for RSASSA-PSS
tniessen Mar 5, 2017
4917d8c
assert: improve assert.fail() API
Trott Apr 9, 2017
44cc39d
tools: remove assert.fail() lint rule
Trott Apr 12, 2017
1091b86
test: remove common.fail()
Trott Apr 9, 2017
d8f5637
test: add cwd ENOENT known issue test
cjihrig Apr 11, 2017
02b4684
repl: force editorMode in .load
lance Aug 16, 2017
9ec87dc
doc: fix the description of 'close' event
MylesBorins Oct 12, 2017
2d3e735
deps: V8: backport e560815 from upstream
ofrobots Oct 10, 2017
16802c0
process: add --redirect-warnings command line argument
jasnell Dec 4, 2016
68f698c
src: use SafeGetenv() for NODE_REDIRECT_WARNINGS
sam-github Oct 10, 2017
8f42148
src: use a std::vector for preload_modules
sam-github Apr 5, 2017
dd6ea89
src: allow CLI args in env with NODE_OPTIONS
sam-github Feb 20, 2017
12b66e6
src: whitelist new options for NODE_OPTIONS
sam-github May 12, 2017
16f8f9b
src: allow --tls-cipher-list in NODE_OPTIONS
sam-github May 23, 2017
ba830f0
test: chdir before running test-cli-node-options
danbev Apr 26, 2017
dd946c3
test: add hasCrypto check to test-cli-node-options
danbev Apr 27, 2017
cccf5a6
src: --abort-on-uncaught-exception in NODE_OPTIONS
sam-github Jun 26, 2017
1de0490
fs: Fix default params for fs.write(Sync)
papandreou May 23, 2017
c9d440e
test: change == to === in crypto test
fcampinho Apr 13, 2017
7b9710d
test: add inspect-brk option to cluster module
dave-k Apr 19, 2017
d25dc79
test: skipIfInspectorDisabled cluster-inspect-brk
danbev Apr 30, 2017
3265840
deps: upgrade libuv to 1.12.0
cjihrig May 30, 2017
3ac7690
gitignore: add libuv book and GitHub template
cjihrig Jun 5, 2017
a38755d
deps: upgrade libuv to 1.13.1
cjihrig Jul 6, 2017
08d6830
deps: upgrade libuv to 1.14.1
cjihrig Sep 6, 2017
4030c7e
test: update windows module load error message
cjihrig Aug 20, 2017
a0b3805
doc: make socket IPC examples more robust
cjihrig May 24, 2017
f87a626
path: fix normalize on directories with two dots
targos Jul 6, 2017
06ee10e
test: split path tests into multiple files
targos Aug 30, 2017
5c99fc3
test: backward compatible api for tty
gergelyke Sep 7, 2017
f49feab
timers: clarify lib/timer.js comment
danbev Jan 26, 2017
5522bdf
benchmark: use smaller n value in some http tests
psmarshall Jun 30, 2017
0b5798b
src: remove outdated todo from node_crypto.cc
barnski Aug 30, 2017
ab014d4
doc: make mkdtemp example work on Windows
bzoz Sep 14, 2017
48943e9
test: allow adding known-globals through ENV
refack Sep 4, 2017
ae111c2
doc: use consistent terminology in process doc
Trott Sep 10, 2017
6fe61d6
test: remove invalid test
Trott Sep 10, 2017
0b2d548
doc: fix "added in" for Buffer.allocUnsafeSlow()
tuananh Sep 11, 2017
988eec3
doc: update README with SHASUMS256.txt.sig info
maclover7 Aug 31, 2017
21dec55
doc: update AUTHORS list
targos Sep 4, 2017
713f239
doc: adding sebdeckers to collaborators
sebdeckers Sep 12, 2017
9cebe82
test: check inspect array with empty string key
mrahul17 Sep 8, 2017
10a7035
crypto: fix Node_SignFinal
davidben Sep 9, 2017
c4b06b2
test: remove random timer in test-tls-fast-writing
Trott Sep 1, 2017
514ef74
test: make test-http-agent-maxsockets robust
Trott Sep 5, 2017
ccdc194
doc: fix some internal links
vsemozhetbyt Oct 17, 2017
96a64af
test: use reserved invalid hostname for tests
icarter09 Aug 12, 2017
6c9a9ff
build: don't fail `make test` on source tarballs
gibfahn Sep 16, 2017
377f7b9
doc: fix 'aborted' event documentation
lpinca Sep 19, 2017
1483ebd
test: improve readline test coverage for tty
claudiorodriguez Mar 27, 2017
f22132e
deps: v8: fix potential segfault in profiler
ofrobots Sep 20, 2017
81236d9
src: correct typo in trace_event header
danbev Sep 24, 2017
323edfa
docs: clarify usage cli options -e,-p on windows
lukaszewczak Sep 23, 2017
b622a51
doc: ctc -> tsc in collab guide
bengl Sep 24, 2017
d1bf8ce
path: fix normalize paths ending with two dots
targos Sep 26, 2017
27af0bb
url: change variable name to be more descriptive
jason9693 Sep 22, 2017
4669570
crypto: only try to set FIPS mode if different
gibfahn Apr 4, 2017
eefa0a2
doc: retire bnoordhuis from the TSC
bnoordhuis Sep 26, 2017
b166837
src,etw: fix event 9 on 64 bit Windows
joaocgreis Sep 22, 2017
78dc928
build: fix shared installing target
yorkie Sep 2, 2017
6b08128
crypto: use SSL_SESSION_get_id
davidben Sep 11, 2017
af63b38
crypto: use X509V3_EXT_d2i
davidben Sep 11, 2017
f29f20f
doc: add bmeurer to collaborators
bmeurer Sep 29, 2017
926b46c
doc: update libuv license
TimothyGu Sep 28, 2017
02e4303
deps: upgrade libuv to 1.15.0
cjihrig Oct 2, 2017
af18632
doc: fix links in some intra-repository docs
vsemozhetbyt Sep 29, 2017
e865fcb
doc: edit COLLABORATORS_GUIDE.md for readability
Trott Sep 26, 2017
e3ea2a4
test: check that this != new.target in addon
bnoordhuis Sep 29, 2017
6b1ce97
doc: fix dead link in doc/releases.md
lpinca Oct 2, 2017
6d41c85
doc: alphabetize TSC Emeriti in README.md
Trott Oct 2, 2017
62ea82b
doc: add 'git clean -xfd' to backport guide
lance Oct 1, 2017
ddee71a
doc: fix typo in tls.md
koh110 Oct 2, 2017
83a2513
test: skip test if host is too slow
Trott Sep 29, 2017
eaec35d
doc: fix incorrect vm.createContext usage
tshemsedinov Oct 7, 2017
931addb
src: fix ^ in stack trace with vm's columnOffset
TimothyGu Oct 4, 2017
968cc44
test: remove messages in assert.strictEqual
Saeed-Navarik Oct 6, 2017
291b9c5
doc: update style guide for markdown extension
Trott Oct 5, 2017
36747ee
test: alter assert.strictEqual to default message
gishmel Oct 6, 2017
f9cb428
test: replacing assert message with template
Oct 6, 2017
a93d3eb
test: improve assert messages
ericljpemberton Oct 6, 2017
5472173
doc: add clearer setup description
craftninja Oct 6, 2017
f954536
test: replace literal with template string
brantphoto Oct 6, 2017
705202d
tools: use template literals
sarahmeyer Oct 6, 2017
fcab2c5
test: removed string from assert message arg
dpaulino Oct 6, 2017
1c1312e
test: changes to use template literal
joanne-jjb Oct 6, 2017
f8bc5ab
test: remove literal error messages
fyesoft Oct 6, 2017
4a664ce
test: changed buffer-zero output
dev-hkim Oct 6, 2017
1690746
test: display better error message for assertion
SgtPooki Oct 6, 2017
ad69a65
test: replaced literals in errors with templates
domrein Oct 6, 2017
699cfa1
doc: fix macosx-firewall suggestion BUILDING
Suraiya-Hameed Oct 6, 2017
23e66ed
test: improve an error message
pomerantsev Oct 6, 2017
d0bd56d
test: remove message from asserts
justin0022 Oct 6, 2017
f831744
test: improve asset msg in test
genewoo Oct 6, 2017
4243903
test: replace string concatenation with template
robtpaton Oct 6, 2017
bce1f38
test: add NODE_UNIQUE_ID value to err message
danielelisi Oct 6, 2017
cd57d2d
test: replace error msg w/ template literal
sashimii Oct 6, 2017
40a98d6
test: assert.strictEqual using template literals
jmcgui05 Oct 9, 2017
6eb88a4
test: updated error message
craftninja Oct 6, 2017
342ac9f
test: cleanup test-buffer-sharedarraybuffer
RafLeszczynski Oct 6, 2017
ab7f43a
test: include expected result in error messages
keywordnew Oct 6, 2017
15ae5a4
tools: replace concat with template literals
Oct 6, 2017
da160cf
doc: mention collaboration summit in onboarding.md
joyeecheung Oct 8, 2017
c64603f
doc: add kfarnung to collaborators
kfarnung Oct 9, 2017
58509ec
test: clarify assert messages in crypto tests
cpandrews8 Oct 6, 2017
3ad6a9d
test: remove assert message
johenry Oct 6, 2017
2409db6
tools: replace concatenation with string templates
Ethan-Arrowood Oct 6, 2017
cdba989
src: replace manual memory mgmt with std::string
bnoordhuis Oct 5, 2017
88b9572
tty: require readline at top of file
bengl Sep 28, 2017
1fdbaed
test: begin normalizing fixtures use
jasnell Jul 17, 2017
f1eda4a
doc: fix external links with 404 status
vsemozhetbyt Oct 18, 2017
1898779
test: move test-cluster-debug-port to sequential
Oleksandr-Kushchak-i2 Oct 18, 2017
252d08a
build: use generic names for linting tasks
seishun Sep 8, 2017
6e06d0e
doc: add callback function signatures in fs.md
matejkrajcovic Jun 2, 2017
37b9372
doc: fix types and description for dns.resolveTxt
tniessen Sep 19, 2017
e0c4f0b
test,process: run 'abort' suite on Windows
refack Aug 28, 2017
b0fadbe
doc: fix typo in zlib.md
lpinca Oct 25, 2017
8386ce7
deps: upgrade openssl sources to 1.0.2m
shigeki Nov 2, 2017
265d948
deps: copy all openssl header files to include dir
shigeki Nov 2, 2017
7b93a2f
deps: fix openssl assembly error on ia32 win32
indutny Jan 8, 2014
ef57db8
deps: fix asm build error of openssl in x86_win32
Feb 13, 2015
880fba9
openssl: fix keypress requirement in apps on win32
Feb 17, 2015
5da4ceb
deps: add -no_rand_screen to openssl s_client
May 27, 2015
748d3e5
deps: update openssl asm and asm_obsolete files
shigeki Nov 2, 2017
0f3901a
doc: standardize function param/object prop style
gibfahn Jun 18, 2017
a776639
doc: add 9.x to version picker and mark 8.x as LTS
Nov 1, 2017
b98fa82
deps: cherry-pick e7f4e9e from upstream libuv
bzoz Nov 3, 2017
c6a2ec5
2017-11-07, Version 6.12.0 'Boron' (LTS)
MylesBorins Oct 17, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
doc: edit COLLABORATORS_GUIDE.md for readability
Changes include:

* add words-as-words italics
* remove scare quotes and excessive italics-for-emphasis
* change "is considered to be" and similar to "is"
* change "is X and not not-X" formulations to just "is X"
* change "any and all" to "all"
* remove "sky is blue" paragraph about breaking changes
* general reduction in wordiness

PR-URL: #15629
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
  • Loading branch information
Trott authored and MylesBorins committed Oct 25, 2017
commit e865fcbb0796912db1749bbd6b79f3bac8f0cf6d
111 changes: 50 additions & 61 deletions COLLABORATOR_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,44 +117,39 @@ level of V8 within Node.js is updated or new patches are floated on V8.

Due to the nature of the JavaScript language, it can often be difficult to
establish a clear distinction between which parts of the Node.js implementation
represent the "public" API Node.js users should assume to be stable and which
are considered part of the "internal" implementation detail of Node.js itself.
A general rule of thumb has been to base the determination off what
functionality is actually *documented* in the official Node.js API
documentation. However, it has been repeatedly demonstrated that either the
documentation does not completely cover implemented behavior or that Node.js
users have come to rely heavily on undocumented aspects of the Node.js
implementation.

While there are numerous exceptions, the following general rules should be
followed to determine which aspects of the Node.js API are considered
"internal":

- Any and all functionality exposed via `process.binding(...)` is considered to
be internal and *not* part of the Node.js Public API.
- Any and all functionality implemented in `lib/internal/**/*.js` that is not
re-exported by code in `lib/*.js`, or is not documented as part of the
Node.js Public API, is considered to be internal.
- Any object property or method whose key is a non-exported `Symbol` is
considered to be an internal property.
- Any object property or method whose key begins with the underscore `_` prefix,
and is not documented as part of the Node.js Public API, is considered to be
an internal property.
represent the public API Node.js users should assume to be stable and which
are part of the internal implementation details of Node.js itself. A rule of
thumb is to base the determination off what functionality is actually
documented in the official Node.js API documentation. However, it has been
repeatedly demonstrated that either the documentation does not completely cover
implemented behavior or that Node.js users have come to rely heavily on
undocumented aspects of the Node.js implementation.

The following general rules should be followed to determine which aspects of the
Node.js API are internal:

- All functionality exposed via `process.binding(...)` is internal.
- All functionality implemented in `lib/internal/**/*.js` is internal unless it
is re-exported by code in `lib/*.js` or documented as part of the Node.js
Public API.
- Any object property or method whose key is a non-exported `Symbol` is an
internal property.
- Any object property or method whose key begins with the underscore `_` prefix
is internal unless it is documented as part of the Node.js Public API.
- Any object, property, method, argument, behavior, or event not documented in
the Node.js documentation is considered to be internal.
the Node.js documentation is internal.
- Any native C/C++ APIs/ABIs exported by the Node.js `*.h` header files that
are hidden behind the `NODE_WANT_INTERNALS` flag are considered to be
internal.
are hidden behind the `NODE_WANT_INTERNALS` flag are internal.

Exception to each of these points can be made if use or behavior of a given
internal API can be demonstrated to be sufficiently relied upon by the Node.js
ecosystem such that any changes would cause too much breakage. The threshold
for what qualifies as "too much breakage" is to be decided on a case-by-case
for what qualifies as too much breakage is to be decided on a case-by-case
basis by the TSC.

If it is determined that a currently undocumented object, property, method,
argument, or event *should* be documented, then a pull request adding the
documentation is required in order for it to be considered part of the "public"
documentation is required in order for it to be considered part of the public
API.

Making a determination about whether something *should* be documented can be
Expand Down Expand Up @@ -226,17 +221,12 @@ handling may have been made. Additional CI testing may be required.

#### When breaking changes actually break things

Breaking changes are difficult primarily because they change the fundamental
assumptions a user of Node.js has when writing their code and can cause
existing code to stop functioning as expected -- costing developers and users
time and energy to fix.

Because breaking (semver-major) changes are permitted to land in master at any
time, it should be *understood and expected* that at least some subset of the
user ecosystem *may* be adversely affected *in the short term* when attempting
to build and use Node.js directly from master. This potential instability is
precisely why Node.js offers distinct Current and LTS release streams that
offer explicit stability guarantees.
Because breaking (semver-major) changes are permitted to land on the master
branch at any time, at least some subset of the user ecosystem may be adversely
affected in the short term when attempting to build and use Node.js directly
from the master branch. This potential instability is why Node.js offers
distinct Current and LTS release streams that offer explicit stability
guarantees.

Specifically:

Expand All @@ -249,7 +239,7 @@ Specifically:
attempt to fix the issue will be made before the next release; If no fix is
provided then the commit will be reverted.

When any change is landed in master, and it is determined that the such
When any changes are landed on the master branch and it is determined that the
changes *do* break existing code, a decision may be made to revert those
changes either temporarily or permanently. However, the decision to revert or
not can often be based on many complex factors that are not easily codified. It
Expand Down Expand Up @@ -291,18 +281,18 @@ recommended but not required.

### Deprecations

Deprecation refers to the identification of Public APIs that should no longer
_Deprecation_ refers to the identification of Public APIs that should no longer
be used and that may be removed or modified in non-backwards compatible ways in
a future major release of Node.js. Deprecation *may* be used with internal APIs
if there is expected impact on the user community.
a future major release of Node.js. Deprecation may be used with internal APIs if
there is expected impact on the user community.

Node.js uses three fundamental Deprecation levels:
Node.js uses three Deprecation levels:

* *Documentation-Only Deprecation* refers to elements of the Public API that are
being staged for deprecation in a future Node.js major release. An explicit
notice indicating the deprecated status is added to the API documentation
*but no functional changes are implemented in the code*. There will be no
runtime deprecation warning emitted for such deprecations.
but no functional changes are implemented in the code. There will be no
runtime deprecation warnings emitted for such deprecations.

* *Runtime Deprecation* refers to the use of process warnings emitted at
runtime the first time that a deprecated API is used. A command-line
Expand All @@ -314,12 +304,11 @@ Node.js uses three fundamental Deprecation levels:
* *End-of-life* refers to APIs that have gone through Runtime Deprecation and
are ready to be removed from Node.js entirely.

Documentation-Only Deprecations *may* be handled as semver-minor or
semver-major changes. Such deprecations have no impact on the successful
operation of running code and therefore should not be viewed as breaking
changes.
Documentation-Only Deprecations may be handled as semver-minor or semver-major
changes. Such deprecations have no impact on the successful operation of running
code and therefore should not be viewed as breaking changes.

Runtime Deprecations and End-of-life APIs (internal or public) *must* be
Runtime Deprecations and End-of-life APIs (internal or public) must be
handled as semver-major changes unless there is TSC consensus to land the
deprecation as a semver-minor.

Expand All @@ -332,7 +321,7 @@ the documentation for the assigned deprecation identifier must remain in the
Node.js API documentation.

<a id="deprecation-cycle"></a>
A "Deprecation cycle" is one full Node.js major release during which an API
A _Deprecation cycle_ is one full Node.js major release during which an API
has been in one of the three Deprecation levels. (Note that Documentation-Only
Deprecations may land in a Node.js minor release but must not be upgraded to
a Runtime Deprecation until the next major release.)
Expand All @@ -341,10 +330,10 @@ No API can be moved to End-of-life without first having gone through a
Runtime Deprecation cycle.

A best effort will be made to communicate pending deprecations and associated
mitigations with the ecosystem as soon as possible (preferably *before* the pull
request adding the deprecation lands in master). All deprecations included in
a Node.js release should be listed prominently in the "Notable Changes" section
of the release notes.
mitigations with the ecosystem as soon as possible (preferably before the pull
request adding the deprecation lands on the master branch). All deprecations
included in a Node.js release should be listed prominently in the "Notable
Changes" section of the release notes.

### Involving the TSC

Expand All @@ -369,8 +358,8 @@ The TSC should serve as the final arbiter where required.
* The rebase method changes the author.
* The squash & merge method has been known to add metadata to the
commit title.
* If more than one author has contributed to the PR, only the
latest author will be considered during the squashing.
* If more than one author has contributed to the PR, keep the most recent
author when squashing.

Always modify the original commit message to include additional meta
information regarding the change process:
Expand Down Expand Up @@ -622,10 +611,10 @@ TSC for further discussion.
#### How are LTS Branches Managed?

There are currently two LTS branches: `v6.x` and `v4.x`. Each of these is paired
with a "staging" branch: `v6.x-staging` and `v4.x-staging`.
with a staging branch: `v6.x-staging` and `v4.x-staging`.

As commits land in `master`, they are cherry-picked back to each staging
branch as appropriate. If the commit applies only to the LTS branch, the
As commits land on the master branch, they are cherry-picked back to each
staging branch as appropriate. If the commit applies only to the LTS branch, the
PR must be opened against the *staging* branch. Commits are selectively
pulled from the staging branch into the LTS branch only when a release is
being prepared and may be pulled into the LTS branch in a different order
Expand Down