Selected changesmerged Sep 13, 2026
Agent Host: Forward Git identity to Dev ContainersTypeScript · 55 + / 1 −
Introduces 1 new declaration in src/vs/platform/agentHost/node/devContainerAgentHostService.ts.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
src/vs/platform/agentHost/node/devContainerAgentHostService.ts ↗ · 2 files
@@ -275,6 +289,46 @@ export class DevContainerAgentHostMainService extends Disposable implements IDev this._logService.info(`${LOG_PREFIX} Added Git root '${rootFolder}' to the Dev Container user's safe.directory list`); } + private async _configureGitIdentity(exec: ISshExec, token: CancellationToken): Promise<void> {+ const identity = await this._getHostGitIdentity(token);+ if (!identity.name && !identity.email) {+ return;+ }++ const gitAvailable = await exec('command -v git >/dev/null 2>&1', { ignoreExitCode: true });+ if (gitAvailable.code !== 0) {+ return;+ }++ const values: readonly { readonly key: string; readonly value: string | undefined }[] = [+ { key: 'user.name', value: identity.name },+ { key: 'user.email', value: identity.email },+ ];+ for (const { key, value } of values) {+ if (!value) {+ continue;+ }+ const configured = await exec(`git config --get ${key}`, { ignoreExitCode: true });+ if (configured.code === 0 && configured.stdout.trim()) {+ continue;+ }+ await exec(`git config --global --replace-all ${key} ${shellEscape(value)}`);+ this._logService.info(`${LOG_PREFIX} Configured Git ${key} from the host for the Dev Container user`);+ }+ }++ protected async _getHostGitIdentity(token: CancellationToken): Promise<IGitIdentity> {+ const environment = await this._resolveShellEnvironment();
ENH: Adopt multi-phase module initialization for `_rational_tests`C · 93 + / 54 −
Introduces 2 new declarations in numpy/_core/src/umath/_rational_tests.c.
Adds new core implementation rather than adjusting what was there. Read the linked PR for the surrounding test context.
numpy/_core/src/umath/_rational_tests.c ↗ · 1 files
@@ -1323,51 +1323,46 @@ static PyMethodDef module_methods[] = { {0} /* sentinel */ }; -static struct PyModuleDef moduledef = {- PyModuleDef_HEAD_INIT,- "_rational_tests",- NULL,- -1,- module_methods,- NULL,- NULL,- NULL,- NULL-};+/*+ * Opt out of more than one module object per process: the rational types are+ * held in C statics and their dtypes are registered in NumPy's process-global+ * user dtype table, so a second module object would leave arrays of the first+ * one's dtype handing out scalars of the second one's type.+ *+ * https://docs.python.org/3/howto/isolating-extensions.html#opt-out-limiting-to-one-module-object-per-process+ */+static int module_loaded = 0; -PyMODINIT_FUNC PyInit__rational_tests(void) {- PyObject *m = NULL;- PyObject* numpy_str;- PyObject* numpy;+static int+_rational_tests_exec(PyObject *m)+{+ PyObject *numpy = NULL;+ PyArray_Descr *npyrational_descr = NULL;
Improve `scripts/pr_file_map.py` observability and output metadataPython · 33 + / 9 −
Reworks 41 lines of existing logic in scripts/pr_file_map.py.
Changes how existing core implementation behaves. Read the linked PR for the surrounding test context.
scripts/pr_file_map.py ↗ · 1 files
@@ -73,36 +81,52 @@ def main() -> None: check_gh_auth() prs = get_open_prs()- if not prs:- print("No open pull requests found.")- return+ pr_count = len(prs)+ print(f"PR count from get_open_prs(): {pr_count}", file=sys.stderr) file_to_prs: dict[str, list[int]] = defaultdict(list)+ file_count = 0 for pr in prs: pr_number = pr["number"]- for path in get_pr_files(pr_number):+ pr_files = get_pr_files(pr_number)+ file_count += len(pr_files)+ for path in pr_files: file_to_prs[path].append(pr_number)+ print(f"File count from get_pr_files(): {file_count}", file=sys.stderr) existing: dict[str, list[int]] = {} missing: dict[str, list[int]] = {} for path, pr_numbers in file_to_prs.items():- target = existing if os.path.exists(path) else missing+ target = existing if Path(path).exists() else missing target[path] = sorted(set(pr_numbers))+ existing_count = len(existing)+ missing_count = len(missing)+ print(+ f"Existing files: {existing_count}, Missing files: {missing_count}",+ file=sys.stderr,