Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v11.13.0 release proposal #26949

Merged
merged 164 commits into from
Mar 28, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
164 commits
Select commit Hold shift + click to select a range
df55731
events: add once method to use promises with EventEmitter
mcollina Feb 13, 2019
03dba72
process: call `prepareMainThreadExecution` in `node inspect`
joyeecheung Mar 6, 2019
cc606e2
process: set up process warning handler in pre-execution
joyeecheung Mar 6, 2019
4200fc3
process: handle process.env.NODE_V8_COVERAGE in pre-execution
joyeecheung Mar 6, 2019
cf1117a
process: move deprecation warning setup for --debug* args
refack Mar 14, 2019
b75af15
lib: move format and formatWithOptions into internal/util/inspect.js
joyeecheung Mar 6, 2019
b0afac2
process: call prepareMainThreadExecution in all main thread scripts
joyeecheung Mar 6, 2019
9ce08c8
lib: explicitly initialize debuglog during bootstrap
joyeecheung Mar 6, 2019
070faf0
tty: add hasColors function
BridgeAR Jan 19, 2019
e531258
test: make cctest full Node.js environment
addaleax Mar 5, 2019
a13f0a6
src: add public API for linked bindings
addaleax Mar 5, 2019
d0801a1
src: deprecate AddPromiseHook()
addaleax Mar 8, 2019
9092e12
v8: integrate node-heapdump into core
jasnell Mar 7, 2019
892282d
test: whitelist the expected modules in test-bootstrap-modules.js
richardlau Mar 8, 2019
058cf43
doc: edit "Technical How-To" section of guide
Trott Mar 11, 2019
3b471db
doc: add Gireesh to TSC
Trott Mar 14, 2019
1b45534
report: remove unnecessary return in setters
Trott Mar 12, 2019
24e96b2
net: some scattered cleanup
oyyd Mar 13, 2019
c96946d
http: delay ret declaration in method _flushOutput
gengjiawen Mar 10, 2019
e8412bc
repl: remove redundant initialization
gengjiawen Mar 10, 2019
1c1305d
lib: make lowerProto scope more clear
gengjiawen Mar 10, 2019
925b645
src: remove usage of deprecated IsNearDeath
targos Mar 13, 2019
e3bae20
report: use DiagnosticFilename for default filename
richardlau Mar 14, 2019
5c41876
report: use LocalTime from DiagnosticFilename
richardlau Mar 14, 2019
e8e8eac
doc: update copy/paste error message in Troubleshooting
Trott Mar 14, 2019
cfa152b
doc: simplify Troubleshooting text
Trott Mar 14, 2019
6c90b7f
src: shutdown node in-flight
gireeshpunathil Jun 12, 2018
875ddcb
test: remove unnecessary semicolon after macro
hashseed Mar 12, 2019
72cda51
tools: tidy function arguments in eslint rules
Trott Mar 14, 2019
00a6f76
test,console: add testing for monkeypatching of console stdio
Trott Mar 10, 2019
74c6f57
crypto: expose KeyObject class
panva Mar 11, 2019
1f0a283
doc: note about DNS ANY queries / RFC 8482
tlhunter Mar 15, 2019
c65ff3d
test: fix test-heapdump-worker
addaleax Mar 17, 2019
51b8a89
src: inline macro DISALLOW_COPY_AND_ASSIGN
gengjiawen Mar 13, 2019
3637e71
src: use deleted function instead of private function in class AsyncWrap
gengjiawen Mar 16, 2019
01778f5
report: tidy up included headers
richardlau Mar 16, 2019
e39a468
child_process: ensure message sanity at source
gireeshpunathil Dec 2, 2018
2d2b6a8
src: remove unused variable in class InspectorSocketServer
gengjiawen Mar 13, 2019
b38cf49
doc: make RFC references consistent
Trott Mar 18, 2019
1385b29
tools: update lint-md.js to lint rfc name format
Trott Mar 18, 2019
0c06631
doc: simplify force-push guidelines
Trott Mar 16, 2019
30d7f67
tools: update ESLint to 5.15.2
cjihrig Mar 15, 2019
15ec381
src: use EVPKeyPointer in more places
bnoordhuis Mar 13, 2019
6744b8c
doc: add ZYSzys to collaborators
ZYSzys Mar 18, 2019
eafbfad
src: elevate v8 namespaces for PropertyAttribute
gengjiawen Mar 15, 2019
8ba0da5
src,win: fix usage of deprecated v8::Object::Set
targos Mar 18, 2019
31995e4
test: fix intrinsics test
BridgeAR Mar 14, 2019
d075814
src: replace heap_utils.createHeapSnapshot with v8.getHeapSnapshot
joyeecheung Mar 15, 2019
2d68988
test: update test for libuv update
cjihrig Mar 16, 2019
54ffe61
deps: upgrade to libuv 1.27.0
cjihrig Mar 16, 2019
0303aba
doc: update spawnSync() status value possibilities
Trott Mar 15, 2019
ea42514
test: add fs.watchFile() + worker.terminate() test
addaleax Jun 6, 2018
9c83002
test: use EC cert property now that it exists
sam-github Mar 11, 2019
a44f98e
lib: run prepareMainThreadExecution for third_party_main
addaleax Mar 15, 2019
148c2ca
doc: add Note of options.stdio into child_process
koh110 Mar 12, 2019
1073e54
http2: delete unused enum in node_http2.h
gengjiawen Mar 16, 2019
8cafd83
tty: add NO_COLOR and FORCE_COLOR support
BridgeAR Mar 7, 2019
0e4ae00
benchmark: use gfm for clarity
gengjiawen Mar 17, 2019
8de9fe9
doc: document `error` event is optionally emitted after `.destroy()`
tadjik1 Mar 11, 2019
0bd82c9
perf_hooks: reset prev_ before starting ELD timer
Flarna Mar 15, 2019
bc9f6d8
doc: condense LTS material in Collaborator Guide
Trott Mar 17, 2019
fc0aa50
doc: remove How Does LTS Work section from Collaborator Guide
Trott Mar 17, 2019
5b8eae4
report: remove duplicate TIME_TYPE
cjihrig Mar 16, 2019
7ebd6bd
test: optimize test-http2-large-file
Trott Mar 18, 2019
c535e48
test: refresh tmpdir in child-process-server-close
lpinca Mar 18, 2019
560ff91
doc: remove discord community
aymen94 Mar 20, 2019
3ab438a
benchmark: replace deprecated and eliminate var in buffer-from.js
gengjiawen Mar 11, 2019
cc76f3f
lib: use Array#includes instead of Array#indexOf
starkwang Mar 18, 2019
e916a2a
lib: remove usage of require('util')
dnlup Mar 19, 2019
1458711
test: remove internal error tests
BridgeAR Mar 18, 2019
bff5d30
lib: move extra properties into error creation
BridgeAR Mar 18, 2019
c7b34cd
doc: fix comma of the list in worker_threads.md
nodejh Mar 21, 2019
e49cd40
console: fix trace function
BridgeAR Mar 19, 2019
7022609
events: load internal/errors eagerly
joyeecheung Mar 19, 2019
de353b7
perf_hooks: load internal/errors eagerly
joyeecheung Mar 19, 2019
db7c4ac
assert: reduce internal usage of public require of util
sasurau4 Mar 19, 2019
ad5d8e3
src: refactor thread stopping mechanism
addaleax Mar 18, 2019
14c3af7
src: only open HandleScope when necessary
addaleax Mar 18, 2019
f597b37
src: do not make `Resize(0)`’d buffers base `nullptr`
addaleax Mar 18, 2019
b552139
stream: reduce internal usage of public require of util
BeniCheni Mar 16, 2019
26361d1
src: add fast path for equal size to `Reallocate()`
addaleax Mar 10, 2019
4163864
build: use Xenial and gcc 6 on Travis
richardlau Mar 17, 2019
b480c79
build: temporarily don't run tests on Travis
richardlau Mar 22, 2019
509ad40
build: restore running tests on Travis
richardlau Mar 22, 2019
6911678
src: use explicit casts to silence conversion warnings
zbjornson Mar 19, 2019
6874288
test: fix test-console-stdio-setters to test setters
Trott Mar 20, 2019
79d6895
src: initialize worker's stack_base_ field
cjihrig Mar 18, 2019
04e9d5a
repl: remove usage of require('util') in `repl/history`
dnlup Mar 20, 2019
41bd7a6
test: complete console.assert() coverage
Trott Mar 20, 2019
8ca7d56
test: fix pummel/test-tls-session-timeout
Trott Mar 22, 2019
963d7d1
test: move pummel tls test to sequential
Trott Mar 22, 2019
de50346
src: apply clang-tidy performance-faster-string-find
gengjiawen Mar 20, 2019
6de2437
src: apply clang-tidy readability-delete-null-pointer
gengjiawen Mar 20, 2019
c127bec
policy: reduce internal usage of public util for manifest.js
Naturalclar Mar 21, 2019
dae1e30
dgram: remove usage of public require('util')
dnlup Mar 21, 2019
08383a7
tools: update ESLint to 5.15.3
cjihrig Mar 18, 2019
41761cc
process: load internal/async_hooks before inspector hooks registration
joyeecheung Mar 22, 2019
7e072c8
doc: change error message to 'not defined'
MohammedEssehemy Mar 22, 2019
352c31c
test: strengthen test-worker-prof
gireeshpunathil Mar 12, 2019
78e6ec7
doc: edit LTS material in Collaborator Guide
Trott Mar 21, 2019
57d3ba1
test: refactor test-dgram-broadcast-multi-process
Trott Mar 21, 2019
a2d2756
assert: reduce internal usage of public require of util
toshi1127 Mar 18, 2019
0f9a779
trace_events: remove usage of require('util')
dnlup Mar 20, 2019
fbe6d30
module: remove usage of require('util')
dnlup Mar 20, 2019
15af519
http2: reduce usage of require('util')
toshi1127 Mar 19, 2019
04c7db3
url: remove usage of require('util')
toshi1127 Mar 20, 2019
4919e4b
test: move test-https-connect-localport to sequential
Trott Mar 23, 2019
011c205
test: use common.PORT instead of hardcoded number
Trott Mar 23, 2019
838fb95
test: replace localhost IP with 'localhost' for TLS conformity
Trott Mar 23, 2019
3cae010
test: refactor test-https-connect-localport
Trott Mar 23, 2019
f263f98
console: remove unreachable code
Trott Mar 22, 2019
5d992f5
test: delete pummel/test-dtrace-jsstack
Trott Mar 22, 2019
977f5ac
doc: minor edit to worker_threads.md
Trott Mar 22, 2019
64a9229
lib: remove usage of require('util')
dnlup Mar 19, 2019
bf2b57e
lib: remove usage of require('util')
dnlup Mar 19, 2019
83f6ec8
tty: remove util.inherits usage
nissy-dev Mar 20, 2019
414d6f5
module: remove usage of require('util') in `cjs/loader.js`
dnlup Mar 21, 2019
037e3fd
module: remove usage of require('util') in `esm/loader.js`
dnlup Mar 20, 2019
4cafd74
module: remove usage of require('util') in `esm/translators.js`
dnlup Mar 21, 2019
5e06c3b
net: remove usage of require('util')
dnlup Mar 21, 2019
dd2f2cc
process: remove usage of require('util') in `per_thread.js`
dnlup Mar 20, 2019
a20bf75
Revert "net: remove usage of require('util')"
Trott Mar 25, 2019
54753f2
src: micro-optimize ALPN negotiation
bnoordhuis Mar 21, 2019
220f67c
src: guard exit label when inspector disabled
danbev Mar 20, 2019
8b65aa7
process: make stdout and stderr emit 'close' on destroy
mcollina Mar 15, 2019
fef2a54
tools: enable getter-return lint rule
cjihrig Mar 12, 2019
5f3b850
lib: reduce usage of require('util')
dnlup Mar 19, 2019
14cc4f2
doc: add option to require 'process' to api docs
dkundel Mar 20, 2019
9a5c149
errors: remove usage of require('util')
dnlup Mar 22, 2019
13eb1d8
src: store onread callback in internal field
addaleax Mar 19, 2019
d80cd50
tools: remove eslint rule no-let-in-for-declaration
gengjiawen Mar 17, 2019
3574b62
inspector: always set process.binding('inspector').callAndPauseOnStart
joyeecheung Mar 20, 2019
3d9839b
src: add include guard for trace_event_common.h
gengjiawen Mar 24, 2019
92b666a
tools: windows_boxstarter "choco install python -y" for Python 3
cclauss Mar 4, 2019
a545cfe
doc: edit "How Can I Help?" in Collaborator Guide
Trott Mar 24, 2019
4af9ff0
src: move AsyncHooks out of Environment
joyeecheung Mar 20, 2019
6de1220
src: move AsyncCallbackScope out of Environment
joyeecheung Mar 20, 2019
495e5e9
src: move ImmediateInfo out of Environment
joyeecheung Mar 20, 2019
bc69a81
src: move TickInfo out of Environment
joyeecheung Mar 20, 2019
7e7f077
src: move TrackingTraceStateObserver out of Environment
joyeecheung Mar 20, 2019
f50c9c6
src: move ShouldNotAbortOnUncaughtScope out of Environment
joyeecheung Mar 20, 2019
119f83b
doc: mark settings as optional and add callback
BridgeAR Mar 24, 2019
0b2f900
stream: make sure 'readable' is emitted before ending the stream
mcollina Feb 11, 2019
249bf50
stream: fix regression introduced in #26059
mcollina Mar 13, 2019
be3ea2a
process: handle node --debug deprecation in pre-execution
joyeecheung Mar 13, 2019
ed7599b
crypto: allow deriving public from private keys
tniessen Jan 26, 2019
f2a07df
crypto: improve error handling in parseKeyEncoding
tniessen Mar 5, 2019
e044563
src,lib: allow running multiple per-context files
addaleax Mar 7, 2019
1e669b2
src,lib: make DOMException available in all Contexts
addaleax Mar 7, 2019
3c6f12c
worker: implement worker.moveMessagePortToContext()
addaleax Sep 9, 2017
235bb73
module: do not share the internal require function with public loaders
joyeecheung Mar 9, 2019
9ef0a29
test: refactor trace event category tests
joyeecheung Mar 12, 2019
1481e5b
process: set the trace category update handler during bootstrap
joyeecheung Mar 12, 2019
255de69
process: refactor global.queueMicrotask()
joyeecheung Mar 8, 2019
e6367c2
timers: refactor to use module.exports
joyeecheung Mar 11, 2019
ebb0c2a
timers: reduce usage of public util
joyeecheung Mar 11, 2019
1f4a5bc
timers: refactor timer callback initialization
joyeecheung Mar 11, 2019
cc4a25a
lib: lazy load `v8` in error-serdes
richardlau Mar 15, 2019
57d302b
process: delay creation of process.env after bootstrap/node.js
joyeecheung Mar 6, 2019
4314dbf
worker: create per-Environment message port after bootstrap
joyeecheung Mar 11, 2019
899de0a
process: check no handle or request is active after bootstrap
joyeecheung Mar 11, 2019
3ec652a
timers: fix refresh inside callback
apapirovski Mar 17, 2019
a640834
timers: move big impl comment to /internal/
Fishrock123 Mar 18, 2019
29867f3
2019-03-28, Version 11.13.0 (Current)
targos Mar 27, 2019
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
1 change: 1 addition & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ module.exports = {
'func-call-spacing': 'error',
'func-name-matching': 'error',
'func-style': ['error', 'declaration', { allowArrowFunctions: true }],
'getter-return': 'error',
'indent': ['error', 2, {
ArrayExpression: 'first',
CallExpression: { arguments: 'first' },
Expand Down
5 changes: 3 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
language: cpp
cache: ccache
os: linux
dist: xenial
matrix:
include:
- name: "First commit message adheres to guidelines at <a href=\"https://goo.gl/p2fr5Q\">https://goo.gl/p2fr5Q</a>"
Expand All @@ -24,9 +25,9 @@ matrix:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
- g++-6
install:
- export CC='ccache gcc-4.9' CXX='ccache g++-4.9' JOBS=2
- export CC='ccache gcc-6' CXX='ccache g++-6' JOBS=2
- ./configure
- make -j2 V=
script:
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V11.md#11.12.0">11.12.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V11.md#11.13.0">11.13.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.12.0">11.12.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.11.0">11.11.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.10.1">11.10.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.10.0">11.10.0</a><br/>
Expand Down
198 changes: 77 additions & 121 deletions COLLABORATOR_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -464,18 +464,19 @@ Apply external patches:
$ curl -L https://github.com/nodejs/node/pull/xxx.patch | git am --whitespace=fix
```

If the merge fails even though recent CI runs were successful, then a 3-way
merge may be required. In this case try:
If the merge fails even though recent CI runs were successful, try a 3-way
merge:

```text
$ git am --abort
$ curl -L https://github.com/nodejs/node/pull/xxx.patch | git am -3 --whitespace=fix
```
If the 3-way merge succeeds you can proceed, but make sure to check the changes
against the original PR carefully and build/test on at least one platform
before landing. If the 3-way merge fails, then it is most likely that a
conflicting PR has landed since the CI run and you will have to ask the author
to rebase.

If the 3-way merge succeeds, check the results against the original pull
request. Build and test on at least one platform before landing.

If the 3-way merge fails, then it is most likely that a conflicting pull request
has landed since the CI run. You will have to ask the author to rebase.

Check and re-review the changes:

Expand Down Expand Up @@ -541,52 +542,46 @@ reword 51759dc crypto: feature B
fixup 7d6f433 test for feature B
```

Save the file and close the editor. You'll be asked to enter a new
commit message for that commit. This is a good moment to fix incorrect
commit logs, ensure that they are properly formatted, and add
`Reviewed-By` lines.
Save the file and close the editor. When prompted, enter a new commit message
for that commit. This is an opportunity to fix commit messages.

* The commit message text must conform to the [commit message guidelines][].

<a name="metadata"></a>
* Modify the original commit message to include additional metadata regarding
the change process. (The [`git node metadata`][git-node-metadata] command
can generate the metadata for you.)

* Required: A `PR-URL:` line that references the *full* GitHub URL of the
original pull request being merged so it's easy to trace a commit back to
the conversation that led up to that change.
* Optional: A `Fixes: X` line, where _X_ either includes the *full* GitHub URL
for an issue, and/or the hash and commit message if the commit fixes
a bug in a previous commit. Multiple `Fixes:` lines may be added if
appropriate.
* Change the original commit message to include metadata. (The
[`git node metadata`][git-node-metadata] command can generate the metadata
for you.)

* Required: A `PR-URL:` line that references the full GitHub URL of the pull
request. This makes it easy to trace a commit back to the conversation that
led up to that change.
* Optional: A `Fixes: X` line, where _X_ is the full GitHub URL for an
issue. A commit message may include more than one `Fixes:` lines.
* Optional: One or more `Refs:` lines referencing a URL for any relevant
background.
* Required: A `Reviewed-By: Name <email>` line for yourself and any
other Collaborators who have reviewed the change.
* Required: A `Reviewed-By: Name <email>` line for each Collaborator who
reviewed the change.
* Useful for @mentions / contact list if something goes wrong in the PR.
* Protects against the assumption that GitHub will be around forever.

Run tests (`make -j4 test` or `vcbuild test`). Even though there was a
successful continuous integration run, other changes may have landed on master
since then, so running the tests one last time locally is a good practice.
Other changes may have landed on master since the successful CI run. As a
precaution, run tests (`make -j4 test` or `vcbuild test`).

Validate that the commit message is properly formatted using
Confirm that the commit message format is correct using
[core-validate-commit](https://github.com/evanlucas/core-validate-commit).

```text
$ git rev-list upstream/master...HEAD | xargs core-validate-commit
```

Optional: When landing your own commits, force push the amended commit to the
branch you used to open the pull request. If your branch is called `bugfix`,
then the command would be `git push --force-with-lease origin master:bugfix`.
Don't manually close the PR, GitHub will close it automatically later after you
push it upstream, and will mark it with the purple merged status rather than the
red closed status. If you close the PR before GitHub adjusts its status, it will
show up as a 0 commit PR and the changed file history will be empty. Also if you
push upstream before you push to your branch, GitHub will close the issue with
red status so the order of operations is important.
Optional: For your own commits, force push the amended commit to the pull
request branch. If your branch name is `bugfix`, then: `git push
--force-with-lease origin master:bugfix`. Don't close the PR. It will close
after you push it upstream. It will have the purple merged status rather than
the red closed status. If you close the PR before GitHub adjusts its status, it
will show up as a 0 commit PR with no changed files. The order of operations is
important. If you push upstream before you push to your branch, GitHub will
close the issue with the red closed status.

Time to push it:

Expand All @@ -597,7 +592,7 @@ $ git push upstream master
Close the pull request with a "Landed in `<commit hash>`" comment. If
your pull request shows the purple merged status then you should still
add the "Landed in <commit hash>..<commit hash>" comment if you added
multiple commits.
more than one commit.

### Troubleshooting

Expand All @@ -608,17 +603,15 @@ like this:
To https://github.com/nodejs/node
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/nodejs/node'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
```

That means a commit has landed since your last rebase against `upstream/master`.
To fix this, pull with rebase from upstream and run the tests again (to make
sure no interactions between your changes and the new changes cause any
problems), and push again:
To fix this, pull with rebase from upstream, run the tests again, and (if the
tests pass) push again:

```sh
git pull upstream master --rebase
Expand All @@ -631,99 +624,62 @@ git push upstream master
* Ping a TSC member.
* `#node-dev` on freenode
* With `git`, there's a way to override remote trees by force pushing
(`git push -f`). This should generally be seen as forbidden (since
you're rewriting history on a repository other people are working
against) but is allowed for simpler slip-ups such as typos in commit
messages. However, you are only allowed to force push to any Node.js
branch within 10 minutes from your original push. If someone else
pushes to the branch or the 10 minute period passes, consider the
commit final.
* Use `--force-with-lease` to minimize the chance of overwriting
someone else's change.
(`git push -f`). This is generally forbidden as it creates conflicts in other
people's forks. It is permissible for simpler slip-ups such as typos in commit
messages. You are only allowed to force push to any Node.js branch within 10
minutes from your original push. If someone else pushes to the branch or the
10-minute period passes, consider the commit final.
* Use `--force-with-lease` to reduce the chance of overwriting someone else's
change.
* Post to `#node-dev` (IRC) if you force push.

### Long Term Support

#### What is LTS?

Long Term Support (often referred to as *LTS*) guarantees application developers
a 30-month support cycle with specific versions of Node.js.

You can find more information
[in the full release plan](https://github.com/nodejs/Release#release-plan).
Long Term Support (LTS) guarantees 30-month support cycles for specific Node.js
versions. You can find more information
[in the full release plan](https://github.com/nodejs/Release#release-plan). Once
a branch enters LTS, the release plan limits the types of changes permitted in
the branch.

#### How does LTS work?

Once a Current branch enters LTS, changes in that branch are limited to bug
fixes, security updates, possible npm updates, documentation updates, and
certain performance improvements that can be demonstrated to not break existing
applications. Semver-minor changes are only permitted if required for bug fixes
and then only on a case-by-case basis with LTS WG and possibly Technical
Steering Committee (TSC) review. Semver-major changes are permitted only if
required for security-related fixes.
#### How are LTS Branches Managed?

Once a Current branch moves into Maintenance mode, only **critical** bugs,
**critical** security fixes, and documentation updates will be permitted.
Each LTS release has a corresponding branch (v10.x, v8.x, etc.). Each also has a
corresponding staging branch (v10.x-staging, v8.x-staging, etc.).

#### Landing semver-minor commits in LTS
Commits that land on master are cherry-picked to each staging branch as
appropriate. If a change applies only to the LTS branch, open the PR against the
*staging* branch. Commits from the staging branch land on the LTS branch only
when a release is being prepared. They may land on the LTS branch in a different
order than they were in staging.

The default policy is to not land semver-minor or higher commits in any LTS
branch. However, the LTS WG or TSC can evaluate any individual semver-minor
commit and decide whether a special exception ought to be made. It is
expected that such exceptions would be evaluated, in part, on the scope
and impact of the changes on the code, the risk to ecosystem stability
incurred by accepting the change, and the expected benefit that landing the
commit will have for the ecosystem.
Only members of @nodejs/backporters should land commits onto LTS staging
branches.

Any Collaborator who feels a semver-minor commit should be landed in an LTS
branch should attach the `lts-agenda` label to the pull request. The LTS WG
will discuss the issue and, if necessary, will escalate the issue up to the
TSC for further discussion.
#### How can I help?

#### How are LTS Branches Managed?
When you send your pull request, please state if your change is breaking. Also
state if you think your patch is a good candidate for backporting. For more
information on backporting, please see the [backporting guide][].

There are multiple LTS branches, e.g. `v10.x` and `v8.x`. Each of these is
paired with a staging branch: `v10.x-staging` and `v8.x-staging`.
There are several LTS-related labels:

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
than they were landed in staging.
* `lts-watch-` labels are for pull requests to consider for landing in staging
branches. For example, `lts-watch-v10.x` would be for a change
to consider for the `v10.x-staging` branch.

Only the members of the @nodejs/backporters team should land commits onto
LTS staging branches.
* `land-on-` are for pull requests that should land in a future v*.x
release. For example, `land-on-v10.x` would be for a change to land in Node.js
10.x.

#### How can I help?
Any Collaborator can attach these labels to any pull request/issue. As commits
land on the staging branches, the backporter removes the `lts-watch-` label.
Likewise, as commits land in an LTS release, the releaser removes the `land-on-`
label.

When you send your pull request, please include information about whether your
change is breaking. If you think your patch can be backported, please include
that information in the PR thread or your PR description. For more information
on backporting, please see the [backporting guide][].

Several LTS related issue and PR labels have been provided:

* `lts-watch-v10.x` - tells the LTS WG that the issue/PR needs to be
considered for landing in the `v10.x-staging` branch.
* `lts-watch-v8.x` - tells the LTS WG that the issue/PR needs to be
considered for landing in the `v8.x-staging` branch.
* `lts-watch-v6.x` - tells the LTS WG that the issue/PR needs to be
considered for landing in the `v6.x-staging` branch.
* `land-on-v10.x` - tells the release team that the commit should be landed
in a future v10.x release.
* `land-on-v8.x` - tells the release team that the commit should be landed
in a future v8.x release.
* `land-on-v6.x` - tells the release team that the commit should be landed
in a future v6.x release.

Any Collaborator can attach these labels to any PR/issue. As commits are
landed into the staging branches, the `lts-watch-` label will be removed.
Likewise, as commits are landed in a LTS release, the `land-on-` label will
be removed.

Collaborators are encouraged to help the LTS WG by attaching the appropriate
`lts-watch-` label to any PR that may impact an LTS release.
Attach the appropriate `lts-watch-` label to any PR that may impact an LTS
release.

#### How is an LTS release cut?

Expand Down
39 changes: 38 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -634,7 +634,7 @@ The externally maintained libraries used by Node.js are:

- OpenSSL, located at deps/openssl, is licensed as follows:
"""
Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved.
Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
Expand Down Expand Up @@ -1445,3 +1445,40 @@ The externally maintained libraries used by Node.js are:
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
"""

- node-heapdump, located at src/heap_utils.cc, is licensed as follows:
"""
ISC License

Copyright (c) 2012, Ben Noordhuis <info@bnoordhuis.nl>

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

=== src/compat.h src/compat-inl.h ===

ISC License

Copyright (c) 2014, StrongLoop Inc.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
"""
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ resources:

* [Questions tagged 'node.js' on StackOverflow][]
* [#node.js channel on chat.freenode.net][]
* [Node.js Discord Community](https://discordapp.com/invite/v7rrPdE)
* [Node.js Slack Community](https://node-js.slack.com/)
* To register: [nodeslackers.com](http://www.nodeslackers.com/)

Expand Down Expand Up @@ -184,6 +183,8 @@ For information about the governance of the Node.js project, see
**Jeremiah Senkpiel** &lt;fishrock123@rocketmail.com&gt;
* [gabrielschulhof](https://github.com/gabrielschulhof) -
**Gabriel Schulhof** &lt;gabriel.schulhof@intel.com&gt;
* [gireeshpunathil](https://github.com/gireeshpunathil) -
**Gireesh Punathil** &lt;gpunathi@in.ibm.com&gt; (he/him)
* [joyeecheung](https://github.com/joyeecheung) -
**Joyee Cheung** &lt;joyeec9h3@gmail.com&gt; (she/her)
* [mcollina](https://github.com/mcollina) -
Expand Down Expand Up @@ -486,6 +487,8 @@ For information about the governance of the Node.js project, see
**Yorkie Liu** &lt;yorkiefixer@gmail.com&gt;
* [yosuke-furukawa](https://github.com/yosuke-furukawa) -
**Yosuke Furukawa** &lt;yosuke.furukawa@gmail.com&gt;
* [ZYSzys](https://github.com/ZYSzys) -
**Yongsheng Zhang** &lt;zyszys98@gmail.com&gt; (he/him)

### Collaborator Emeriti

Expand Down
Loading