Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
98ac3c4
build: label PRs with GitHub Action instead of nodejs-github-bot
phillipj Mar 6, 2021
499e56b
build: fix label-pr workflow
targos Apr 25, 2021
93a1a3c
deps: V8: cherry-pick 530080c44af2
May 3, 2021
bbceab4
deps: V8: backport 1b1eda0876aa
targos Jul 3, 2021
2b54156
deps: V8: cherry-pick 92e6d3317082
targos Jul 3, 2021
492b0d6
deps: V8: cherry-pick e6f62a41f5ee
targos Jul 3, 2021
a73275f
deps: V8: cherry-pick 7b3332844212
targos Jul 3, 2021
add7b5b
deps: V8: cherry-pick cc641f6be756
targos Jul 3, 2021
f4377b1
deps: V8: cherry-pick 7c182bd65f42
targos Jul 3, 2021
8046daf
deps: V8: cherry-pick 0b3a4ecf7083
targos Jul 7, 2021
15b91fa
deps: V8: backport 895949419186
targos Jul 7, 2021
906b43e
deps: V8: update build dependencies
targos Jul 3, 2021
7d5a2f9
deps: update to [email protected]
guybedford Mar 30, 2021
b3c698a
deps: update to [email protected]
guybedford Apr 28, 2021
30ce0e6
src: update cares_wrap OpenBSD defines
addaleax May 13, 2021
f552c45
src: move CHECK in AddIsolateFinishedCallback
indutny Mar 31, 2021
e459c79
deps: V8: cherry-pick 035c305ce776
targos May 1, 2021
39e9cd5
deps: restore minimum ICU version to 65
richardlau Jun 17, 2021
e11a862
deps: update to c-ares 1.17.1
lxdicted Nov 21, 2020
b263f25
http2: on receiving rst_stream with cancel code add it to pending list
kumarak Jul 26, 2021
ddc8dde
deps: upgrade npm to 6.14.14
darcyclarke Jul 27, 2021
3e4bc1b
module: fix legacy `node` specifier resolution to resolve `"main"` field
aduh95 Jun 9, 2021
2fdf989
2021-07-29, Version 12.22.4 'Erbium' (LTS)
richardlau Jul 23, 2021
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
Next Next commit
build: label PRs with GitHub Action instead of nodejs-github-bot
Main goal of using a GitHub Action for labelling PRs has been to move
the mapping between files changed -> label into a configuration file
local to the nodejs/node repository.

Previously any changes to that mapping meant having to grasp the
nodejs/github-bot project, open a PR with the neccessary changes, get
approval from its maintainers before those changes finally got pushed
to production.

The logic involved in using the file paths / label configuration and
resolving the labels to be applied, has been moved into a custom GitHub
Action project: nodejs/node-pr-labeler.

Aside from removing the external dependency the nodejs-github-bot is in
practise, it also reduces the bar for contributors since the resulting
project is a lot smaller and less complex than nodejs/github-bot.

PR-URL: #38301
Fixes: nodejs/github-bot#294
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
  • Loading branch information
phillipj authored and richardlau committed Jul 23, 2021
commit 98ac3c4108ffb66faec2b6b1b02da4ad5e5aba4b
195 changes: 195 additions & 0 deletions .github/label-pr-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
## Order of entries in this map *does* matter for the resolved labels
## earlier entries override later entries
subSystemLabels:
# src subsystems
/^src\/async-wrap/: c++, async_wrap
/^src\/(?:base64|node_buffer|string_)/: c++, buffer
/^src\/cares/: c++, cares
/^src\/(?:process_wrap|spawn_)/: c++, child_process
/^src\/(?:node_)?crypto/: c++, crypto
/^src\/(?:debug-|node_debug)/: c++, debugger
/^src\/udp_/: c++, dgram
/^src\/(?:fs_|node_file|node_stat_watcher)/: c++, fs
/^src\/node_http_parser/: c++, http_parser
/^src\/node_i18n/: c++, intl
/^src\/uv\./: c++, libuv
/^src\/(?:connect(?:ion)?|pipe|tcp)_/: c++, net
/^src\/node_os/: c++, os
/^src\/(?:node_main|signal_)/: c++, process
/^src\/timer_/: c++, timers
/^src\/(?:CNNICHashWhitelist|node_root_certs|tls_)/: c++, tls
/^src\/tty_/: c++, tty
/^src\/node_url/: c++, url-whatwg
/^src\/node_util/: c++, util
/^src\/(?:node_v8|v8abbr)/: c++, V8 Engine
/^src\/node_contextify/: c++, vm
/^src\/.*win32.*/: c++, windows
/^src\/node_zlib/: c++, zlib
/^src\/tracing/: c++, tracing
/^src\/node_api/: c++, n-api
/^src\/node_http2/: c++, http2, dont-land-on-v6.x
/^src\/node_report/: c++, report
/^src\/node_wasi/: c++, wasi
/^src\/node_worker/: c++, worker
/^src\/quic\/*/: c++, quic, dont-land-on-v14.x, dont-land-on-v12.x
/^src\/node_bob*/: c++, quic, dont-land-on-v14.x, dont-land-on-v12.x

