Daily edition

Sep 28, 2026

The edition exactly as it was published. Nothing here is re-selected on a later reading.

Sep 29, 20265 reads · 131 merged PRs screened

framework internals

vercel/next.js · #99232

Files changed →View PR ↗

[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' }

language design

rust-lang/rust · #162683

Files changed →View PR ↗

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,

framework internals

kubernetes/kubernetes · #142482

Files changed →View PR ↗

Make all mutations to WatchCacheStore via UpdateStoreGo · 20 + / 65 −

Introduces 4 new declarations in staging/src/k8s.io/apiserver/pkg/storage/cacher/store/watch_cache_storage.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/store/watch_cache_storage.go ↗ · 10 files

@@ -291,53 +291,24 @@ func (w *WatchCacheStorage) ByIndex(indexName, indexValue string) ([]interface{} 	return w.indexer.ByIndex(indexName, indexValue) } -func (w *WatchCacheStorage) Add(elem *Element) (*Element, error) {-	w.lock.Lock()-	defer w.lock.Unlock()-	return w.addOrUpdateLocked(elem)-}--func (w *WatchCacheStorage) Update(elem *Element) (*Element, error) {-	w.lock.Lock()-	defer w.lock.Unlock()-	return w.addOrUpdateLocked(elem)-}--func (w *WatchCacheStorage) addOrUpdateLocked(newElem *Element) (*Element, error) {-	if newElem == nil {-		return nil, fmt.Errorf("elem cannot be nil")-	}-	oldElem := w.store.addOrUpdateElem(newElem)-	return oldElem, w.indexer.updateElem(newElem.Key, oldElem, newElem)-}--func (w *WatchCacheStorage) Delete(elem *Element) (*Element, error) {-	w.lock.Lock()-	defer w.lock.Unlock()-	return w.deleteLocked(elem)-}--func (w *WatchCacheStorage) deleteLocked(elem *Element) (*Element, error) {+// UpdateStore executes a mutation (Add, Update, Delete) on the underlying store.+// It returns the element that was previously stored under the same key, if any.+func (w *WatchCacheStorage) UpdateStore(eventType watch.EventType, elem *Element, resourceVersion uint64) (prev *Element, err error) {

core implementation

TheAlgorithms/Python · #14777

Files changed →View PR ↗

fix: inverted loop condition in chaos_machine.py prevents executionPython · 42 + / 4 −

Introduces 3 new declarations in hashes/chaos_machine.py.

Adds new core implementation rather than adjusting what was there. Read the linked PR for the surrounding test context.

hashes/chaos_machine.py ↗ · 1 files

@@ -39,9 +56,29 @@ def push(seed) -> None:     machine_time += 1  -def pull():+def pull() -> int:+    """Pull a pseudo-random number from the chaos machine.++    Uses a Xorshift PRNG seeded by the current chaotic state.++    Returns:+        A 32-bit unsigned integer.++    >>> reset()+    >>> isinstance(pull(), int)+    True+    >>> 0 <= pull() <= 0xFFFFFFFF+    True+    """     global buffer_space, params_space, machine_time +    # PRNG (Xorshift by George Marsaglia)+    def xorshift(x: int, y: int) -> int:+        x ^= y >> 13+        y ^= x << 17+        x ^= y >> 5+        return x+     # Choosing Dynamical Systems (Increment)     key = machine_time % m 

core implementation

pandas-dev/pandas · #69496

Files changed →View PR ↗

BUG: agg with an empty list or dict raises "No objects to concatenate" (GH#39609)Python · 45 + / 2 −

Introduces 1 new declaration in pandas/core/apply.py.

Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.

pandas/core/apply.py ↗ · 7 files

@@ -654,9 +667,25 @@ def wrap_results_dict_like(         result_data: list,     ):         from pandas import Index+        from pandas.core.groupby.groupby import BaseGroupBy          obj = self.obj +        if not result_data:+            # GH#39609+            if isinstance(obj, ABCSeries):+                return obj._constructor(index=Index([]), name=obj.name)+            elif isinstance(obj, ABCDataFrame):+                return obj._constructor(index=Index([]), columns=obj.columns[:0])+            elif isinstance(obj, BaseGroupBy):+                index = _groupby_result_index(obj)+                if selected_obj.ndim == 2:+                    frame = cast("DataFrame", selected_obj)+                    return frame._constructor(index=index, columns=frame.columns[:0])+                return selected_obj._constructor_expanddim(+                    index=index, columns=Index([])+                )+         # Avoid making two isinstance calls in all and any below         is_ndframe = [isinstance(r, ABCNDFrame) for r in result_data] 

Read today’s edition →