Repository navigation
bundler: resolve require('bindings')(name) to the package's .node addon at build time #36713
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
Closed
robobun
wants to merge
305
commits into
main
from
farm/a434bba6/bundler-resolve-bindings-native-addon
Closed
Changes from 4 commits
Commits
Show all changes
305 commits
Select commit
Hold shift + click to select a range
eea2f7d
Remove dead code from runtime/node (nodejs_error_code, IteratorError)…
robobun aaf5e8a
fetch: hold Body.Locked.readable as a real JSC::Weak so on_abort does…
robobun e71f6c3
Remove dead code from webcore C++, highway_strings, inspector agents,…
robobun 1dcb0bf
test: prune stale entries from expectations.txt (#36780)
robobun 074656d
ci: harden GitHub Actions workflows (#36778)
Jarred-Sumner 2ed8ed6
Upgrade WebKit to 3722912ff800 (#36794)
robobun bb6a9d9
Make re-entrant runtime objects &self-only; delete AnyTask (#36571)
Jarred-Sumner e336819
napi: pass NULL js_callback to call_js when no func supplied (#36845)
robobun 9b99e7c
bundler: propagate namespace requests through chained barrels (#36838)
robobun 1f447a7
Remove dead code from platform/darwin, webcrypto, sqlite, NodeVM, ast…
robobun 529b656
test(cli/run): tighten workspaces.test.ts assertions and run concurre…
robobun 14081e2
test(install): make config-version.test.ts offline and concurrent (#3…
robobun c126633
Bump libuv: uv_spawn returns an error instead of aborting on AssignPr…
dylan-conway dca129c
test: deflake tty-reopen-after-stdin-eof under bun test --parallel (S…
robobun 43783ce
build(deps): bump the actions group across 1 directory with 15 update…
dependabot[bot] 55e3461
napi: ToObject-coerce primitives in define_properties/freeze/seal/typ…
robobun 81dac41
napi: symbol description, empty named key, result-on-exception orderi…
robobun 75ef319
Bun.serve: hold a ref for FileResponseStream's queued eof task (#36858)
robobun 6fb3d65
sys(windows): keep FILE_SYNCHRONOUS_IO_NONALERT when opening with O::…
robobun 390e15c
install: enable native binlink redirect on Windows (#36856)
Jarred-Sumner d6a03fc
timers: reschedule timer when _idleStart is written (#36859)
robobun c44df8b
bun test: --timings for duration-balanced --shard/--parallel, docs fo…
Jarred-Sumner 0336d04
install: fall back to copyfile when linkat fails with EACCES or EPERM…
robobun c2f72b3
test(bundler): compile-windows-metadata.test.ts ~25s -> ~15s on Windo…
robobun 6c8b0f8
test/bundler: collapse compile-asset-bunfs.test.ts from 6 full --comp…
robobun 3f7144f
napi: validate node_api_create_external_string args like Node's CHECK…
robobun 5544d69
test(vm): replace network-dependent happy-dom #16277 repro with deter…
robobun d6302e9
fetch: send the slice's Content-Length when uploading Bun.file().slic…
robobun 87e168f
HTMLRewriter: stream through SinkHandle/SourceHandle; suspend async h…
robobun 5ad56ed
napi: throw ERR_DLOPEN_FAILED for glibc addons on musl instead of seg…
robobun 4d14836
Remove pointless tests
Jarred-Sumner 1b9673e
Remove dead code from resolver, install, event_loop, node_fs, fetch (…
robobun 6e13cb6
sql(postgres): honour PGSSLMODE from the environment (#36840)
robobun 10a986e
redis: reject NaN/undefined seconds in expire() instead of sending EX…
robobun 7fab798
v8: implement CpuProfiler and supporting V8 APIs for @datadog/pprof (…
robobun d76edcf
js_parser: stop the [x][0] / {f:x}.f folds from changing optional-cha…
robobun 842cffb
js_printer: re-wrap delete of folded import/cjs-export identifier (#3…
robobun 59cab0e
webstreams: native CompressionStream/DecompressionStream/TextEncoderS…
robobun fbd81f9
napi: napi_reference_ref returns 0 after the referent is collected; n…
robobun 0a14f47
printer: emit \u escapes for BEL/VT when quoting for JSON (#36746)
robobun 2190ef1
Bun.write: don't over-copy or ftruncate a caller-supplied destination…
robobun 83c7055
node:http2: don't kill the process on a malformed HEADERS block sent …
robobun 5d70c96
spawn: resolve relative $PATH entries against the cwd option (#36569)
robobun af63b8a
Bun.serve: reject Transfer-Encoding lists that name a coding other th…
robobun b8d9477
Bun.serve: chunk-frame FIFO/pipe file bodies instead of sending Conte…
robobun dc39774
inspector: keep BunFrontendDevServer/HTTPServer agents alive across r…
robobun b66764f
Bun.serve: honor requestCert/rejectUnauthorized on per-serverName tls…
Jarred-Sumner db5b68d
node:dns: throw ERR_INVALID_ARG_TYPE for undefined rrtype in callback…
robobun ace8f42
node:http2: copy goaway opaqueData before writing over JS-backed sock…
robobun 1bfcb4e
v8: GCProfiler on a JSC HeapObserver, isStringOneByteRepresentation (…
cirospaciari ccf5efb
bun:test: don't abort when formatting a test.each title value throws …
robobun 6a2c626
node:vm: propagate exceptions from context-option getters instead of …
robobun 52ec9f2
webcore(URL): propagate toString exceptions in revokeObjectURL instea…
robobun e6c85e1
Remove dead code from webcore events/abort C++, ZigGeneratedCode DOMJ…
robobun 9a95458
ByteStream: re-signal a backpressured RewriterPipe after native-sink …
robobun a07354a
http/http2: node v26.3.0 compat — HTTP/1 fallback + upgrade handoff, …
cirospaciari 77d79f9
cli: report an error for over-PATH_MAX --cpu-prof-dir / --heap-prof-d…
robobun 6b6fb1a
fetch: cache client TLS sessions for resumption (#36598)
robobun 9e36e9f
test runner: don't panic formatting a FormData whose toJSON is not ca…
robobun ce1d5b4
Enable Temporal by default (#32978)
robobun ef32923
Bun.listen: don't let GC collect an unref'd listener that is still li…
robobun 20f9397
node:fs: skip queued watchFile change callbacks once the watcher is c…
robobun 3179434
node:http2: don't hold a thread-local borrow across the padded DATA w…
robobun d601782
test: pin eager compression coder release when the piped source error…
robobun 1c4cfba
Create sockets with WSA_FLAG_NO_HANDLE_INHERIT on Windows (#36938)
robobun dec3059
Bun.openInEditor: read options before borrowing the editor context (#…
robobun 2ac192c
node:http2: keep a stream.write() payload stable while transport JS r…
robobun 0f53bd0
fetch: don't double-release the request-stream ref when a native body…
robobun f32cf86
http(h2/h3): detach the stream before a terminal header-time progress…
robobun e752497
Bun.serve: write the chunked terminator once when a direct stream clo…
robobun 402263e
node:http2: never split a frame around a JS transport's write callbac…
robobun b58cd46
Remove dead code from FFI sys crates, bun_core, built-in JS, codegen,…
robobun 1f606e6
Spawn the detached child outside the temp dir in the socket-inherit t…
robobun 4c26d64
bundler: make metafile import paths deterministic and match input key…
robobun abd7433
Bun.serve: gate the graceful stop() drain promise on open connections…
robobun 3f93daa
install: add install.hoist to disable the isolated linker's hoisted f…
robobun 4fb02aa
Use Bun.TOML.stringify to build bunfig.toml in install tests (#36988)
robobun 7f4acb2
terminal: keep the wrapper alive while a drain dispatch is pending af…
robobun 17d6843
node:crypto: free the async job ctx before invoking the completion ca…
robobun 5fa371a
install: add BUN_DISABLE_SLOW_FILESYSTEM_WARNING, set it in the test …
robobun 618f2f6
TOML.stringify: omit headers for pass-through super-tables (#37009)
robobun a663772
Bun.JSONC.parse: throw SyntaxError instead of BuildMessage on invalid…
robobun f4f3844
Sanitize query-string delimiter in isolated store directory names (#3…
robobun 80e6dba
node:net: fix ReferenceError for DEFAULT_IPV*_ADDR on happy-eyeballs …
robobun a32adeb
Compare Temporal objects by value in Bun.deepEquals and toEqual (#37024)
robobun 15d6710
Fix exception handling in unwrapBoxedPrimitive (#37025)
robobun be6a334
Suppress the LSan false positive from Temporal's ICU calendar templat…
robobun a4ad4e0
Make a too-deep TOML import throw a RangeError instead of panicking (…
robobun 7d9f21b
Fix segfault in toHaveReturned matchers when mock.results is tampered…
robobun 9a5e331
Fix abort when using spyOn on a function's prototype property (#37046)
robobun 4273dd9
bundler: fail the build when a module fails to print instead of emitt…
robobun 3ee86ad
node:crypto: fix Certificate spkac validation for KeyObject input (#3…
robobun 8d08b97
Bun.udpSocket, Bun.password: range-check numeric options before ToInt…
robobun ce03d5f
test(napi): make napi_wrap lifetime collection polls robust to conser…
robobun 1438e38
Fix zlib kMaxLength tests failing when run with other zlib tests in o…
robobun 9530797
Remove dead code from install, event_loop, dns, mysql protocol, C++ b…
robobun 2d1de1e
resolver: resolve "." and ".." specifiers as directories, not sibling…
robobun 0ffabf6
fetch: don't touch the freed request clone when preconnect reuses a p…
robobun d18ddfc
crypto: fix property attributes of X509Certificate validFromDate/vali…
robobun 7624109
Remove dead peechy schema scaffolding, bun-wasm, and write-only optio…
dylan-conway cf5ddf7
Fix type-confused write through ReadableStream's private custom sette…
robobun f503e16
yaml: support cyclic anchors/aliases in Bun.YAML.parse (#37055)
dylan-conway 45be4ac
Fix type confusion assigning onmessage/onerror through a Proxy of glo…
robobun b3941fc
watcher: stop serving the watchlist's stored fd to --hot reload reads…
robobun 2e99ef1
install: do not redirect an npm: alias dependency to a same-named ali…
robobun 7153411
transpiler: remove write-only ParseResult::input_fd plumbing (#37071)
robobun 2c5c312
strings: route all byte search through highway, deny the paths around…
dylan-conway 6e6aedb
bun:sqlite: fix use-after-free closing a database with FTS5 tables (#…
robobun aa1e446
terminal: apply setRawMode with TCSANOW, not TCSADRAIN, on the PTY ma…
robobun b4d632a
socket: don't leave exceptions pending when a connect promise settle …
robobun 3171136
Add Bun.XML (parse/stringify) and an .xml loader (#37048)
dylan-conway 898b169
Fix clippy, rustfmt, Miri, and stale tsconfig references on main (#37…
robobun 5a5f1b8
Bun.plugin: fix segfault when an object loader result's exports gette…
robobun 25d9d4a
Stop disabling transparent huge pages in every process bun spawns (#3…
dylan-conway 6d090a2
serve: JSON payload for the development error page, restoring stack t…
dylan-conway 9b7c272
node:net: let server.unref() release a Windows named-pipe listener (#…
robobun eba6c07
Bun.serve: close idle connections on graceful stop(), declare closeId…
robobun c6f3f7d
build: drop the MI_NO_SET_VMA_NAME define mimalloc never read (#37080)
dylan-conway e3f9e3b
bundler: use React Compiler client mode for the browser graph of full…
robobun 45eda51
process: port Node.js v26.3.0 process compatibility tests and fix the…
cirospaciari 45ee955
HTMLRewriter: fix use-after-free when GC sweeps an abandoned transfor…
robobun 43caaf3
node compat batch: callback-throw dispatch, Assert class + native dee…
cirospaciari 8c5bf69
usockets: stop spinning on a half-open socket whose peer resets behin…
Jarred-Sumner f493239
v8 shim: keep ReturnValue contents alive across handle scope pops (#3…
robobun 11e3f2b
bun test --parallel: abort the run when a Windows worker dies with a …
robobun f8b6342
module loader: fix ENAMETOOLONG when importing long data: URLs (#37157)
robobun 392726b
Keep CompressionStream's native coder alive during in-flight off-thre…
robobun 6089d0e
bundler: tree-shake the automatic JSX runtime import when all JSX is …
robobun 742b118
Fix main build: restore PartTag::JsxImport (#37174)
robobun 78da06a
Fix use-after-free in deepEquals when a getter mutates the object mid…
robobun d5efbd6
Fix use-after-free in Bun.inspect when user code mutates the object m…
robobun 37c4428
node compile cache: create entry files 0600 like Node (#37164)
robobun f972c28
XML parser: SIMD structural index + tape rows, one-call rows→JS (#37146)
Jarred-Sumner 8676018
shell: free in-flight subprocess stdio when the interpreter is finali…
robobun 3ce0052
ByteStream: take the pending buffer action before signal_drained() in…
robobun 52bf09c
sql(mysql): negotiate MariaDB extended type info so JSON columns pars…
robobun 9d519e8
Worker / worker_threads: WebCore-shaped lifetimes, joined threads, on…
dylan-conway 8ce3c13
test(spawn): wait for background pipe closes before counting fds (#37…
dylan-conway 1147099
node:stream: add missing TypedArrayPrototypeGet* primordials used by …
robobun ab5b3f2
Throw ERR_STRING_TOO_LONG instead of aborting for 2 GiB to 4 GiB stri…
robobun 4f6b242
bun run --parallel/--sequential: finish a script only after its outpu…
dylan-conway 27b0bf4
Fix clippy and source lint failures on main (#37221)
robobun d8c1ef5
s3: parse S3's XML responses with the XML parser instead of substring…
Jarred-Sumner 2db9afc
Bun.openInEditor: throw when no editor is found instead of spawning "…
dylan-conway 9554a36
fs.Utf8Stream: don't emit 'drain' after reopen while a write is in fl…
dylan-conway b6482a6
docs: replace stray control character in installation page Linux note…
robobun 5938918
resolver: auto-resolve extensions for wildcard exports/imports target…
robobun 0c35ccc
napi: keep async cleanup hook handles alive until the addon removes t…
robobun 9008ae7
napi: fix dropped writes through data pointers for small typed arrays…
robobun d2f48c6
Blob file reads: a read its worker never completes releases its compl…
dylan-conway 93217e1
docs: reorder XML page, usage first, trim performance section (#37279)
robobun cbc209f
Fix wild free when a terminated worker drops a zero-length fs.readFil…
robobun 01dc506
bun run --parallel/--sequential: do not wait for pipe EOF after the s…
robobun 6a50e86
resolver: lock DirEntry map probes against the in-place stale-generat…
robobun fb84417
Fix quadratic backlog drain in bun test --parallel IPC (#37291)
robobun 5458f37
test(http): deflake the graceful-stop drain tests on darwin (#37141)
robobun 2dd1e97
deps: update c-ares to v1.34.8 (#34007)
github-actions[bot] bc82018
node:http2: arm the dispatch guard around the streamStart callback (#…
robobun e84f710
Bump WebKit to 447082ab6897: conservative scan accepts no past-the-en…
dylan-conway 827475e
test(security-scanner-matrix): don't depend on the setup install's ma…
dylan-conway 23d233b
process: register the default 'warning' listener at process creation,…
cirospaciari 5effdb2
ci: run darwin tests on Buildkite-hosted agents while the mac fleet i…
alii c63dc64
ci: restore the darwin test lanes so they run on the hosted queue (#3…
alii 81cfca9
ci: shard darwin tests 10-wide while they run on hosted agents (#37369)
alii 9fcdea8
standalone: env var to disable the post-load madvise of embedded sour…
cirospaciari d1b5b7d
test(bundler): compile each outfile case in its own test (#37417)
robobun 792ebab
streams: remove NetworkSink's write-only cancel flag and unreachable …
robobun a0d17c1
bundler: drop the unread payload of the metafile JsonValue::Float (#3…
robobun 886dba4
bun test --parallel: distinguish --bail from a worker panic when reap…
robobun cd15fba
shell rm: replace RemoveFileVTable's correlated bool and Option with …
robobun e75e117
streams: drop dead ended = false in NetworkSink and FetchRequestBodyS…
robobun 81ff1a1
cron: remove the Done and Failed states of RegisterState and RemoveSt…
robobun 218f98e
xml: collapse Step::Done and Step::Continue into one variant (#37409)
robobun b053c20
node:dns: use the system resolver for dns.lookup (#37383)
robobun 4bfd7d8
build: stop the configure-time rustc probe from installing rust-toolc…
robobun aef109a
node:crypto: make RandomFillJob an enum of its two fill modes (#37403)
robobun b2fc659
http: clear the request stream drain callback under the buffer mutex …
robobun 54d6d16
yaml: stop collecting directives the parser never reads (#37408)
robobun da3851e
fetch: pool the redirecting connection when the request went out in o…
robobun 020e2fe
tls: stop SSLWrapper from decrypting re-entrantly inside its own call…
robobun 97e21e5
spawn: add a `cgroup` option (Linux) (#37466)
Jarred-Sumner 108e412
node:http2: add the goawayCode and goawayLastStreamID session getters…
robobun 2d6bc9b
blob: make the Blob__ref/Blob__deref refcount exports unsafe fns (#37…
robobun ce5960a
install: hold TarballStream archive as Option<ReadArchive> (#37617)
robobun e592637
node:http2: send array-valued pushStream() headers as one field per e…
robobun d9e2751
websocket: enter tunnel forwarding mode before dispatching open (#37610)
robobun 00da4dc
dns: carry c-ares reply ownership in OwnedReply<T> (#37602)
robobun 36312b5
fs: short write in createWriteStream overwrites head of file (NaN pos…
robobun 4193195
Discard infallible write results with `let _ =` instead of `.ok();` (…
alii 956746d
mysql: make DateTime's fields private to the module that range-checks…
alii 64c972f
strings: carry RawSlice<u8> in ZigStringSlice borrowed variants (#37560)
robobun b0fdcec
AsyncModule: update resolve_error comment after the .ok() rewrite (#3…
robobun 2716e9d
cli: hold PackageFilterIterator's walk as Option<ActiveWalk> (#37623)
robobun 6e75ae3
encoding: take slices in write_u8/byte_length_u8/construct_from_* (#3…
robobun f38671e
Deduplicate webcore blob, sink, and S3 helpers (#32024)
alii c6774a4
bundler: do not record tree-shaken imports in the bytecode ESM module…
robobun f598766
bun_jsc: hold a non-optional Strong in JsRef::Strong (#37634)
robobun ce67711
fetch: do not pool HTTP/1.0 responses unless they say Connection: kee…
robobun ee86e41
Remove dead code from shell, bake dev server, sql, install, cli, css,…
robobun e39e826
picohttp: carry Response.bytes_read as usize (#37643)
alii 6172d63
Make constructor-checked fields private where nothing outside their m…
alii 3fc747a
sourcemap: Builder<'a> borrows its line-offset table (#37627)
robobun 83ad764
html_rewriter: count RewriterPipe owners with CellRefCounted (#37564)
robobun 0e5d9df
Read Request's abort signal and JSArrayIterator's fast path through a…
alii 1d28cc4
bundler: collapse ParseTask ctx/completion_ctx into one ParentRef (#3…
robobun e96f29c
sql/mysql: replace ExecuteParams c_void hooks with ExecuteParam trait…
robobun d3e7fd5
test_runner: make Snapshots own its buffers and drop its lifetime (#3…
robobun 8841376
bundler: HTML loader reads chunks via &[Chunk], not *mut [Chunk] (#37…
robobun fe4b3d6
dotenv: replace placeholder Source slots with EnumSet<DefaultEnvFile>…
robobun 488dabe
server: replace upgrade_context pointer sentinel with UpgradeState en…
robobun 1b05c85
install: PatchTask::new_* return Box; enqueue_patch_task takes the Bo…
robobun 56f7772
jsc: make SavedSourceMap own its hash table (#37506)
robobun 0826514
Bump WebKit to 3997b59485da (#37352)
alii b49c971
io: make KEventWaker::wake take &self like the Linux and Windows wake…
alii ae33ace
bake: own StaticRoute and HTMLBundleRoute refs via Drop types (#37517)
robobun aa9a59f
usockets: follow the whole adopted-socket chain when re-deriving the …
robobun 6065162
node:fs: bound write()'s offset by the buffer even when no length fol…
alii 99f16a8
blob: hand the read handler's pointer to on_read_bytes instead of &mu…
robobun d8e3e19
Stop running builtin modules' lazy accessors when they are imported a…
robobun e7abdf7
ci: run darwin tests on the test-darwin fleet again, for every PR (#3…
alii 3c87727
ci: stop the test/ install from downloading Chrome into the agent's c…
robobun 0825a8b
usockets(tls): park writes issued while the SSL is in use; guard SSL_…
robobun 8c7ed92
streams: deliver a direct stream's post-flush bytes to pipeTo/tee/for…
robobun fd1ea1b
fetch: pool an https-proxy tunnel in the TLS context its socket was o…
robobun 6596bf1
Declare the "bun" module's ESM exports lazily instead of reifying the…
robobun 3e61ab3
ci(darwin tart): export RUSTUP_HOME/CARGO_HOME in the guest job envir…
robobun e5752bb
build: put -glldb before the -g level flags so release C++ gets line …
robobun 8d10147
build: home type debug info in debug builds instead of re-emitting it…
robobun f59f705
node:http2: fix stream id overflow in setNextStreamID and nextStreamI…
robobun 2ffb8d4
Declare node:process and node:module ESM exports lazily as well (#37726)
robobun 1adeb97
run: stack-local Run<'a> replaces the RUN static (#37662)
robobun a0782cd
bundler: build the ESM bytecode module record from what the printer e…
robobun 6e201b6
build: 16 codegen units for the asan cargo build (#37760)
Jarred-Sumner 9518091
ci: build C++, Rust and link in one build-bun step instead of build-c…
Jarred-Sumner c83326e
JSSink: pass the sink to finalize as *mut instead of &mut (#37716)
robobun 722f250
node:dns: handle IPv4-mapped IPv6 addresses in lookupService (#37490)
robobun a8c807f
install: don't resolve a bundled dependency's optional peer past the …
robobun 65baeda
node:dns: treat null lookup option fields as unset (#37319)
robobun 626034f
cluster: port Node's cluster and child_process handle-passing suites …
cirospaciari 9a543cc
Bun.serve: don't serve sourcemaps for HTML routes in production (#36982)
robobun 315136d
install: honor --recursive/--filter in non-interactive bun update; re…
robobun a5ca1cd
build: retry dep downloads for ~3 minutes and report the underlying f…
robobun 7f1ae4e
AbortSignal.timeout: cancel the signal's timer when the heap discards…
robobun 6e047ff
AbortSignal.timeout: keep the timer armed when the signal loses its o…
robobun 2055fe9
http: release h2/h3 sessions and proxy tunnels through their holders'…
robobun a63b064
install: fix git dependencies that share one repository (#35426)
robobun 165dc9f
Robustness and input-handling pass across install, shell, TLS/QUIC, H…
Jarred-Sumner f426a8e
h2: move header-block assembly state into Option<HeaderBlockInFlight>…
robobun 4b15a09
Merge origin/main into farm/a434bba6/bundler-resolve-bindings-native-…
robobun 5fee0de
bundler: rewrite require('bindings') in the parser only for server ta…
robobun File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.