helloadhavan/github_issues huggingface dataset:
Repository: facebook/react
Pull request: [Fiber] Support moveBefore at the top level of a container

Parity with appendChild and insertBefore. This allows reordering at the root while preserving state.

Changed files:
filename: packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js
patch: @@ -793,10 +793,20 @@ export function appendChildToContainer(
   let parentNode;
   if (container.nodeType === COMMENT_NODE) {
     parentNode = (container.parentNode: any);
-    parentNode.insertBefore(child, container);
+    if (supportsMoveBefore) {
+      // $FlowFixMe[prop-missing]: We've checked this with supportsMoveBefore.
+      parentNode.moveBefore(child, container);
+    } else {
+      parentNode.insertBefore(child, container);
+    }
   } else {
     parentNode = container;
-    parentNode.appendChild(child);
+    if (supportsMoveBefore) {
+      // $FlowFixMe[prop-missing]: We've checked this with supportsMoveBefore.
+      parentNode.moveBefore(child, null);
+    } else {
+      parentNode.appendChild(child);
+    }
   }
   // This container might be used for a portal.
   // If something inside a portal is clicked, that click should bubble
@@ -835,9 +845,19 @@ export function insertInContainerBefore(
   beforeChild: Instance | TextInstance | SuspenseInstance,
 ): void {
   if (container.nodeType === COMMENT_NODE) {
-    (container.parentNode: any).insertBefore(child, beforeChild);
+    if (supportsMoveBefore) {
+      // $FlowFixMe[prop-missing]: We've checked this with supportsMoveBefore.
+      (container.parentNode: any).moveBefore(child, beforeChild);
+    } else {
+      (container.parentNode: any).insertBefore(child, beforeChild);
+    }
   } else {
-    container.insertBefore(child, beforeChild);
+    if (supportsMoveBefore) {
+      // $FlowFixMe[prop-missing]: We've checked this with supportsMoveBefore.
+      container.moveBefore(child, beforeChild);
+    } else {
+      container.insertBefore(child, beforeChild);
+    }
   }
 }
Repository: ggml-org/llama.cpp
Pull request: ci : add metal server workflows

target #19266
cont #18919 

Add server workflows running on Metal backend. Utilize Metal virtual devices to simulate and exercise multi-GPU workflows.

- [ ] ~Draft until I buy another self-hosted Mac Mini to run these~ The Mac Minis are out of stock here, so changed to run the multi-GPU workflows only on `master` branch for now

Changed files:
filename: .github/workflows/server-metal.yml
patch: @@ -0,0 +1,73 @@
+name: Server-Metal
+
+on:
+  workflow_dispatch: # allows manual triggering
+    inputs:
+      sha:
+        description: 'Commit SHA1 to build'
+        required: false
+        type: string
+      slow_tests:
+        description: 'Run slow tests'
+        required: true
+        type: boolean
+  push:
+    branches:
+      - master
+    paths: ['.github/workflows/server-metal.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'tools/server/**.*']
+
+env:
+  LLAMA_LOG_COLORS: 1
+  LLAMA_LOG_PREFIX: 1
+  LLAMA_LOG_TIMESTAMPS: 1
+  LLAMA_LOG_VERBOSITY: 10
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.run_id }}
+  cancel-in-progress: true
+
+jobs:
+  server-metal:
+    runs-on: [self-hosted, macOS, ARM64]
+
+    name: server-metal (${{ matrix.wf_name }})
+    strategy:
+      matrix:
+        build_type: [Release]
+        wf_name: ["GPUx1"]
+        include:
+          - build_type: Release
+            extra_args: "LLAMA_ARG_BACKEND_SAMPLING=1"
+            wf_name:    "GPUx1, backend-sampling"
+          - build_type: Release
+            extra_args: "GGML_METAL_DEVICES=2"
+            wf_name:    "GPUx2"
+          - build_type: Release
+            extra_args: "GGML_METAL_DEVICES=2 LLAMA_ARG_BACKEND_SAMPLING=1"
+            wf_name:    "GPUx2, backend-sampling"
+      fail-fast: false
+
+    steps:
+      - name: Clone
+        id: checkout
+        uses: actions/checkout@v6
+        with:
+          fetch-depth: 0
+          ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }}
+
+      - name: Build
+        id: cmake_build
+        run: |
+          cmake -B build -DGGML_SCHED_NO_REALLOC=ON
+          cmake --build build --config ${{ matrix.build_type }} -j $(sysctl -n hw.logicalcpu) --target llama-server
+
+      - name: Tests
+        id: server_integration_tests
+        if: ${{ (!matrix.disabled_on_pr || !github.event.pull_request) }}
+        run: |
+          cd tools/server/tests
+          python3 -m venv venv
+          source venv/bin/activate
+          pip install -r requirements.txt
+          export ${{ matrix.extra_args }}
+          pytest -v -x -m "not slow"
Repository: huggingface/transformers
Pull request: fix regression

# What does this PR do?
This PR fixes https://github.com/huggingface/transformers/issues/42565. There was a minor issue in the FP8 logic. 

Changed files:
filename: src/transformers/integrations/finegrained_fp8.py
patch: @@ -316,21 +316,17 @@ def __init__(
     ):
         super().__init__(in_features, out_features)
 
-        # If block size, is not passed, it means that we are doing per-tensor quantization
-        if block_size is not None:
-            self.block_size = block_size
-        else:
-            self.block_size = (out_features, in_features)
-
+        # If block size is None, it means that we are doing per-tensor quantization
+        self.block_size = block_size
         self.activation_scheme = activation_scheme
 
         self.weight = torch.nn.Parameter(torch.empty(out_features, in_features, dtype=dtype))
-        scale_out_features = (out_features + block_size[0] - 1) // block_size[0]
-        scale_in_features = (in_features + block_size[1] - 1) // block_size[1]
 
-        if scale_out_features * scale_in_features == 1:
+        if self.block_size is None:
             self.weight_scale_inv = nn.Parameter(torch.tensor(1.0, dtype=torch.float32))
         else:
+            scale_out_features = (out_features + self.block_size[0] - 1) // self.block_size[0]
+            scale_in_features = (in_features + self.block_size[1] - 1) // self.block_size[1]
             self.weight_scale_inv = nn.Parameter(
                 torch.empty(scale_out_features, scale_in_features, dtype=torch.float32)
             )
Repository: ollama/ollama
Pull request: Document uninstall on windows

Fixes #4920 

Changed files:
filename: docs/windows.md
patch: @@ -48,6 +48,9 @@ the explorer window by hitting `<cmd>+R` and type in:
 - `explorer %HOMEPATH%\.ollama` contains models and configuration
 - `explorer %TEMP%` contains temporary executable files in one or more `ollama*` directories
 
+## Uninstall
+
+The Ollama Windows installer registers an Uninstaller application.  Under `Add or remove programs` in Windows Settings, you can uninstall Ollama.
 
 ## Standalone CLI
Repository: electron/electron
Pull request: fix: use correct signal variable in nan-spec-runner install check

Backport of #48639

See that PR for details.


Notes: Fixed incorrect signal variable reference in nan-spec-runner that could cause install failures to go undetected.


Changed files:
filename: script/nan-spec-runner.js
patch: @@ -112,16 +112,16 @@ async function main () {
     return process.exit(buildStatus !== 0 ? buildStatus : signal);
   }
 
-  const { status: installStatus } = cp.spawnSync(NPX_CMD, [`yarn@${YARN_VERSION}`, 'install'], {
+  const { status: installStatus, signal: installSignal } = cp.spawnSync(NPX_CMD, [`yarn@${YARN_VERSION}`, 'install'], {
     env,
     cwd: NAN_DIR,
     stdio: 'inherit',
     shell: process.platform === 'win32'
   });
 
-  if (installStatus !== 0 || signal != null) {
+  if (installStatus !== 0 || installSignal != null) {
     console.error('Failed to install nan node_modules');
-    return process.exit(installStatus !== 0 ? installStatus : signal);
+    return process.exit(installStatus !== 0 ? installStatus : installSignal);
   }
 
   const onlyTests = args.only?.split(',');
Repository: nodejs/node
Pull request: tools: update gyp-next to 0.21.0

This is an automated update of gyp-next to 0.21.0.

Changed files:
filename: tools/gyp/CHANGELOG.md
patch: @@ -1,5 +1,12 @@
 # Changelog
 
+## [0.21.0](https://github.com/nodejs/gyp-next/compare/v0.20.5...v0.21.0) (2025-11-04)
+
+
+### Features
+
+* add support for Visual Studio 2026 ([#319](https://github.com/nodejs/gyp-next/issues/319)) ([cb13bbc](https://github.com/nodejs/gyp-next/commit/cb13bbc4ab7a7d86b51221b39ebee4281e1d3e19))
+
 ## [0.20.5](https://github.com/nodejs/gyp-next/compare/v0.20.4...v0.20.5) (2025-10-13)
 
 

filename: tools/gyp/pylib/gyp/MSVSVersion.py
patch: @@ -270,6 +270,18 @@ def _CreateVersion(name, path, sdk_based=False):
     if path:
         path = os.path.normpath(path)
     versions = {
+        "2026": VisualStudioVersion(
+            "2026",
+            "Visual Studio 2026",
+            solution_version="12.00",
+            project_version="18.0",
+            flat_sln=False,
+            uses_vcxproj=True,
+            path=path,
+            sdk_based=sdk_based,
+            default_toolset="v145",
+            compatible_sdks=["v8.1", "v10.0"],
+        ),
         "2022": VisualStudioVersion(
             "2022",
             "Visual Studio 2022",
@@ -462,6 +474,7 @@ def _DetectVisualStudioVersions(versions_to_check, force_express):
         "15.0": "2017",
         "16.0": "2019",
         "17.0": "2022",
+        "18.0": "2026",
     }
     versions = []
     for version in versions_to_check:
@@ -537,7 +550,18 @@ def SelectVisualStudioVersion(version="auto", allow_fallback=True):
     if version == "auto":
         version = os.environ.get("GYP_MSVS_VERSION", "auto")
     version_map = {
-        "auto": ("17.0", "16.0", "15.0", "14.0", "12.0", "10.0", "9.0", "8.0", "11.0"),
+        "auto": (
+            "18.0",
+            "17.0",
+            "16.0",
+            "15.0",
+            "14.0",
+            "12.0",
+            "10.0",
+            "9.0",
+            "8.0",
+            "11.0",
+        ),
         "2005": ("8.0",),
         "2005e": ("8.0",),
         "2008": ("9.0",),
@@ -552,6 +576,7 @@ def SelectVisualStudioVersion(version="auto", allow_fallback=True):
         "2017": ("15.0",),
         "2019": ("16.0",),
         "2022": ("17.0",),
+        "2026": ("18.0",),
     }
     if override_path := os.environ.get("GYP_MSVS_OVERRIDE_PATH"):
         msvs_version = os.environ.get("GYP_MSVS_VERSION")

filename: tools/gyp/pyproject.toml
patch: @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
 
 [project]
 name = "gyp-next"
-version = "0.20.5"
+version = "0.21.0"
 authors = [
   { name="Node.js contributors", email="ryzokuken@disroot.org" },
 ]
Repository: vuejs/vue
Pull request: Warn when defining a method with same name as a prop

When you specify a method on a component with the same name as a prop you get an error about mutating a prop directly, but it can be hard for people new to vue to figure out what this means.

This PR adds a more explicit warning message indicating exactly what went wrong.

Changed files:
filename: src/core/instance/state.js
patch: @@ -183,14 +183,23 @@ function createComputedGetter (key) {
 }
 
 function initMethods (vm: Component, methods: Object) {
+  const props = vm.$options.props
   for (const key in methods) {
     vm[key] = methods[key] == null ? noop : bind(methods[key], vm)
-    if (process.env.NODE_ENV !== 'production' && methods[key] == null) {
-      warn(
-        `method "${key}" has an undefined value in the component definition. ` +
-        `Did you reference the function correctly?`,
-        vm
-      )
+    if (process.env.NODE_ENV !== 'production') {
+      if (methods[key] == null) {
+        warn(
+          `method "${key}" has an undefined value in the component definition. ` +
+          `Did you reference the function correctly?`,
+          vm
+        )
+      }
+      if (props && hasOwn(props, key)) {
+        warn(
+          `method "${key}" has already been defined as a prop.`,
+          vm
+        )
+      }
     }
   }
 }

filename: test/unit/features/options/props.spec.js
patch: @@ -306,6 +306,27 @@ describe('Options props', () => {
     expect('already declared as a prop').toHaveBeenWarned()
   })
 
+  it('should warn methods already defined as a prop', () => {
+    new Vue({
+      template: '<test a="1"></test>',
+      components: {
+        test: {
+          template: '<div></div>',
+          props: {
+            a: null
+          },
+          methods: {
+            a () {
+
+            }
+          }
+        }
+      }
+    }).$mount()
+    expect(`method "a" has already been defined as a prop`).toHaveBeenWarned()
+    expect(`Avoid mutating a prop directly`).toHaveBeenWarned()
+  })
+
   it('treat boolean props properly', () => {
     const vm = new Vue({
       template: '<comp ref="child" prop-a prop-b="prop-b"></comp>',
Repository: vercel/next.js
Pull request: [test] Deflake `use-cache-router-handler-only` in deploy tests

https://app.datadoghq.com/ci/test/runs?query=test_level%3Atest%20%40test.source.file%3Atest%2Fe2e%2Fapp-dir%2Fuse-cache-route-handler-only%2Fuse-cache-route-handler-only.test.ts%20%40test.status%3Afail&agg_m=count&agg_m_source=base&agg_t=count&currentTab=overview&eventStack=&fromUser=true&index=citest&start=1761983144717&end=1764575144717&paused=true

`'use cache'` isn't cached across requests on Vercel. This is basically just a static route for Vercel.

Changed files:
filename: test/e2e/app-dir/use-cache-route-handler-only/use-cache-route-handler-only.test.ts
patch: @@ -1,9 +1,10 @@
 import { nextTestSetup } from 'e2e-utils'
+import { retry } from 'next-test-utils'
 
 // Explicitly don't mix route handlers with pages in this test app, to make sure
 // that this also works in isolation.
 describe('use-cache-route-handler-only', () => {
-  const { next } = nextTestSetup({
+  const { next, isNextDeploy } = nextTestSetup({
     files: __dirname,
   })
 
@@ -18,14 +19,20 @@ describe('use-cache-route-handler-only', () => {
     const response1 = await next.fetch('/node')
     const { date1: date1a } = await response1.json()
 
-    // Revalidate the prerendered response.
-    await next.fetch('/revalidate', { method: 'POST' })
+    const attemptOnce: typeof retry = async (fn) => fn()
+    const retryIfDeployed = isNextDeploy ? retry : attemptOnce
 
-    // Fetch the response again. This should trigger a blocking revalidation.
-    const response2 = await next.fetch('/node')
-    expect(response2.status).toBe(200)
+    // Revalidation on Vercel isn't instant.
+    await retryIfDeployed(async () => {
+      // Revalidate the prerendered response.
+      await next.fetch('/revalidate', { method: 'POST' })
 
-    const { date1: date1b } = await response2.json()
-    expect(date1a).not.toBe(date1b)
+      // Fetch the response again. This should trigger a blocking revalidation.
+      const response2 = await next.fetch('/node')
+      expect(response2.status).toBe(200)
+
+      const { date1: date1b } = await response2.json()
+      expect(date1a).not.toBe(date1b)
+    })
   })
 })
Repository: huggingface/transformers
Pull request: Add backward compatibility for methods which have been moved to `RotaryEmbeddingConfigMixin`

This function was moved in https://github.com/huggingface/transformers/pull/42255. Many custom code models import this function, which is arguably good practise as it shows they are leveraging our first party utilities.

This PR reinstates the function by calling the methods which now live in `RotaryEmbeddingConfigMixin` so that these custom code models will continue to work with Transformers v5.

Changed files:
filename: src/transformers/modeling_rope_utils.py
patch: @@ -13,6 +13,7 @@
 # limitations under the License.
 
 import math
+import warnings
 from functools import wraps
 from typing import TYPE_CHECKING, Optional, TypedDict
 
@@ -656,7 +657,7 @@ def standardize_rope_params(self):
         # Move `rope_theta` and `partial_rotary_factor` to the params dict, if not there yet
         rope_theta = getattr(self, "rope_theta", None)
         partial_rotary_factor = getattr(self, "partial_rotary_factor", None)
-        rope_parameters = self.rope_parameters
+        rope_parameters = self.rope_parameters or {}
 
         # Case 1: RoPE param keys do not intersect with possible `layer_types` -> one global dict
         if getattr(self, "layer_types", None) is None or not set(rope_parameters.keys()).issubset(self.layer_types):
@@ -913,3 +914,20 @@ def _check_received_keys(
             unused_keys = received_keys - required_keys
         if unused_keys:
             logger.warning(f"Unrecognized keys in `rope_parameters` for 'rope_type'='{rope_type}': {unused_keys}")
+
+
+def rope_config_validation(config: RotaryEmbeddingConfigMixin, ignore_keys: Optional[set] = None):
+    """
+    This is a deprecated function.
+    It has been kept for backward compatibility with custom code models.
+    """
+    warnings.warn(
+        "`rope_config_validation` is deprecated and has been removed. "
+        "Its functionality has been moved to RotaryEmbeddingConfigMixin.validate_rope method. "
+        "PreTrainedConfig inherits this class, so please call self.validate_rope() instead. "
+        "Also, make sure to use the new rope_parameters syntax. "
+        "You can call self.standardize_rope_params() in the meantime.",
+        FutureWarning,
+    )
+    config.standardize_rope_params()
+    config.validate_rope(ignore_keys=ignore_keys)
Repository: ollama/ollama
Pull request: Update gpu.md: Add RTX 3050 Ti and RTX 3050 Ti

Seems strange that the laptop versions of 3050 and 3050 Ti would be supported but not the non-notebook, but this is what the page (https://developer.nvidia.com/cuda-gpus) says.

Changed files:
filename: docs/gpu.md
patch: @@ -10,7 +10,7 @@ Check your compute compatibility to see if your card is supported:
 | 9.0                | NVIDIA              | `H100`                                                                                                      |
 | 8.9                | GeForce RTX 40xx    | `RTX 4090` `RTX 4080 SUPER` `RTX 4080` `RTX 4070 Ti SUPER` `RTX 4070 Ti` `RTX 4070 SUPER` `RTX 4070` `RTX 4060 Ti` `RTX 4060`  |
 |                    | NVIDIA Professional | `L4` `L40` `RTX 6000`                                                                                       |
-| 8.6                | GeForce RTX 30xx    | `RTX 3090 Ti` `RTX 3090` `RTX 3080 Ti` `RTX 3080` `RTX 3070 Ti` `RTX 3070` `RTX 3060 Ti` `RTX 3060`         |
+| 8.6                | GeForce RTX 30xx    | `RTX 3090 Ti` `RTX 3090` `RTX 3080 Ti` `RTX 3080` `RTX 3070 Ti` `RTX 3070` `RTX 3060 Ti` `RTX 3060` `RTX 3050 Ti` `RTX 3050`   |
 |                    | NVIDIA Professional | `A40` `RTX A6000` `RTX A5000` `RTX A4000` `RTX A3000` `RTX A2000` `A10` `A16` `A2`                          |
 | 8.0                | NVIDIA              | `A100` `A30`                                                                                                |
 | 7.5                | GeForce GTX/RTX     | `GTX 1650 Ti` `TITAN RTX` `RTX 2080 Ti` `RTX 2080` `RTX 2070` `RTX 2060`                                    |
Repository: vuejs/vue
Pull request: fix doc comment typo

<!--
Please make sure to read the Pull Request Guidelines:
https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#pull-request-guidelines
-->


Changed files:
filename: src/core/instance/state.js
patch: @@ -58,7 +58,7 @@ function initProps (vm: Component, propsOptions: Object) {
   const propsData = vm.$options.propsData || {}
   const props = vm._props = {}
   // cache prop keys so that future props updates can iterate using Array
-  // instead of dyanmic object key enumeration.
+  // instead of dynamic object key enumeration.
   const keys = vm.$options._propKeys = []
   const isRoot = !vm.$parent
   // root instance props should be converted
Repository: vuejs/vue
Pull request: support $on multi event - #4856

#4856 


Changed files:
filename: flow/component.js
patch: @@ -41,7 +41,7 @@ declare interface Component {
   $set: (obj: Array<mixed> | Object, key: mixed, val: mixed) => void;
   $delete: (obj: Object, key: string) => void;
   $watch: (expOrFn: string | Function, cb: Function, options?: Object) => Function;
-  $on: (event: string, fn: Function) => Component;
+  $on: (event: string | Array<string>, fn: Function) => Component;
   $once: (event: string, fn: Function) => Component;
   $off: (event?: string, fn?: Function) => Component;
   $emit: (event: string, ...args: Array<mixed>) => Component;

filename: src/core/instance/events.js
patch: @@ -38,13 +38,19 @@ export function updateComponentListeners (
 
 export function eventsMixin (Vue: Class<Component>) {
   const hookRE = /^hook:/
-  Vue.prototype.$on = function (event: string, fn: Function): Component {
+  Vue.prototype.$on = function (event: string | Array<string>, fn: Function): Component {
     const vm: Component = this
-    ;(vm._events[event] || (vm._events[event] = [])).push(fn)
-    // optimize hook:event cost by using a boolean flag marked at registration
-    // instead of a hash lookup
-    if (hookRE.test(event)) {
-      vm._hasHookEvent = true
+    if (Array.isArray(event)) {
+      for (let i = 0, l = event.length; i < l; i++) {
+        this.$on(event[i], fn)
+      }
+    } else {
+      (vm._events[event] || (vm._events[event] = [])).push(fn)
+      // optimize hook:event cost by using a boolean flag marked at registration
+      // instead of a hash lookup
+      if (hookRE.test(event)) {
+        vm._hasHookEvent = true
+      }
     }
     return vm
   }

filename: test/unit/features/instance/methods-events.spec.js
patch: @@ -18,6 +18,19 @@ describe('Instance methods events', () => {
     expect(spy).toHaveBeenCalledWith(1, 2, 3, 4)
   })
 
+  it('$on multi event', () => {
+    vm.$on(['test1', 'test2'], function () {
+      expect(this).toBe(vm)
+      spy.apply(this, arguments)
+    })
+    vm.$emit('test1', 1, 2, 3, 4)
+    expect(spy.calls.count()).toBe(1)
+    expect(spy).toHaveBeenCalledWith(1, 2, 3, 4)
+    vm.$emit('test2', 5, 6, 7, 8)
+    expect(spy.calls.count()).toBe(2)
+    expect(spy).toHaveBeenCalledWith(5, 6, 7, 8)
+  })
+
   it('$once', () => {
     vm.$once('test', spy)
     vm.$emit('test', 1, 2, 3)

filename: types/vue.d.ts
patch: @@ -59,7 +59,7 @@ export declare class Vue {
     callback: WatchHandler<this, T>,
     options?: WatchOptions
   ): (() => void);
-  $on(event: string, callback: Function): this;
+  $on(event: string | string[], callback: Function): this;
   $once(event: string, callback: Function): this;
   $off(event?: string, callback?: Function): this;
   $emit(event: string, ...args: any[]): this;