Selected changesmerged Sep 28, 2026 – Oct 4, 2026
fix(next/image): Pin DNS resolution when fetching external images TypeScript · 362 + / 55 −
Introduces 13 new declarations in packages/next/src/server/image-optimizer.ts.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
packages/next/src/server/image-optimizer.ts ↗ · 5 files
@@ -518,24 +537,286 @@ function isRedirect(statusCode: number) { return [301, 302, 303, 307, 308].includes(statusCode) } +function upstreamTimedOut(href: string): ImageError {+ Log.error('upstream image response timed out for', href)+ return new ImageError(+ 504,+ '"url" parameter is valid but upstream response timed out'+ )+}++const agentOptions = {+ keepAlive: true,+ timeout: 7_000,+}+type ImageRequestOptions = HttpRequestOptions & { imageLookupKey?: string }+type AgentGetName = (options?: HttpRequestOptions) => string++const getHttpAgentName = (+ HttpAgent.prototype as HttpAgent & { getName: AgentGetName }+).getName+const getHttpsAgentName = (+ HttpsAgent.prototype as HttpsAgent & { getName: AgentGetName }+).getName++class ImageHttpAgent extends HttpAgent {+ getName(options: ImageRequestOptions = {}): string {+ return `${getHttpAgentName.call(this, options)}:${options.imageLookupKey ?? ''}`+ }+}++class ImageHttpsAgent extends HttpsAgent {+ getName(options: ImageRequestOptions = {}): string {
fix: Improve Dial rendering and themingPython · 111 + / 20 −
Introduces 9 new declarations in panel/widgets/indicators.py.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
panel/widgets/indicators.py ↗ · 3 files
@@ -705,17 +705,98 @@ def __init__(self, **params): def _update_value_bounds(self): self.param.value.bounds = self.bounds + @property+ def _unfilled_color(self) -> str:+ # Without an outline, whitesmoke is indistinguishable from a white page.+ if self.unfilled_color:+ return self.unfilled_color+ return '#424242' if config.theme == 'dark' else '#e8e8e8'++ def _angles(self) -> tuple[float, float, float]:+ start = (np.radians(360-self.start_angle) - pi % (2*pi)) + pi+ end = (np.radians(360-self.end_angle) - pi % (2*pi)) + pi+ distance = (abs(end-start) % (pi*2))+ if end>start:+ distance = (pi*2)-distance+ return start, end, distance++ def _size(self) -> tuple[int, int]:+ height = self.height or self.width or 250+ return self.width or height, height++ def _font_sizes(self) -> tuple[str, str, str]:+ scale = (self._size()[1]/400)+ title_size = self.title_size if self.title_size else '%spt' % (scale*32)+ value_size = self.value_size if self.value_size else '%spt' % (scale*48)+ tick_size = self.tick_size if self.tick_size else '%spt' % (scale*18)+ return title_size, value_size, tick_size++ @staticmethod+ def _font_px(size: str) -> float:+ # Only reserves layout space, so a rough guess for unknown units is fine.+ try:
DRA ResourceSlice + ResourceClaim[Template]: reject qualified names with more than one slashGo · 72 + / 83 −
Introduces 8 new declarations in pkg/apis/resource/validation/validation.go.
Adds new systems design rather than adjusting what was there. Tests changed with it, with code of their own.
pkg/apis/resource/validation/validation.go ↗ · 5 files
@@ -1074,31 +1069,33 @@ func validateDevice(device resource.Device, oldDevice *resource.Device, fldPath } allErrs = append(allErrs, validateMap(device.Attributes, -1, attributeAndCapacityMaxKeyLength, validateQualifiedName, validateDeviceAttribute, fldPath.Child("attributes"))...)- // If the entire capacity is the same as before then validation can be skipped.- // We could also do the DeepEqual on the entire spec, but here it is a bit cheaper.- if oldDevice == nil || !apiequality.Semantic.DeepEqual(oldDevice.Capacity, device.Capacity) {- if allowMultipleAllocations {- allErrs = append(allErrs, validateMap(device.Capacity, -1, attributeAndCapacityMaxKeyLength, validateQualifiedName, validateMultiAllocatableDeviceCapacity, fldPath.Child("capacity"))...)- } else {- allErrs = append(allErrs, validateMap(device.Capacity, -1, attributeAndCapacityMaxKeyLength, validateQualifiedName, validateSingleAllocatableDeviceCapacity, fldPath.Child("capacity"))...)- }- }- // If the entire set is the same as before then validation can be skipped.- // We could also do the DeepEqual on the entire spec, but here it is a bit cheaper.- if oldDevice == nil || !apiequality.Semantic.DeepEqual(oldDevice.Taints, device.Taints) {- allErrs = append(allErrs, validateSlice(device.Taints, resource.DeviceTaintsMaxLength,- func(taint resource.DeviceTaint, fldPath *field.Path) field.ErrorList {- return validateDeviceTaint(taint, nil, fldPath)- },- fldPath.Child("taints"))...)+ if allowMultipleAllocations {+ allErrs = append(allErrs, validateMap(device.Capacity, -1, attributeAndCapacityMaxKeyLength, validateQualifiedName, validateMultiAllocatableDeviceCapacity, fldPath.Child("capacity"))...)+ } else {+ allErrs = append(allErrs, validateMap(device.Capacity, -1, attributeAndCapacityMaxKeyLength, validateQualifiedName, validateSingleAllocatableDeviceCapacity, fldPath.Child("capacity"))...) }+ allErrs = append(allErrs, validateSlice(device.Taints, resource.DeviceTaintsMaxLength,+ func(taint resource.DeviceTaint, fldPath *field.Path) field.ErrorList {+ return validateDeviceTaint(taint, nil, fldPath)+ },+ fldPath.Child("taints"))...) allErrs = append(allErrs, validateSet(device.ConsumesCounters, resource.ResourceSliceMaxDeviceCounterConsumptionsPerDevice, validateDeviceCounterConsumption,
[ai-upgrade] Ask user whether to start upgrade in worktreeTypeScript · 47 + / 9 −
Introduces 3 new declarations in packages/next/src/lib/upgrade/harness.ts.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
packages/next/src/lib/upgrade/harness.ts ↗ · 5 files
@@ -21,6 +21,27 @@ type UpgradeHarness = { path: string } +type UpgradePrompt = string | ((useWorktree: boolean | null) => string)++function resolvePrompt(+ prompt: UpgradePrompt,+ useWorktree: boolean | null+): string {+ return typeof prompt === 'string' ? prompt : prompt(useWorktree)+}++async function chooseWorktree(): Promise<boolean> {+ Log.bootstrap(' Open the upgrade in a separate Git worktree?')+ const { id } = await cliSelect({+ values: { yes: 'Yes', no: 'No' },+ defaultValue: 0,+ selected: cyan('❯'),+ unselected: ' ',+ indentation: 2,+ })+ return id === 'yes'+}+ function getHarnessDisplayName(name: UpgradeHarness['name']): string { return name === 'codex' ? 'Codex' : 'Claude Code' }
ENH: respect display.precision for complex and float Interval values (GH#25920)Python · 123 + / 28 −
Introduces 5 new declarations in pandas/io/formats/format.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
pandas/io/formats/format.py ↗ · 7 files
@@ -1569,6 +1577,84 @@ def _format_strings(self) -> list[str]: return fmt_values +def _format_complex(value: complex, float_format: FloatFormatType | None) -> str:+ """+ Format a complex scalar from an object-dtype array.++ ``float_format`` is applied to each part separately so that formats+ written for floats also work here.+ """+ if float_format is None:+ return printing.format_with_precision(value)+ if isinstance(float_format, str):+ # "%"-style strings reach here unconverted+ fmt_str = float_format+ float_format = lambda part: fmt_str % part+ real = str(float_format(value.real)).strip()+ imag = str(float_format(value.imag)).strip()+ if not imag.startswith("-"):+ imag = f"+{imag}"+ return f"({real}{imag}j)"+++def _maybe_format_float_intervals(+ values: ArrayLike,+ formatter: Callable | None,+ float_format: FloatFormatType | None,+ decimal: str,+) -> ArrayLike:+ """+ Pre-format float-endpoint Interval column values (GH#25920).++ Only column values go through here; index labels and Categorical
cacher: stream watch cache snapshots without an item sliceGo · 47 + / 43 −
Introduces 7 new declarations in staging/src/k8s.io/apiserver/pkg/storage/cacher/watch_cache_interval.go.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
staging/src/k8s.io/apiserver/pkg/storage/cacher/watch_cache_interval.go ↗ · 4 files
@@ -250,55 +266,46 @@ type snapshotCacheIntervalSource struct { buffer *watchCacheIntervalBuffer } -func (s *snapshotCacheIntervalSource) Next() (*watchCacheEvent, error) {+func (s *snapshotCacheIntervalSource) next() (*watchCacheEvent, error) { event, exists := s.buffer.next() if !exists { return nil, nil } return event, nil } +func (s *snapshotCacheIntervalSource) All() iter.Seq2[*watchCacheEvent, error] {+ return eventsFromNext(s.next)+}+ // lazySnapshotCacheIntervalSource serves events from an immutable snapshot.-// The snapshot reference is captured under the watchCache lock, but the O(N)-// traversal that materializes the events is deferred until the first Next()-// call so that it runs off the watchCache lock.+// The snapshot reference is captured under the watchCache lock, while its+// contents are traversed one event at a time after releasing that lock. type lazySnapshotCacheIntervalSource struct { // snapshot is an immutable point-in-time copy of the store. snapshot store.Snapshot // resourceVersion is assigned to every watchCacheEvent produced by this source. resourceVersion uint64- // loaded indicates whether items has been materialized from the snapshot.- loaded bool- // items holds the result of OrderedListPrefix, populated on the first Next() call- items []interface{}- // currentIndex tracks the current position within items.- currentIndex int
Use snapshot generated for snapshotter to serve reads without lockGo · 25 + / 101 −
Introduces 3 new declarations in staging/src/k8s.io/apiserver/pkg/storage/cacher/store/watch_cache_storage.go.
Adds new systems design rather than adjusting what was there. Tests changed with it, with code of their own.
staging/src/k8s.io/apiserver/pkg/storage/cacher/store/watch_cache_storage.go ↗ · 7 files
@@ -99,70 +105,8 @@ func (w *WatchCacheStorage) MarkConsistent(consistent bool) { } } -func (w *WatchCacheStorage) LatestSnapshotLocked() (Snapshot, bool) {- w.lock.RLock()- defer w.lock.RUnlock()- if w.snapshottingEnabled {- return w.snapshots.Latest()- }- return nil, false-}--func (w *WatchCacheStorage) GetLatestSnapshotOrBuildLocked(key, continueKey string) (Snapshot, error) {- if snap, ok := w.LatestSnapshotLocked(); ok {- // Snapshots are added in order as we update store, so the- // latest snapshot match latest store state and latest revision.- return snap, nil- }- // TODO: Consider using Indexer Clone() after benchmarking.- items, err := w.OrderedListPrefix(key, continueKey)- if err != nil {- return nil, err- }- return orderedListSnapshot{Items: items}, nil-}--type orderedListSnapshot struct {- Items []interface{}-}--var _ Snapshot = (*orderedListSnapshot)(nil)--func (o orderedListSnapshot) GetByKey(key string) (interface{}, bool, error) {
add `Div` and `Mul` for `Complex<{float}>`Rust · 74 + / 1 −
Introduces 6 new declarations in library/core/src/num/complex.rs.
Adds new language design rather than adjusting what was there. Tests changed with it, with code of their own.
library/core/src/num/complex.rs ↗ · 4 files
@@ -91,3 +92,54 @@ impl<T: Sub<Output = T>> Sub<T> for Complex<T> { Complex::new(self.re - rhs, self.im) } }++macro_rules! impl_complex_mul_div {+ ($ty:ty, $mul:ident, $div:ident) => {+ #[unstable(feature = "complex_numbers", issue = "154023")]+ impl Mul for Complex<$ty> {+ type Output = Self;++ #[inline]+ fn mul(self, rhs: Self) -> Self::Output {+ let Complex { re: a, im: b } = self;+ let Complex { re: c, im: d } = rhs;++ let ac = a * c;+ let bd = b * d;+ let ad = a * d;+ let bc = b * c;++ let z = Complex::new(ac - bd, ad + bc);++ // Only call the libcall when both components are NaN.+ //+ // The naive algorithm would return NaN + NaNi for an input like+ // (1 + 0i) * (inf + infi). The libcall instead returns inf + infi.+ //+ // We duplicate the fast path here so that it can be inlined. We use a libcall+ // for the NaN correction to reduce the size of `core`.+ if z.re.is_nan() && z.im.is_nan() {+ crate::hint::cold_path();+ $mul(a, b, c, d)+ } else {
model: Add GTE to TransformersPython · 1050 + / 0 −
Introduces 67 new declarations in src/transformers/models/gte/modeling_gte.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
src/transformers/models/gte/modeling_gte.py ↗ · 13 files
@@ -0,0 +1,660 @@+# 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨+# This file was automatically generated from src/transformers/models/gte/modular_gte.py.+# Do NOT edit this file manually as any edits will be overwritten by the generation of+# the file from the modular. If any change should be done, please apply the change to the+# modular_gte.py file directly. One of our CI enforces this.+# 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨+# Copyright 2026 the HuggingFace Team. All rights reserved.+#+# Licensed under the Apache License, Version 2.0 (the "License");+# you may not use this file except in compliance with the License.+# You may obtain a copy of the License at+#+# http://www.apache.org/licenses/LICENSE-2.0+#+# Unless required by applicable law or agreed to in writing, software+# distributed under the License is distributed on an "AS IS" BASIS,+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+# See the License for the specific language governing permissions and+# limitations under the License.++from collections.abc import Callable++import torch+import torch.nn as nn+from torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss++from ...activations import ACT2FN, gelu+from ...integrations import use_kernel_forward_from_hub, use_kernelized_func+from ...masking_utils import create_bidirectional_mask+from ...modeling_layers import GradientCheckpointingLayer+from ...modeling_outputs import (+ BaseModelOutputWithPooling,+ MaskedLMOutput,
perf: Speed up streaming into HTML and Markdown panesTypeScript · 583 + / 49 −
Introduces 23 new declarations in panel/models/html.ts.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
panel/models/html.ts ↗ · 7 files
@@ -28,25 +28,175 @@ function searchAllDOMs(node: Element | ShadowRoot, selector: string): (Element | return found } +/**+ * Replaces the characters between `start` and `end` of the unescaped+ * text with the escaped `patch`, producing `version` of the text.+ */ @server_event("html_stream") export class HTMLStreamEvent extends ModelEvent {- constructor(readonly model: HTML, readonly patch: string, readonly start: number) {+ constructor(readonly model: HTML, readonly patch: string, readonly start: number,+ readonly end: number | null = null, readonly version: number | null = null) { super() this.patch = patch this.start = start+ this.end = end+ this.version = version this.origin = model } protected override get event_values(): Attrs {- return {model: this.origin, patch: this.patch, start: this.start}+ return {model: this.origin, patch: this.patch, start: this.start, end: this.end, version: this.version} } static override from_values(values: object) {- const {model, patch, start} = values as {model: HTML, patch: string, start: number}- return new HTMLStreamEvent(model, patch, start)+ type Values = {model: HTML, patch: string, start: number, end: number | null, version: number | null}+ const {model, patch, start, end, version} = values as Values+ return new HTMLStreamEvent(model, patch, start, end, version) } }
BUG: fix repr of longdouble values outside float64 range (GH#17809)Python · 38 + / 10 −
Introduces 2 new declarations in pandas/io/formats/format.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
pandas/io/formats/format.py ↗ · 3 files
@@ -1373,6 +1374,26 @@ def formatter(value): return formatter + def _fixed_width_format(self, kind: Literal["f", "e"]) -> Callable:+ # np.longdouble.__format__ casts to float64, which turns values outside+ # its range into 0 or inf, so format those with numpy (GH#17809)+ if (+ self.values.dtype == np.longdouble+ and np.finfo(np.longdouble).precision > np.finfo(np.float64).precision+ ):+ return partial(+ _format_longdouble,+ kind=kind,+ digits=self.digits,+ leading_space=self.leading_space,+ )++ if self.leading_space is True:+ fmt_str = "{value: .{digits:d}{kind}}"+ else:+ fmt_str = "{value:.{digits:d}{kind}}"+ return partial(fmt_str.format, digits=self.digits, kind=kind)+ def get_result_as_array(self) -> np.ndarray: """ Returns the float values converted into strings using
Use attribute parser for `#[inline()]` attribute checkRust · 262 + / 58 −
Introduces 16 new declarations in compiler/rustc_attr_ir/src/encode_cross_crate.rs.
Adds new language design rather than adjusting what was there. Tests changed with it, with code of their own.
compiler/rustc_attr_ir/src/encode_cross_crate.rs ↗ · 17 files
@@ -212,4 +212,219 @@ impl AttributeKind { // tidy-alphabetical-end } }++ /// Whether this attribute is an extern indicator.+ ///+ /// Must stay in sync with [`CodegenFnAttrs::contains_extern_indicator`].+ ///+ /// [`CodegenFnAttrs::contains_extern_indicator`]: ../rustc_middle/middle/codegen_fn_attrs/struct.CodegenFnAttrs.html#method.contains_extern_indicator+ pub fn is_extern_indicator(&self) -> bool {+ use AttributeKind::*;++ match self {+ // tidy-alphabetical-start+ AllowInternalUnsafe(..) => false,+ AllowInternalUnstable(..) => false,+ AlwaysGca => false,+ AutomaticallyDerived => false,+ CfgAttrTrace(..) => false,+ CfgTrace(..) => false,+ CfiEncoding { .. } => false,+ Cold => false,+ CollapseDebugInfo(..) => false,+ CompilerBuiltins => false,+ ConstContinue(..) => false,+ Coroutine => false,+ Coverage(..) => false,+ CrateName { .. } => false,+ CrateType(_) => false,+ CustomMir(_, _) => false,+ DebuggerVisualizer(..) => false,+ DefaultLibAllocator => false,+ Deprecated { .. } => false,