# don't label python files as c++
/^src\/.+\.py$/: lib / src, needs-ci

# properly label changes to v8 inspector integration-related files
/^src\/inspector_/: c++, inspector, needs-ci

# don't want to label it a c++ update when we're "only" bumping the Node.js version
/^src\/(?!node_version\.h)/: c++
# BUILDING.md should be marked as 'build' in addition to 'doc'
/^BUILDING\.md$/: build, doc
# meta is a very specific label for things that are policy and or meta-info related
/^([A-Z]+$|CODE_OF_CONDUCT|ROADMAP|WORKING_GROUPS|GOVERNANCE|CHANGELOG|\.mail|\.git.+)/: meta
# things that edit top-level .md files are always a doc change
/^\w+\.md$/: doc
# different variants of *Makefile and build files
/^(tools\/)?(Makefile|BSDmakefile|create_android_makefiles|\.travis\.yml)$/: build, needs-ci
/^tools\/(install\.py|genv8constants\.py|getnodeversion\.py|js2c\.py|utils\.py|configure\.d\/.*)$/: build, needs-ci
/^vcbuild\.bat$/: build, windows, needs-ci
/^(android-)?configure|node\.gyp|common\.gypi$/: build, needs-ci
# more specific tools
/^tools\/gyp/: tools, build, needs-ci
/^tools\/doc\//: tools, doc
/^tools\/icu\//: tools, intl, needs-ci
/^tools\/(?:osx-pkg\.pmdoc|pkgsrc)\//: tools, macos, install
/^tools\/(?:(?:mac)?osx-)/: tools, macos
/^tools\/test-npm/: tools, test, npm
/^tools\/test/: tools, test
/^tools\/(?:certdata|mkssldef|mk-ca-bundle)/: tools, openssl, tls
/^tools\/msvs\//: tools, windows, install, needs-ci
/^tools\/[^/]+\.bat$/: tools, windows, needs-ci
/^tools\/make-v8/: tools, V8 Engine, needs-ci
/^tools\/(code_cache|snapshot|v8_gypfiles)/: needs-ci,
/^tools\/build-addons.js/: needs-ci,
# all other tool changes should be marked as such
/^tools\//: tools
/^\.eslint|\.remark|\.editorconfig/: tools

## Dependencies
# libuv needs an explicit mapping, as the ordinary /deps/ mapping below would
# end up as libuv changes labeled with "uv" (which is a non-existing label)
/^deps\/uv\//: libuv
/^deps\/v8\/tools\/gen-postmortem-metadata\.py/: V8 Engine, post-mortem
/^deps\/v8\//: V8 Engine
/^deps\/uvwasi\//: wasi
/^deps\/nghttp2\/nghttp2\.gyp/: build, http2, dont-land-on-v6.x
/^deps\/nghttp2\//: http2, dont-land-on-v6.x
/^deps\/ngtcp2\//: quic, dont-land-on-v14.x, dont-land-on-v12.x
/^deps\/nghttp3\//: quic, dont-land-on-v14.x, dont-land-on-v12.x
/^deps\/([^/]+)/: $1

