## 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_/: 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++, i18n-api /^src\/uv\./: c++, libuv /^src\/(?:connect(?:ion)?|pipe|tcp)_/: c++, net /^src\/node_os/: c++, os /^src\/(?:node_main|signal_)/: c++, process /^src\/timer[_s]/: c++, timers /^src\/node_root_certs/: c++, tls /^src\/tty_/: c++, tty /^src\/node_url/: c++, whatwg-url /^src\/node_util/: c++, util /^src\/node_v8/: c++, v8 engine /^src\/node_contextify/: c++, vm /^src\/node_zlib/: c++, zlib /^src\/tracing/: c++, tracing /^src\/(?:node_api|js_native_api)/: c++, node-api /^src\/node_http2/: c++, http2 /^src\/node_report/: c++, report /^src\/node_wasi/: c++, wasi /^src\/node_worker/: c++, worker /^src\/quic\/*/: c++, quic /^src\/node_bob*/: c++, quic /^src\/node_sea/: single-executable /^src\/node_sqlite.*/: c++, sqlite # 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|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)$/: build, needs-ci /^tools\/(?:install\.py|getnodeversion\.py|js2c\.py|utils\.py|configure\.d\/.*)$/: build, python, needs-ci /^vcbuild\.bat$/: build, windows, needs-ci /^(?:android-)?configure|node\.gyp|common\.gypi$/: build, needs-ci # More specific tools /^tools\/gyp/: tools, build, gyp, needs-ci /^tools\/doc\//: tools, doc /^tools\/icu\//: tools, i18n-api, icu, needs-ci /^tools\/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\/v8_gypfiles/: tools, v8 engine, needs-ci /^tools\/snapshot/: needs-ci /^tools\/build-addons.mjs/: needs-ci # All other tool changes should be marked as such /^tools\//: tools /^eslint\.config|\.editorconfig/: tools /^typings\//: typings ## 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, python, post-mortem /^deps\/v8\//: v8 engine /^deps\/uvwasi\//: wasi /^deps\/npm\//: npm, fast-track /^deps\/nghttp2\/nghttp2\.gyp/: build, http2 /^deps\/nghttp2\//: http2 /^deps\/ngtcp2\//: quic /^deps\/amaro\//: strip-types /^deps\/([^/]+)/: dependencies, $1 ## JS subsystems # Oddities first /^lib\/(?:punycode|\w+\/freelist|sys\.js)/: '' /^lib\/constants\.js$/: lib / src /^lib\/internal\/debugger$/: debugger /^lib\/internal\/linkedlist\.js$/: timers /^lib\/internal\/bootstrap/: lib / src /^lib\/internal\/v8_prof_/: tools /^lib\/internal\/socket(?:_list|address)\.js$/: net /^lib\/(_stream.*|internal\/streams\/.*|stream\.js|stream\/.*)$/: stream /^lib\/.*http2/: http2 /^lib\/worker_threads.js$/: worker /^lib\/test.js$/: test_runner /^lib\/internal\/url\.js$/: whatwg-url /^lib\/internal\/modules\/esm/: esm /^lib\/internal\/modules/: module /^lib\/internal\/webstreams/: web streams /^lib\/internal\/test_runner/: test_runner # All other lib/ files map directly /^lib\/_(\w+)_\w+\.js?$/: $1 # e.g. _(stream)_wrap /^lib(?:\/internal)?\/(\w+)\.js?$/: $1 # Other .js files /^lib(?:\/internal)?\/(\w+)(?:\/|$)/: $1 # 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\/node-api\//: test, node-api /^test\/js-native-api\//: test, node-api /^test\/async-hooks\//: test, async_hooks /^test\/report\//: test, report /^test\/fixtures\/es-module/: test, esm /^test\/es-module\//: test, esm /^test\/fixtures\/wpt\/streams\//: test, web streams /^test\/fixtures\/typescript/: test, strip-types /^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 # node-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, node-api # Add worker label to PRs that affect doc/api/worker_threads.md /^doc\/api\/worker_threads.md$/: doc, worker # test_runner documentation /^doc\/api\/test.md$/: doc, test_runner # 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\/changelogs\//: release # Specific map for typescript.md as it should be labeled 'strip-types' /^doc\/api\/typescript.md$/: doc, strip-types /^doc\//: doc # More specific benchmarks /^benchmark\/buffers\//: benchmark, buffer /^benchmark\/es\//: benchmark, v8 engine /^benchmark\/_http/: benchmark, http /^benchmark\/(?:misc|fixtures)\//: benchmark /^benchmark\/streams\//: benchmark, stream /^benchmark\/url\//: benchmark, url, whatwg-url /^benchmark\/([^/]+)\//: benchmark, $1 /^benchmark\//: benchmark, performance allJsSubSystems: - assert - async_hooks - buffer - child_process - cluster - console - crypto - debugger - dgram - diagnostics_channel - dns - domain - events - esm - fs - http - https - http2 - inspector - module - net - os - path - perf_hooks - process - punycode - querystring - quic - readline - repl - report - sqlite - stream - string_decoder - strip-types - timers - tls - trace_events - tty - typings - url - util - v8 - vm - wasi - worker - zlib