helloadhavan/github_issues huggingface dataset:
Repository: ggml-org/llama.cpp
Pull request: codeowners : add @danbev to model-conversion example [no ci]

This commit adds examples/model-conversion/ to the CODEOWNERS file and assigns myself (@danbev) as the code owner for this directory.


Changed files:
filename: CODEOWNERS
patch: @@ -34,6 +34,7 @@
 /examples/llama.vim                     @ggerganov
 /examples/lookahead/                    @ggerganov
 /examples/lookup/                       @JohannesGaessler
+/examples/model-conversion/             @danbev
 /examples/parallel/                     @ggerganov
 /examples/passkey/                      @ggerganov
 /examples/retrieval/                    @ggerganov
Repository: vercel/next.js
Pull request: Server: Remove unused code

## What?

Removes some unused code.

Closes PACK-5100

Changed files:
filename: packages/next/src/server/base-server.ts
patch: @@ -639,10 +639,6 @@ export default abstract class Server<
     this.responseCache = this.getResponseCache({ dev })
   }
 
-  protected reloadMatchers() {
-    return this.matchers.reload()
-  }
-
   private handleRSCRequest: RouteHandler<ServerRequest, ServerResponse> = (
     req,
     _res,

filename: packages/next/src/server/dev/next-dev-server.ts
patch: @@ -117,7 +117,6 @@ export default class DevServer extends Server {
   private actualMiddlewareFile?: string
   private actualInstrumentationHookFile?: string
   private middleware?: MiddlewareRoutingItem
-  private originalFetch?: typeof fetch
   private readonly bundlerService: DevBundlerService
   private staticPathsCache: LRUCache<
     UnwrapPromise<ReturnType<DevServer['getStaticPaths']>>

filename: packages/next/src/server/lib/router-utils/filesystem.ts
patch: @@ -107,9 +107,6 @@ export async function setupFsCheck(opts: {
   dev: boolean
   minimalMode?: boolean
   config: NextConfigComplete
-  addDevWatcherCallback?: (
-    arg: (files: Map<string, { timestamp: number }>) => void
-  ) => void
 }) {
   const getItemsLru = !opts.dev
     ? new LRUCache<FsOutput | null>(1024 * 1024, function length(value) {

filename: packages/next/src/server/next-server.ts
patch: @@ -122,8 +122,6 @@ import {
 
 export * from './base-server'
 
-declare const __non_webpack_require__: NodeRequire
-
 // For module that can be both CJS or ESM
 const dynamicImportEsmDefault = process.env.NEXT_MINIMAL
   ? (id: string) =>
@@ -251,7 +249,6 @@ export default class NextNodeServer extends BaseServer<
   protected middlewareManifestPath: string
   private _serverDistDir: string | undefined
   private imageResponseCache?: ResponseCache
-  private registeredInstrumentation: boolean = false
   protected renderWorkersPromises?: Promise<void>
   protected dynamicRoutes?: {
     match: import('../shared/lib/router/utils/route-matcher').RouteMatchFn
Repository: ggml-org/llama.cpp
Pull request: codeowners : use slash prefix for root files [no ci]

This commit adds a leading slash to the paths of root-level files in the CODEOWNERS file.

The motivation for this is that these might otherwise match files in subdirectories that have other/additional owners will override them.

Refs: https://github.com/ggml-org/llama.cpp/pull/16209#issuecomment-3326434274


Changed files:
filename: CODEOWNERS
patch: @@ -95,12 +95,12 @@
 /tools/tokenize/                        @ggerganov
 /tools/tts/                             @ggerganov
 /vendor/                                @ggerganov
-.clang-format                           @slaren
-.clang-tidy                             @slaren
-AUTHORS                                 @ggerganov
-CMakeLists.txt                          @ggerganov
-CONTRIBUTING.md                         @ggerganov
-LICENSE                                 @ggerganov
-README.md                               @ggerganov
-SECURITY.md                             @ggerganov
-requirements*.txt                       @CISC
+/.clang-format                          @slaren
+/.clang-tidy                            @slaren
+/AUTHORS                                @ggerganov
+/CMakeLists.txt                         @ggerganov
+/CONTRIBUTING.md                        @ggerganov
+/LICENSE                                @ggerganov
+/README.md                              @ggerganov
+/SECURITY.md                            @ggerganov
+/requirements*.txt                      @CISC
Repository: electron/electron
Pull request: fix: `ElectronBrowserContext` `raw_ptr` bug + remove dead code

Backport of #46030

See that PR for details.


Notes: none.

Changed files:
filename: shell/browser/electron_browser_context.cc
patch: @@ -365,10 +365,10 @@ ElectronBrowserContext::ElectronBrowserContext(
     BrowserContextDependencyManager::GetInstance()
         ->CreateBrowserContextServices(this);
 
-    extension_system_ = static_cast<extensions::ElectronExtensionSystem*>(
+    auto* extension_system = static_cast<extensions::ElectronExtensionSystem*>(
         extensions::ExtensionSystem::Get(this));
-    extension_system_->InitForRegularProfile(true /* extensions_enabled */);
-    extension_system_->FinishInitialization();
+    extension_system->InitForRegularProfile(true /* extensions_enabled */);
+    extension_system->FinishInitialization();
   }
 #endif
 }
@@ -377,11 +377,6 @@ ElectronBrowserContext::~ElectronBrowserContext() {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   NotifyWillBeDestroyed();
 
-#if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS)
-  // the DestroyBrowserContextServices() call below frees this.
-  extension_system_ = nullptr;
-#endif
-
   // Notify any keyed services of browser context destruction.
   BrowserContextDependencyManager::GetInstance()->DestroyBrowserContextServices(
       this);

filename: shell/browser/electron_browser_context.h
patch: @@ -13,12 +13,10 @@
 #include <variant>
 #include <vector>
 
-#include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/media_stream_request.h"
 #include "content/public/browser/resource_context.h"
-#include "electron/buildflags/buildflags.h"
 #include "electron/shell/browser/media/media_device_id_salt.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "services/network/public/mojom/ssl_config.mojom.h"
@@ -43,12 +41,6 @@ namespace storage {
 class SpecialStoragePolicy;
 }
 
-#if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS)
-namespace extensions {
-class ElectronExtensionSystem;
-}
-#endif
-
 namespace electron {
 
 class ElectronDownloadManagerDelegate;
@@ -154,15 +146,6 @@ class ElectronBrowserContext : public content::BrowserContext {
     return weak_factory_.GetWeakPtr();
   }
 
-#if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS)
-  extensions::ElectronExtensionSystem* extension_system() {
-    // Guard usages of extension_system() with !IsOffTheRecord()
-    // There is no extension system for in-memory sessions
-    DCHECK(!IsOffTheRecord());
-    return extension_system_;
-  }
-#endif
-
   ProtocolRegistry* protocol_registry() const {
     return protocol_registry_.get();
   }
@@ -237,11 +220,6 @@ class ElectronBrowserContext : public content::BrowserContext {
   bool use_cache_ = true;
   int max_cache_size_ = 0;
 
-#if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS)
-  // Owned by the KeyedService system.
-  raw_ptr<extensions::ElectronExtensionSystem> extension_system_;
-#endif
-
   // Shared URLLoaderFactory.
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
Repository: denoland/deno
Pull request: fix(ext/node): correct `kMaxLength` value of `node:buffer`

This PR fixes `kMaxLength` value of `node:buffer`. This change allows `test-buffer-alloc.js` case passing.

Changed files:
filename: ext/node/polyfills/internal/buffer.mjs
patch: @@ -113,7 +113,7 @@ float32Array[0] = -1; // 0xBF800000
 // check this with `os.endianness()` because that is determined at compile time.
 export const bigEndian = uInt8Float32Array[3] === 0;
 
-export const kMaxLength = 2147483647;
+export const kMaxLength = NumberMAX_SAFE_INTEGER;
 export const kStringMaxLength = 536870888;
 const MAX_UINT32 = 2 ** 32;
 

filename: tests/node_compat/config.jsonc
patch: @@ -22,7 +22,6 @@
       "test-assert-fail.js",
       "test-assert.js",
       "test-blocklist.js",
-      "test-buffer-alloc.js",
       "test-buffer-arraybuffer.js",
       "test-buffer-backing-arraybuffer.js",
       "test-buffer-includes.js",

filename: tests/node_compat/test/parallel/test-buffer-alloc.js
patch: @@ -2,7 +2,7 @@
 // deno-lint-ignore-file
 
 // Copyright Joyent and Node contributors. All rights reserved. MIT license.
-// Taken from Node 18.12.1
+// Taken from Node 23.9.0
 // This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually.
 
 'use strict';
@@ -11,13 +11,16 @@ const common = require('../common');
 const assert = require('assert');
 const vm = require('vm');
 
-const SlowBuffer = require('buffer').SlowBuffer;
+const {
+  SlowBuffer,
+  kMaxLength,
+} = require('buffer');
 
-// Verify the maximum Uint8Array size.
-// (see https://github.com/tc39/ecma262/pull/3052).
+// Verify the maximum Uint8Array size. There is no concrete limit by spec. The
+// internal limits should be updated if this fails.
 assert.throws(
-  () => new Uint8Array(2 ** 53),
-  { message: 'Invalid typed array length: 9007199254740992' }
+  () => new Uint8Array(kMaxLength + 1),
+  { message: `Invalid typed array length: ${kMaxLength + 1}` },
 );
 
 const b = Buffer.allocUnsafe(1024);
@@ -1154,7 +1157,6 @@ assert.throws(() => {
 // Regression test to verify that an empty ArrayBuffer does not throw.
 Buffer.from(new ArrayBuffer());
 
-
 // Test that ArrayBuffer from a different context is detected correctly.
 const arrayBuf = vm.runInNewContext('new ArrayBuffer()');
 Buffer.from(arrayBuf);
Repository: denoland/deno
Pull request: ci: update release template

Changes URL of GH release - the one used previously doesn't
work correctly, since GH uses something like 
`<org>/<repo>/releases/tag/untagged-<hash>` for draft releases. 

AFAICT it's too cumbersome to figure this hash programatically.

Changed files:
filename: tools/release/release_doc_template.md
patch: @@ -81,8 +81,8 @@ Release checklist: <LINK TO THIS FORKED GIST GOES HERE>
   (https://github.com/denoland/deno/releases).
 
 - ⛔ Verify that:
-  - [ ] There are 24 assets on the
-        [GitHub release draft](https://github.com/denoland/deno/releases/v$VERSION).
+  - [ ] There are 24 assets on the v$VERSION
+        [GitHub release draft](https://github.com/denoland/deno/releases/).
   - [ ] There are 25 zip files for this version on
         [dl.deno.land](https://console.cloud.google.com/storage/browser/dl.deno.land/release/v$VERSION).
Repository: huggingface/transformers
Pull request: Fix: add back base model plan


Changed files:
filename: src/transformers/integrations/tensor_parallel.py
patch: @@ -821,8 +821,6 @@ def partition_tensor(self, param, empty_param, param_type, param_casting_dtype,
         param = param[ep_rank * local_num_experts : (ep_rank + 1) * local_num_experts].to(param_casting_dtype)
         if to_contiguous:
             param = param.contiguous()
-        if "gate_up" in param_type and False:
-            param = torch.cat([param[..., ::2], param[..., 1::2]], dim=-1)
         return param
 
 
@@ -1014,7 +1012,8 @@ def shard_and_distribute_module(
 
     """
     param_name, param_type = parameter_name.rsplit(".", 1) if "." in parameter_name else parameter_name
-    tp_plan = model._tp_plan
+    tp_plan = model._tp_plan or {}
+    tp_plan.update(getattr(type(model), "_tp_plan", {}))
     module_to_tp = model.get_submodule(param_name)  # TODO: can i loop over modules?
     rank = int(rank)
     current_shard_plan = _get_parameter_tp_plan(parameter_name, tp_plan)
@@ -1080,11 +1079,14 @@ def verify_tp_plan(expected_keys: list[str], tp_plan: dict[str, str] | None):
 
 def distribute_model(model, distributed_config, device_mesh, tp_size):
     _plan = "_tp_plan"
+    tp_plan = getattr(model, "_tp_plan", {}).copy()
     model._tp_plan = getattr(model.config, "base_model_tp_plan").copy()
+    model._tp_plan.update(tp_plan)
     model._tp_size = tp_size
     model._device_mesh = device_mesh
     if distributed_config is not None:
-        distributed_config = DistributedConfig.from_config(distributed_config)
+        if isinstance(distributed_config, dict):
+            distributed_config = DistributedConfig.from_dict(distributed_config)
         if distributed_config.enable_expert_parallel:
             _plan = "_ep_plan"
             model._tp_plan = getattr(model.config, "base_model_ep_plan", model._tp_plan).copy()
Repository: nodejs/node
Pull request: benchmark: add dereference and force options to fs.cpSync

This PR enhances the benchmark for the `fs.cpSync` function to measure the performance of the dereference and force options.

Key changes:

- Added `dereference` and `force` options to the `bench-cpSync.js` file.
- Implemented a `prepareTestDirectory` function that creates a test directory with symbolic links.
- Added pre-copy logic for testing the force option.


Changed files:
filename: benchmark/fs/bench-cpSync.js
patch: @@ -4,20 +4,53 @@ const common = require('../common');
 const fs = require('fs');
 const path = require('path');
 const tmpdir = require('../../test/common/tmpdir');
-tmpdir.refresh();
 
 const bench = common.createBenchmark(main, {
   n: [1, 100, 10_000],
+  dereference: ['true', 'false'],
+  force: ['true', 'false'],
 });
 
-function main({ n }) {
+function prepareTestDirectory() {
+  const testDir = tmpdir.resolve(`test-cp-${process.pid}`);
+  fs.mkdirSync(testDir, { recursive: true });
+
+  fs.writeFileSync(path.join(testDir, 'source.txt'), 'test content');
+
+  fs.symlinkSync(
+    path.join(testDir, 'source.txt'),
+    path.join(testDir, 'link.txt'),
+  );
+
+  return testDir;
+}
+
+function main({ n, dereference, force }) {
   tmpdir.refresh();
-  const options = { recursive: true };
-  const src = path.join(__dirname, '../../test/fixtures/copy');
+
+  const src = prepareTestDirectory();
   const dest = tmpdir.resolve(`${process.pid}/subdir/cp-bench-${process.pid}`);
+
+  const options = {
+    recursive: true,
+    dereference: dereference === 'true',
+    force: force === 'true',
+  };
+
+  if (options.force) {
+    fs.cpSync(src, dest, { recursive: true });
+  }
+
   bench.start();
   for (let i = 0; i < n; i++) {
-    fs.cpSync(src, dest, options);
+    if (options.force) {
+      fs.cpSync(src, dest, options);
+    } else {
+      const uniqueDest = tmpdir.resolve(
+        `${process.pid}/subdir/cp-bench-${process.pid}-${i}`,
+      );
+      fs.cpSync(src, uniqueDest, options);
+    }
   }
   bench.end(n);
 }
Repository: vercel/next.js
Pull request: Turbopack: fix unhelpful error message when deleting folder fails

### What?

Fixes the unhelpful error message:

```
[Error: No such file or directory (os error 2)] {
  code: 'GenericFailure'
}
```

Closes PACK-5102

Changed files:
filename: turbopack/crates/turbo-tasks-backend/src/database/db_versioning.rs
patch: @@ -143,8 +143,11 @@ pub fn handle_db_versioning(
         }
     } else {
         path = base_path.join("temp");
-        // propagate errors: if this fails we may have stale files left over in the temp directory
-        remove_dir_all(&path)?;
+        if path.exists() {
+            // propagate errors: if this fails we may have stale files left over in the temp
+            // directory
+            remove_dir_all(&path)?;
+        }
     }
 
     Ok(path)

filename: turbopack/crates/turbo-tasks-backend/src/kv_backing_storage.rs
patch: @@ -166,9 +166,11 @@ impl<T: KeyValueDatabase> KeyValueDatabaseBackingStorage<T> {
     where
         T: Send + Sync + 'static,
     {
-        let startup_cache_state = check_db_invalidation_and_cleanup(&base_path)?;
-        let versioned_path = handle_db_versioning(&base_path, version_info, is_ci)?;
-        let database = (database)(versioned_path)?;
+        let startup_cache_state = check_db_invalidation_and_cleanup(&base_path)
+            .context("Failed to check database invalidation and cleanup")?;
+        let versioned_path = handle_db_versioning(&base_path, version_info, is_ci)
+            .context("Failed to handle database versioning")?;
+        let database = (database)(versioned_path).context("Failed to open database")?;
         let backing_storage = Self {
             inner: Arc::new_cyclic(
                 move |weak_inner: &Weak<KeyValueDatabaseBackingStorageInner<T>>| {
Repository: ggml-org/llama.cpp
Pull request: model-conversion : fix the make targets in the README.md

Fix two incorrect make targets in the readme.

Changed files:
filename: examples/model-conversion/README.md
patch: @@ -105,12 +105,12 @@ new model, the model can be converted to GGUF format using the following command
 ### Inspecting the converted model
 The converted model can be inspected using the following command:
 ```console
-(venv) $ make inspect-converted-model
+(venv) $ make causal-inspect-converted-model
 ```
 
 ### Running the converted model
 ```console
-(venv) $ make run-converted-model
+(venv) $ make causal-run-converted-model
 ```
 
 ### Model logits verfication
Repository: huggingface/transformers
Pull request: [Fix] import two missing typos in `models/__init__.py` for typo checking

# What does this PR do?

I find Pylance in VSCode cannot import the `Gemma3NForConditionalGeneration` and `Qwen2_5OmniModel` automatically. The reason is that these symbols are not exported for type checking. When running in lazy import mode, this symbols will not be exported and thus no type hint.

<img width="741" height="85" alt="image" src="https://github.com/user-attachments/assets/e3901a31-d101-40a1-bc81-24cea04b0e49" />


## Before submitting
- [x] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
- [x] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#create-a-pull-request),
      Pull Request section?
- [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link
      to it if that's the case.
- [ ] Did you make sure to update the documentation with your changes? Here are the
      [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and
      [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation).
- [ ] Did you write any new necessary tests?


## Who can review?

@ArthurZucker



Changed files:
filename: src/transformers/models/__init__.py
patch: @@ -128,6 +128,7 @@
     from .gemma import *
     from .gemma2 import *
     from .gemma3 import *
+    from .gemma3n import *
     from .git import *
     from .glm import *
     from .glm4 import *
@@ -260,6 +261,7 @@
     from .pvt import *
     from .pvt_v2 import *
     from .qwen2 import *
+    from .qwen2_5_omni import *
     from .qwen2_5_vl import *
     from .qwen2_audio import *
     from .qwen2_moe import *
Repository: denoland/deno
Pull request: fix(otel): flush data when terminating signal is received

This commit adds signal handlers that flush telemetry data
before the process is terminated.

Changed files:
filename: ext/telemetry/lib.rs
patch: @@ -770,9 +770,87 @@ pub fn init(
     })
     .map_err(|_| deno_core::anyhow::anyhow!("failed to set otel globals"))?;
 
+  setup_signal_handlers();
   Ok(())
 }
 
+#[cfg(unix)]
+fn setup_signal_handlers() {
+  use tokio::signal::unix::SignalKind;
+
+  let signals_to_handle = [
+    SignalKind::hangup(),
+    SignalKind::interrupt(),
+    SignalKind::terminate(),
+  ];
+
+  for signal_kind in signals_to_handle {
+    tokio::spawn(async move {
+      let Ok(mut signal_fut) = tokio::signal::unix::signal(signal_kind) else {
+        return;
+      };
+
+      loop {
+        signal_fut.recv().await;
+        flush();
+      }
+    });
+  }
+}
+
+#[cfg(windows)]
+fn setup_signal_handlers() {
+  tokio::spawn(async {
+    let Ok(mut signal_fut) = tokio::signal::windows::ctrl_break() else {
+      return;
+    };
+    loop {
+      signal_fut.recv().await;
+      flush();
+    }
+  });
+
+  tokio::spawn(async {
+    let Ok(mut signal_fut) = tokio::signal::windows::ctrl_c() else {
+      return;
+    };
+    loop {
+      signal_fut.recv().await;
+      flush();
+    }
+  });
+
+  tokio::spawn(async {
+    let Ok(mut signal_fut) = tokio::signal::windows::ctrl_close() else {
+      return;
+    };
+    loop {
+      signal_fut.recv().await;
+      flush();
+    }
+  });
+
+  tokio::spawn(async {
+    let Ok(mut signal_fut) = tokio::signal::windows::ctrl_logoff() else {
+      return;
+    };
+    loop {
+      signal_fut.recv().await;
+      flush();
+    }
+  });
+
+  tokio::spawn(async {
+    let Ok(mut signal_fut) = tokio::signal::windows::ctrl_shutdown() else {
+      return;
+    };
+    loop {
+      signal_fut.recv().await;
+      flush();
+    }
+  });
+}
+
 /// This function is called by the runtime whenever it is about to call
 /// `process::exit()`, to ensure that all OpenTelemetry logs are properly
 /// flushed before the process terminates.
Repository: ggml-org/llama.cpp
Pull request: ci : enable Vulkan workflow on Mac


Changed files:
filename: .github/workflows/build.yml
patch: @@ -1424,16 +1424,15 @@ jobs:
         run: |
           GG_BUILD_METAL=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
 
-# TODO: install vulkan drivers
-#  ggml-ci-mac-vulkan:
-#    runs-on: [self-hosted, macOS, ARM64]
-#
-#    steps:
-#      - name: Clone
-#        id: checkout
-#        uses: actions/checkout@v4
-#
-#      - name: Test
-#        id: ggml-ci
-#        run: |
-#          GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
+  ggml-ci-mac-vulkan:
+    runs-on: [self-hosted, macOS, ARM64]
+
+    steps:
+      - name: Clone
+        id: checkout
+        uses: actions/checkout@v4
+
+      - name: Test
+        id: ggml-ci
+        run: |
+          GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp

filename: ci/run.sh
patch: @@ -92,6 +92,12 @@ fi
 
 if [ ! -z ${GG_BUILD_VULKAN} ]; then
     CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_VULKAN=1"
+
+    # if on Mac, disable METAL
+    if [[ "$OSTYPE" == "darwin"* ]]; then
+        CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_METAL=OFF -DGGML_BLAS=OFF"
+    fi
+
 fi
 
 if [ ! -z ${GG_BUILD_WEBGPU} ]; then
Repository: facebook/react
Pull request: Convert ResponderEventPlugin to createRoot


Changed files:
filename: packages/react-native-renderer/src/__tests__/ResponderEventPlugin-test.internal.js
patch: @@ -1377,11 +1377,12 @@ describe('ResponderEventPlugin', () => {
     expect(ResponderEventPlugin._getResponder()).toBe(null);
   });
 
-  it('should determine the first common ancestor correctly', () => {
+  it('should determine the first common ancestor correctly', async () => {
     // This test was moved here from the ReactTreeTraversal test since only the
     // ResponderEventPlugin uses `getLowestCommonAncestor`
     const React = require('react');
-    const ReactTestUtils = require('react-dom/test-utils');
+    const ReactDOMClient = require('react-dom/client');
+    const act = require('internal-test-utils').act;
     const getLowestCommonAncestor =
       require('react-native-renderer/src/legacy-events/ResponderEventPlugin').getLowestCommonAncestor;
     // This works by accident and will likely break in the future.
@@ -1422,7 +1423,12 @@ describe('ResponderEventPlugin', () => {
       }
     }
 
-    const parent = ReactTestUtils.renderIntoDocument(<ParentComponent />);
+    const container = document.createElement('div');
+    const root = ReactDOMClient.createRoot(container);
+    let parent;
+    await act(() => {
+      root.render(<ParentComponent ref={current => (parent = current)} />);
+    });
 
     const ancestors = [
       // Common ancestor with self is self.