## JS subsystems
# Oddities first
/^lib\/(punycode|\w+\/freelist|sys\.js)/: ''
/^lib\/constants\.js$/: lib / src
/^lib\/_(debug_agent|debugger)\.js$/: debugger
/^lib(\/\w+)?\/(_)?link(ed)?list/: timers
/^lib\/\w+\/bootstrap_node/: lib / src
/^lib\/\w+\/v8_prof_/: tools
/^lib\/\w+\/socket_list/: net
/^lib\/\w+\/streams$/: stream
/^lib\/.*http2/: http2, dont-land-on-v6.x
/^lib\/worker_threads.js$/: worker
/^lib\/internal\/url\.js$/: url-whatwg
/^lib\/internal\/modules\/esm/: ES Modules
/^lib\/internal\/quic\/*/: quic, dont-land-on-v14.x, dont-land-on-v12.x

# All other lib/ files map directly
/^lib\/_(\w+)_\w+\.js?$/: $1 # e.g. _(stream)_wrap
/^lib(\/internal)?\/(\w+)\.js?$/: $2 # other .js files
/^lib\/internal\/(\w+)(?:\/|$)/: $1 # internal subfolders

exlusiveLabels:
# more specific tests
/^test\/addons\//: test, addons
/^test\/debugger\//: test, debugger
/^test\/doctool\//: test, doc, tools
/^test\/timers\//: test, timers
/^test\/pseudo-tty\//: test, tty
/^test\/inspector\//: test, inspector
/^test\/cctest\/test_inspector/: test, inspector
/^test\/cctest\/test_url/: test, url-whatwg
/^test\/addons-napi\//: test, n-api
/^test\/async-hooks\//: test, async_hooks
/^test\/report\//: test, report
/^test\/fixtures\/es-module/: test, ES Modules
/^test\/es-module\//: test, ES Modules

/^test\//: test

# specific map for webcrypto.md as it should be labeled 'crypto'
/^doc\/api\/webcrypto.md$/: doc, crypto
# specific map for modules.md as it should be labeled 'module' not 'modules'
/^doc\/api\/modules.md$/: doc, module
# specific map for esm.md as it should be labeled 'ES Modules' not 'esm'
/^doc\/api\/esm.md$/: doc, ES Modules
# n-api is treated separately since it is not a JS core module but is still
# considered a subsystem of sorts
/^doc\/api\/n-api.md$/: doc, n-api
# quic
/^doc\/api\/quic.md$/: doc, quic, dont-land-on-v14.x, dont-land-on-v12.x
# add worker label to PRs that affect doc/api/worker_threads.md
/^doc\/api\/worker_threads.md$/: doc, worker
# automatically tag JS subsystem-specific API doc changes
/^doc\/api\/(\w+)\.md$/: doc, $1
# add deprecations label to PRs that affect doc/api/deprecations.md
/^doc\/api\/deprecations.md$/: doc, deprecations

/^doc\//: doc

# more specific benchmarks
/^benchmark\/buffers\//: benchmark, buffer
/^benchmark\/(?:arrays|es)\//: benchmark, V8 Engine
/^benchmark\/_http/: benchmark, http
/^benchmark\/(?:misc|fixtures)\//: benchmark
/^benchmark\/streams\//: benchmark, stream
/^benchmark\/([^/]+)\//: benchmark, $1

/^benchmark\//: benchmark

allJsSubSystems:
- assert
- async_hooks
- buffer
- child_process
- cluster
- console
- crypto
- debugger
- dgram
- dns
- domain
- events
- esm
- fs
- http
- https
- http2
- module
- net
- os
- path
- process
- querystring
- quic
- readline
- repl
- report
- stream
- string_decoder
- timers
- tls
- tty
- url
- util
- v8
- vm
- wasi
- worker
- zlib
14 changes: 14 additions & 0 deletions .github/workflows/label-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Label PRs

on:
pull_request_target:
types: [opened]

jobs:
label:
runs-on: ubuntu-latest

steps:
- uses: node/node-pr-labeler@v1
with:
configuration-path: .github/label-pr-config.yml