feat: add sphinx-sitemap dependency and configuration for sitemap generation - #24332
Merged
Conversation
imtherealnaska
marked this pull request as ready for review
August 13, 2026 17:02
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #24332 +/- ##
==========================================
- Coverage 81.23% 81.22% -0.01%
==========================================
Files 1111 1111
Lines 390012 390012
Branches 390012 390012
==========================================
- Hits 316815 316794 -21
- Misses 54578 54600 +22
+ Partials 18619 18618 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Jefffrey
approved these changes
Aug 14, 2026
Jefffrey
left a comment
Contributor
There was a problem hiding this comment.
should be good once merge conflicts are resolved
## Which issue does this PR close? Adresses: apache#13814 First of four; see also apache#24326 (`datafusion-session`), apache#24329 (`datafusion` core) and apache#24330 (`datafusion-catalog-listing`). All independent — different crates, so they can merge in any order. ## Rationale for this change `datafusion-catalog` is only 4.9k lines of source, but it takes **42s** of a cold `cargo build -p datafusion` (measured with `cargo build --timings`). `-Zself-profile` says ~90% of the crate's compile time is `evaluate_obligation`, and ~99% of that is proving `Send`/`Sync`: | trait | time | goals | |---|---|---| | `Send` | 4.04s | 8245 | | `Sync` | 3.97s | 8195 | | everything else | 0.03s | 7355 | 51.8s of trait solving: | impl | trait solving | |---|---| | `MemTable` | 13.7s | | `StreamTable` | 9.0s | | `CteWorkTable` | 8.9s | | `StreamWrite` | 6.9s | | `StreamTableFactory` | 4.5s | | `ViewTable` | 4.4s | | `StreamingTable` | 4.4s | ## What changes are included in this PR? For those impls, the future is now constructed in a small shim function that has **no** where-clauses, so its auto-trait obligations are proved in an empty `ParamEnv` and get cached globally. The trait method is left as a hand-written desugaring of what `#[async_trait]` would have generated, and only forwards — it never creates a coroutine of its own, so it does no auto-trait work. Isolated probe confirming the shape is what matters (5 trivial impls of a local `#[async_trait]` trait taking `&[Expr]`, added to this crate): | variant | crate build | cost of the 5 impls | |---|---|---| | no impls (baseline) | 8.31s | — | | `#[async_trait]` + `async fn` | 11.64s | +3.33s | | `async fn` delegating body to a boxed helper | 14.28s | +5.97s | | desugared signature + boxed shim | 8.01s | ~0 | Note the middle row: moving only the *body* out makes things worse. The `async fn` itself has to go, because its arguments are what the future captures. ## Are these changes tested? The change is mechanical and the compiler checks each rewritten signature against the trait declaration. Interleaved A/B of `cargo rustc -p datafusion-catalog --lib`, alternating 3 times so machine drift cancels out: ``` before: 8.08s 7.90s 7.63s after: 1.77s 1.70s 1.69s ``` `evaluate_obligation` drops from **7.31s to 70ms**, and its goal count from 25,811 to 14,934. In a full `cargo build -p datafusion` the crate's unit goes from 42.3s to ~8s; since it sits alone on the critical path, that time comes straight off the build's wall clock. ## Are there any user-facing changes? No. No public signature changes — after macro expansion the trait methods have the same signatures as before. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
## Which issue does this PR close? Adresses: apache#13814 Third and largest instance of the problem from apache#24325 (`datafusion-catalog`), apache#24326 (`datafusion-session`) and apache#24330 (`datafusion-catalog-listing`). Independent of all of them — different crates, so they can merge in any order. ## Rationale for this change `datafusion` core is the last unit of a cold `cargo build -p datafusion` and compiles alone, so its cost lands directly on the build's wall clock. **76% of its compile time was the trait solver**: `-Zself-profile` reported 75.0s of `evaluate_obligation` out of 98.6s total, essentially all of it proving `Send`/`Sync`. `#[async_trait]` gives each `async fn` a `where 'life0: 'async_trait, ..` clause. rustc only serves auto-trait obligations from its **global** evaluation cache when the `ParamEnv` is empty, so the `Send`/`Sync` proof for everything the returned future captures is redone per method. In this crate the captured sets include `SessionState`, `&LogicalPlan` and `ListingTableConfig`, each of which reaches a large fraction of the logical-plan type graph. Grouping the goals by the `Self` type in their `ParamEnv` shows how concentrated this was — 14 impls, top 10 = 78% of the total: | impl | trait solving | | impl | trait solving | |---|---|---|---|---| | `ParquetReadOptions` | 7.73s | | `DynamicListTableFactory` | 5.18s | | `JsonReadOptions` | 7.54s | | `ListingTableFactory` | 4.56s | | `DefaultPhysicalPlanner` | 7.07s | | `TestTableFactory` | 4.47s | | `CsvReadOptions` | 6.59s | | `ListingTableConfig` | 4.30s | | `DataFrameTableProvider` | 5.68s | | `DefaultQueryPlanner` | 4.28s | | *(trait default bodies)* | 5.37s | | `DefaultTableFactory` | 4.15s | | | | | `SessionState` | 4.11s | | | | | `ArrowReadOptions` | 3.72s | For contrast, in the same compile 31,818 goals with an **empty** `ParamEnv` cost 0.19s in total — 6µs each, against ~1.3ms for the same kind of goal under `async_trait`'s bounds. ## What changes are included in this PR? **First commit.** Each of those methods becomes the hand-written desugaring of `async fn`, which only forwards; the coroutine is built in a shim with no where-clauses, so its auto-trait obligations are proved in an empty `ParamEnv` and land in the global cache. Method bodies are moved verbatim into inherent fns. The `ReadOptions` family (25.6s across four impls, plus the 5.37s default body) collapses to a **single** proof: all five impls already delegated to the `_get_resolved_schema` default body, which now hands the coroutine to a free `infer_schema_boxed`. Because that helper is a plain function with no generics and no where-clauses, its proof is cached once and shared by every impl. **Second commit**, from re-profiling after the first. 11.15s of trait solving remained, in exactly two places: 1. `ListingTableConfigExt::infer` was still an `async fn` capturing `self: ListingTableConfig` (4.37s). It now uses the same shim as `infer_options` beside it. 2. `ReadOptions::_get_resolved_schema` still carried `Self: Sync`, which `#[async_trait]` needed while its body was a coroutine capturing `&self`. After the first commit it is neither, so the bound is dead weight — and it forced every caller to prove its own type `Sync` structurally, through arrow's `DataType`/`Schema`, in a non-empty `ParamEnv` (2.1–2.4s each for Csv/Json/Parquet; `ArrowReadOptions` was already cheap, having fewer fields). Two things worth noting for review: - `DefaultPhysicalPlanner::create_initial_plan` already used exactly this shape (`-> BoxFuture<'a, _>` plus `Box::pin(async move ..)`) — there for recursion rather than for compile time. The idiom is not new to this codebase. - The second commit **relaxes a bound on a public trait method**. Nothing in tree overrides `_get_resolved_schema` (all five impls only implement `get_resolved_schema`) and the underscore prefix marks it as internal, but an external override written with `#[async_trait]` would generate `Self: Sync` and no longer match. Happy to drop that commit if you would rather not touch it. One body became eager: `TestTableFactory::create_inner` has no `.await`, so it is a plain fn wrapped in `ready(..)`. It builds a `TestTableProvider` and has no side effects. Everything that awaits stays lazy — `Box::pin(self.m_inner(..))` polls nothing. ## Are these changes tested? - `cargo test -p datafusion --lib` — 442 passed - `cargo check -p datafusion --all-targets` — clean (covers core's integration tests and benches, heavy users of these APIs) - `cargo clippy -p datafusion --lib` — clean - `cargo doc` with `-D warnings` — clean - `cargo fmt --check` — clean The compiler checks each rewritten signature against its trait declaration, and every body is moved verbatim. `cargo rustc -p datafusion --lib` with `-Ztime-passes`, alternated with the base so machine drift cancels out: | | total | `evaluate_obligation` | |---|---|---| | base | 88.9s | 75.0s | | after first commit | 18.6s | 11.15s | | after second commit | **8.2s** | **234ms** | 234ms over 34,724 goals is 6.7µs each — the same rate as goals that carry an empty `ParamEnv`, i.e. the repeated proving is gone rather than merely reduced. What remains in this crate is LLVM: 7.6s emitting objects and 4.2s in LLVM passes. An earlier interleaved wall-clock A/B of the first commit alone measured 74.4s/69.9s base against 16.6s/15.5s fixed. ## Are there any user-facing changes? No, other than the relaxed `Self: Sync` bound described above. No public signature changes — after macro expansion these methods have the same signatures as before. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…~4.4x (apache#24330) ## Which issue does this PR close? Adresses: apache#13814 Fourth and last crate in the family from apache#24325 (`datafusion-catalog`), apache#24326 (`datafusion-session`) and apache#24329 (`datafusion` core). Independent of all three — different crates, so they can merge in any order. ## Rationale for this change `datafusion-catalog-listing` is 3,013 lines of source but spends **20.5s** in the frontend during a cold `cargo build -p datafusion` (`cargo build --timings`), and it sits on the critical path between `datafusion-catalog` and `datafusion` core. `-Zself-profile` puts 58% of the crate's compile time in `evaluate_obligation`, and grouping those goals by the `Self` type in their `ParamEnv` shows all of it in one impl: | `Self` in `ParamEnv` | time | goals | |---|---|---| | `ListingTable` | 3.16s | 6,967 | | *(empty `ParamEnv`)* | 0.04s | 8,443 | Note the second row — the same kind of goals cost ~5µs each with an empty `ParamEnv` against ~450µs here. The cause is the one from the earlier PRs: `#[async_trait]` gives each `async fn` a `where 'life0: 'async_trait, ..` clause, which makes the method's `ParamEnv` non-empty, and rustc only serves auto-trait obligations from its **global** evaluation cache when the `ParamEnv` is empty. So the `Send`/`Sync` proof for everything the future captures is redone per method. All three async methods in this impl reach `Expr`: - `scan` takes `&[Expr]` - `scan_with_args` takes `ScanArgs<'a>`, which holds `&[Expr]` - `insert_into` keeps `self.options` (`Vec<Vec<SortExpr>>`) live across an await so each one pays for a walk of the whole `Expr`/`LogicalPlan` graph. ## What changes are included in this PR? Each method is now the hand-written desugaring of `async fn` and only forwards; the coroutine is built in a shim with no where-clauses, so its proofs land in the global cache. Bodies are moved verbatim into inherent fns and all three stay `async`, so nothing is evaluated any earlier than before — `Box::pin(self.m_inner(..))` polls nothing. Following the review on apache#24326, I measured each method's marginal contribution first, by reverting one at a time (together with its helpers) from the all-converted state: | state | crate build | `evaluate_obligation` | |---|---|---| | all three converted | 0.931s | 34.9ms | | revert `insert_into` | 1.866s | 1.01s | | revert `scan` | 1.943s | 1.05s | | revert `scan_with_args` | 2.118s | 1.17s | | none converted (base) | 4.201s | 3.25s | Unlike apache#24326 — where two of the seven bodies I first converted turned out to gain nothing — all three pull their weight here. Converting all of them leaves no coroutine in the impl at all, so the graph is never walked in a non-empty `ParamEnv`, which is why the total drops by two orders of magnitude rather than by a third. ## Are these changes tested? - `cargo test -p datafusion-catalog-listing` — 18 + 7 passed - `cargo test -p datafusion --lib` — 442 passed - `cargo check -p datafusion --all-targets` — clean (`ListingTable` is used heavily by core's integration tests and benches) - `cargo clippy -p datafusion-catalog-listing --all-targets` — clean - `cargo fmt --check` — clean The compiler checks each rewritten signature against the trait declaration, and every body is moved verbatim. Interleaved A/B of `cargo rustc -p datafusion-catalog-listing --lib`, alternating 3 times so machine drift cancels out: ``` base: 4.257s 4.189s 4.134s fix: 0.984s 0.935s 0.980s ``` `evaluate_obligation` drops from 3.25s to 34.7ms. ## Are there any user-facing changes? No. No public signature changes — after macro expansion these methods have the same signatures as before. ### Follow-up With this, the four crates that made up the serial tail of a cold build are done. The general fix remains available and would cover downstream implementors too: drop `#[async_trait]` from these traits in favour of an explicit `BoxFuture` return with a single lifetime and no where-clauses, so that *every* impl is cheap without hand-desugaring. That is a breaking change to public traits, so it is out of scope here. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
) ## Which issue does this PR close? Adresses: apache#13814 ## Rationale for this change `datafusion-session` is 1,619 lines of source and spends **18.8s** in the frontend during a cold `cargo build -p datafusion` (`cargo build --timings`) — 11.6ms per line, the worst ratio in the workspace, against 0.09–0.55ms/line for crates like `datafusion-datasource` or `datafusion-physical-plan`. `-Zself-profile` puts ~72% of the crate's compile time in `evaluate_obligation`, and 98% of that in `Send`/`Sync`. ## What changes are included in this PR? `TableProvider::{delete_from, update, merge_into}` are one-line `not_impl_err!` stubs that nevertheless build a coroutine capturing `Vec<Expr>` / `Expr` — proving that coroutine `Send` walks the whole `Expr`/`LogicalPlan` type graph. They are now written as the desugaring of `async fn` returning `ready(..)`, so no coroutine is created and there is nothing expensive to prove. The signatures are exactly what `#[async_trait]` generates — verified against `-Zunpretty=expanded` output of this crate — so implementors are unaffected. I originally converted seven bodies, but measuring each one's marginal contribution (reverting one at a time; `evaluate_obligation` self time, all-converted baseline 659ms) showed only the ones taking `Expr` matter: | method left as `async fn` | trait solving | marginal cost | |---|---|---| | `delete_from` | 1.29s | +631ms | | `update` | 1.30s | +641ms | | `merge_into` | 1.29s | +631ms | | `truncate` | 697ms | +38ms | | `insert_into` | 665ms | ~0 | ## Are these changes tested? Interleaved A/B of `cargo rustc -p datafusion-session --lib` ``` base: 1.582s 1.576s 1.590s fix: 0.933s 0.938s 0.932s ``` `evaluate_obligation` drops from 1.28s to 0.646s. Those are standalone-build numbers. In the feature-unified build this crate's frontend is 18.8s rather than ~1.6s (each obligation is several times dearer there), so the absolute saving on a real build should be larger — I have not measured that directly, since isolating one crate's unit in a full build is hard to do without confounding it with machine drift. ## Are there any user-facing changes? No public signature changes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…e#24338) ## Which issue does this PR close? Adresses: apache#13814 Found while profiling compile times for apache#24325 / apache#24326 / apache#24329 / apache#24330. ## Rationale for this change `datafusion/core/src/bin/` holds three binaries that regenerate the docs under `docs/source/user-guide`: `print_config_docs`, `print_runtime_config_docs` and `print_functions_docs`. Cargo auto-discovers them and they have no `required-features`, so **every `cargo build` links all three** — each one ~174MB, since each links the whole `datafusion` rlib. Nothing in normal development uses them. They are run by `dev/update_config_docs.sh` and `dev/update_function_docs.sh`, and by the CI job that checks the committed docs are up to date. Two places where this shows up: **Cold builds.** The three binaries link *after* every other unit has finished, so they sit on the critical path with nothing to overlap with. `cargo build --timings` shows them occupying the last **3.5s** of a `cargo build -p datafusion` (~8.8s of CPU), after the last library unit completes. **The tightest inner loop** — touch a file in core, rebuild. All three are relinked every time: ``` before: 3.0s 2.4s after: 1.3s 1.1s ``` ## What changes are included in this PR? The three binaries move behind a new non-default `docs_generation` feature, and the two `dev/` scripts pass `--features docs_generation`. Using `required-features` means declaring the `[[bin]]` targets explicitly, since auto-discovered targets cannot carry it. ## Are these changes tested? - `cargo build -p datafusion` no longer produces the three binaries - `cargo build -p datafusion --features docs_generation` does - `./dev/update_config_docs.sh` still regenerates `docs/source/user-guide/configs.md` byte-identically (empty `git diff` afterwards), which is what the CI doc check compares `dev/update_function_docs.sh` uses the same invocation pattern and all three of its call sites were updated; CI exercises both scripts. ## Are there any user-facing changes? The three binaries are no longer built by a default `cargo build`. Anyone who ran them directly needs `--features docs_generation` — same as the `dev/` scripts now do. No library API changes. If you would rather these lived outside the published crate altogether, moving them to a small non-published `dev/` crate would have the same effect on build times; I went with the smaller change. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…ache#24339) ## Which issue does this PR close? Adresses: apache#13814 Found while profiling compile times for apache#24325 / apache#24326 / apache#24329 / apache#24330, which removed the trait-solving cost from the four crates on the critical path and left LLVM as the dominant remaining cost. ## Rationale for this change `dev` is the profile behind every `cargo build` and `cargo test`, so its debug info is generated over and over. `debug = "line-tables-only"` keeps file and line numbers — panics and `RUST_BACKTRACE` output stay just as useful — and drops the variable-level DWARF that only an interactive debugger consumes. Measured per crate, **interleaved** with the baseline so machine drift cancels out. The flag is passed to the crate under test only, so cached dependency artifacts stay valid and nothing else moves between the two measurements: | crate | `debug = 2` | `line-tables-only` | | |---|---|---|---| | `datafusion-physical-plan` | 8.89s | 7.43s | −16% | | `datafusion-functions-aggregate` | 5.86s | 4.63s | −21% | | `datafusion-physical-expr` | 4.57s | 3.59s | −21% | | `datafusion-functions` | 4.64s | 4.04s | −13% | | `datafusion-expr` | 4.54s | 3.57s | −21% | | `datafusion-functions-nested` | 4.37s | 3.06s | −30% | | `datafusion-optimizer` | 3.91s | 3.12s | −20% | | `datafusion-common` | 3.73s | 3.10s | −17% | | `datafusion-sql` | 3.57s | 2.43s | −32% | | `datafusion-datasource-parquet` | 3.27s | 2.44s | −25% | | `datafusion-datasource` | 1.90s | 1.42s | −25% | | `datafusion-physical-optimizer` | 1.22s | 0.99s | −19% | | **sum** | **50.5s** | **39.8s** | **−21%** | The saving is codegen-side, as you would expect: `datafusion-catalog`, which spends its time in the trait solver rather than in LLVM, moves only 7.4s → 7.0s. Artifacts shrink as well — `libdatafusion_physical_plan.rlib` goes from **141MB to 100MB**. ## What changes are included in this PR? One setting on `[profile.dev]`, plus an update to the profile documentation block above it, which currently advertises "full debug info" for `dev`. ## Are these changes tested? ## Are there any user-facing changes? For anyone stepping through DataFusion in a debugger, local variable inspection needs `CARGO_PROFILE_DEV_DEBUG=2 cargo build` (or a local override in `.cargo/config.toml`); the comment in `Cargo.toml` says so. Everything else — panic locations, backtraces, `#[test]` failures — is unchanged. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…oin (apache#24336) ## Which issue does this PR close? - Closes apache#24335. ## Rationale for this change A `RIGHT`/`FULL` `PiecewiseMergeJoin` with a range predicate drops an unmatched right-side row whose join key is `NULL`. A `NULL` key never matches (`NULL < x` is UNKNOWN), so in a `RIGHT`/`FULL` join the row is unmatched and must still be emitted with NULLs on the left — but `PiecewiseMergeJoinExec` omits it, diverging from `NestedLoopJoin`. ```sql create table l(v int) as values (5); create table r(v int) as values (10), (NULL); select l.v, r.v from l right join r on l.v < r.v; -- drops (NULL, NULL) ``` Root cause: `resolve_classic_join` starts the match scan past the streamed side's `NULL`-keyed rows (they sort to the front under `nulls_first`). Those rows are never revisited, so for `Right`/`Full` they were never added to `unmatched_indices` and got dropped. ## What changes are included in this PR? - In `resolve_classic_join`, when skipping the streamed side's leading `NULL`-key rows, record them as unmatched for `Right`/`Full` joins so they are emitted (with NULLs on the buffered side). ## Are these changes tested? Yes. - Regression test in `pwmj.slt`: a `RIGHT JOIN` over the existing `null_join_*` tables now emits the `(NULL, NULL)` row. The test fails on `main` (the row is dropped) and passes with this change. - Verified more broadly with a differential fuzz against `NestedLoopJoin` (same SQL, `enable_piecewise_merge_join` on vs off): 1200 checks over random `RIGHT JOIN` inputs with `<`/`<=`/`>`/`>=` and high right-side NULL density, 0 mismatches. ## Are there any user-facing changes? `RIGHT`/`FULL` range joins via `PiecewiseMergeJoin` (behind `enable_piecewise_merge_join`, default off) now return unmatched right rows with `NULL` keys, matching `NestedLoopJoin`. No API changes.
…ter skip (apache#24328) ## Which issue does this PR close? - Part of apache#23696 — a benchmark that mechanistically exercises the per-RG fully-matched `RowFilter` skip. ## Rationale for this change apache#23696 adds a per-row-group fully-matched `RowFilter` skip, but **none of the existing benchmarks exercise it**: - `sort_tpch` / `tpch` don't enable `pushdown_filters` by default, so there is no `RowFilter` to skip; - ClickBench's `URL LIKE …` / equality predicates rarely make a row group's min/max fall entirely inside the satisfying range, so fully-matched RGs are rare. As raised in review (we should verify the optimization improves something mechanistically, otherwise add a benchmark first), this adds a suite that **necessarily** triggers the skip. ## What changes are included in this PR? A new `sql_benchmarks/parquet_row_filter_skip/` suite: - The **load SQL** enables `pushdown_filters` and `COPY`s a clustered Parquet file — a fixed-width, zero-padded, monotonically increasing string key (`skey`) so each row group holds a disjoint, sorted range — plus 14 payload columns. - The **query** applies a low-selectivity range filter (`skey >= '0000100000'`, `skey` not projected). The first row group straddles the threshold; every later RG is fully matched by statistics, so the per-row `RowFilter` is skipped on the fully-matched run (and `skey` isn't decoded there). - `bench.sh` integration: `./bench.sh run parquet_row_filter_skip`, data generated inline by the load SQL. Knobs: `PRED_ROWS` (row count), `RG_SIZE` (parquet row-group size). ## Are these changes tested? Smoke-tested locally via `cargo bench --bench sql -- --test`. Local A/B (main vs apache#23696, 10M rows / 10 RGs / `skey >= '0000100000'`): - **9 of 10 row groups fully matched** → `row_filter_skipped_fully_matched=9`; - **~18% faster** with the optimization (main ~0.143s → branch ~0.117s); an int64-key variant is ~12%. Once this lands, `run benchmark parquet_row_filter_skip` will compare any PR (e.g. apache#23696) against `main` in CI. ## Are there any user-facing changes? No — benchmark only. --------- Co-authored-by: Claude <noreply@anthropic.com>
…/actions/setup-macos-aarch64-builder (apache#24307) Bumps [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) from 2.8.1 to 2.9.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/swatinem/rust-cache/releases">Swatinem/rust-cache's releases</a>.</em></p> <blockquote> <h2>v2.9.2</h2> <h2>What's Changed</h2> <ul> <li>Typofix by <a href="https://github.com/23Skidoo"><code>@23Skidoo</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/316">Swatinem/rust-cache#316</a></li> <li>fix: include target names in build/ and .fingerprint/ cleanup by <a href="https://github.com/eitsupi"><code>@eitsupi</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/317">Swatinem/rust-cache#317</a></li> <li>fix: include cdylib/rlib/dylib/staticlib targets in build and fingerprint cleanup by <a href="https://github.com/eitsupi"><code>@eitsupi</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/320">Swatinem/rust-cache#320</a></li> <li>Scan content of <code>$CARGO_HOME/bin</code> on restore instead of relying on <code>cargo install</code> metadata by <a href="https://github.com/clechasseur"><code>@clechasseur</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/325">Swatinem/rust-cache#325</a></li> <li>docs: Update checkout action version to latest by <a href="https://github.com/sondrelg"><code>@sondrelg</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/345">Swatinem/rust-cache#345</a></li> <li>Fix Windows cache path validation after Rollup migration by <a href="https://github.com/eitsupi"><code>@eitsupi</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/355">Swatinem/rust-cache#355</a></li> <li>fix: support Cargo V2 build dir layout by <a href="https://github.com/claytonwramsey"><code>@claytonwramsey</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/371">Swatinem/rust-cache#371</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/23Skidoo"><code>@23Skidoo</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/316">Swatinem/rust-cache#316</a></li> <li><a href="https://github.com/eitsupi"><code>@eitsupi</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/317">Swatinem/rust-cache#317</a></li> <li><a href="https://github.com/clechasseur"><code>@clechasseur</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/325">Swatinem/rust-cache#325</a></li> <li><a href="https://github.com/sondrelg"><code>@sondrelg</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/345">Swatinem/rust-cache#345</a></li> <li><a href="https://github.com/claytonwramsey"><code>@claytonwramsey</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/371">Swatinem/rust-cache#371</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.9.1...v2.9.2">https://github.com/Swatinem/rust-cache/compare/v2.9.1...v2.9.2</a></p> <h2>v2.9.1</h2> <p>Fix regression in hash calculation</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.9.0...v2.9.1">https://github.com/Swatinem/rust-cache/compare/v2.9.0...v2.9.1</a></p> <h2>v2.9.0</h2> <h2>What's Changed</h2> <ul> <li>Add support for running rust-cache commands from within a Nix shell by <a href="https://github.com/marc0246"><code>@marc0246</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/290">Swatinem/rust-cache#290</a></li> <li>Bump taiki-e/install-action from 2.62.57 to 2.62.60 in the actions group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/291">Swatinem/rust-cache#291</a></li> <li>Bump the actions group across 1 directory with 5 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/296">Swatinem/rust-cache#296</a></li> <li>Bump the prd-major group with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/294">Swatinem/rust-cache#294</a></li> <li>Bump <code>@types/node</code> from 24.10.1 to 25.0.2 in the dev-major group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/295">Swatinem/rust-cache#295</a></li> <li>Consider all installed toolchains in cache key by <a href="https://github.com/tamird"><code>@tamird</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/293">Swatinem/rust-cache#293</a></li> <li>Compare case-insenitively for full cache key match by <a href="https://github.com/kbriggs"><code>@kbriggs</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/303">Swatinem/rust-cache#303</a></li> <li>Migrate to <code>node24</code> runner by <a href="https://github.com/rhysd"><code>@rhysd</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/314">Swatinem/rust-cache#314</a></li> <li>Bump the actions group across 1 directory with 7 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/312">Swatinem/rust-cache#312</a></li> <li>Bump the prd-minor group across 1 directory with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/307">Swatinem/rust-cache#307</a></li> <li>Bump <code>@types/node</code> from 25.0.2 to 25.2.2 in the dev-minor group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/309">Swatinem/rust-cache#309</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/marc0246"><code>@marc0246</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/290">Swatinem/rust-cache#290</a></li> <li><a href="https://github.com/tamird"><code>@tamird</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/293">Swatinem/rust-cache#293</a></li> <li><a href="https://github.com/kbriggs"><code>@kbriggs</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/303">Swatinem/rust-cache#303</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.8.2...v2.9.0">https://github.com/Swatinem/rust-cache/compare/v2.8.2...v2.9.0</a></p> <h2>v2.8.2</h2> <h2>What's Changed</h2> <ul> <li>ci: address lint findings, add zizmor workflow by <a href="https://github.com/woodruffw"><code>@woodruffw</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/262">Swatinem/rust-cache#262</a></li> <li>feat: Implement ability to disable adding job ID + rust environment hashes to cache names by <a href="https://github.com/Ryan-Brice"><code>@Ryan-Brice</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/279">Swatinem/rust-cache#279</a></li> <li>Don't overwrite env for cargo-metadata call by <a href="https://github.com/MaeIsBad"><code>@MaeIsBad</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/285">Swatinem/rust-cache#285</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md">Swatinem/rust-cache's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>2.9.2</h2> <ul> <li>Fix <code>credentials.toml</code> cleanup</li> <li>Improvements to cleanup, preserving more valid targets</li> <li>Improvements to <code>cargo install</code> handling</li> <li>Correctly sort/dedupe Rust versions</li> </ul> <h2>2.9.1</h2> <ul> <li>Fix regression in hash calculation</li> </ul> <h2>2.9.0</h2> <ul> <li>Update to <code>node24</code></li> <li>Support running from within a <code>nix</code> shell</li> <li>Consider all installed toolchains for cache key</li> <li>Use case-insensitive comparison to determine exact cache hit</li> </ul> <h2>2.8.2</h2> <ul> <li>Don't overwrite env for cargo-metadata call</li> </ul> <h2>2.8.1</h2> <ul> <li>Set empty <code>CARGO_ENCODED_RUSTFLAGS</code> when retrieving metadata</li> <li>Various dependency updates</li> </ul> <h2>2.8.0</h2> <ul> <li>Add support for <code>warpbuild</code> cache provider</li> <li>Add new <code>cache-workspace-crates</code> feature</li> </ul> <h2>2.7.8</h2> <ul> <li>Include CPU arch in the cache key</li> </ul> <h2>2.7.7</h2> <ul> <li>Also cache <code>cargo install</code> metadata</li> </ul> <h2>2.7.6</h2> <ul> <li>Allow opting out of caching $CARGO_HOME/bin</li> <li>Add runner OS in cache key</li> <li>Adds an option to do lookup-only of the cache</li> </ul> <h2>2.7.5</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Swatinem/rust-cache/commit/6323deb102c322ba6fcbdcafc7e3dddab59af2b6"><code>6323deb</code></a> 2.9.2</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/b16e8d71b289c3b8fc03fc09764563df03712036"><code>b16e8d7</code></a> bump rollup and rebuild</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/3bf42ac996de475743278f3187c4fd89f23b8630"><code>3bf42ac</code></a> invert target/profile check in cleanup</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/6e5b278ead409e28cd5a784014d7ce55007a81d2"><code>6e5b278</code></a> correctly sort and dedupe Rust versions</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/5adc05f6aaa7c92756cb2e2c9b7b3c1d0df9312b"><code>5adc05f</code></a> Bump the actions group across 1 directory with 3 updates (<a href="https://redirect.github.com/swatinem/rust-cache/issues/368">#368</a>)</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/66b1e9526150e74ddd7e4190356facd783fb3b44"><code>66b1e95</code></a> fix: support Cargo V2 build dir layout (<a href="https://redirect.github.com/swatinem/rust-cache/issues/371">#371</a>)</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/72d126e709cad40056a62344eee609d696d62d33"><code>72d126e</code></a> Merge pull request <a href="https://redirect.github.com/swatinem/rust-cache/issues/367">#367</a> from Swatinem/dependabot/npm_and_yarn/dev-patch-2b495...</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/48968d2131215f1c516b89399d23900d554f71fa"><code>48968d2</code></a> Bump the dev-patch group with 2 updates</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/9f151aca7c3990bab7afe2d82ac58088d3b01074"><code>9f151ac</code></a> update dependencies, rebuild</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/0e24e5dcecfbbdcea69e0f528cab00df34fbd231"><code>0e24e5d</code></a> Bump the actions group across 1 directory with 6 updates (<a href="https://redirect.github.com/swatinem/rust-cache/issues/364">#364</a>)</li> <li>Additional commits viewable in <a href="https://github.com/swatinem/rust-cache/compare/f13886b937689c021905a6b90929199931d60db1...6323deb102c322ba6fcbdcafc7e3dddab59af2b6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…che#24306) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.85.10 to 2.85.11. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's releases</a>.</em></p> <blockquote> <h2>2.85.11</h2> <ul> <li> <p>Update <code>zola@latest</code> to 0.23.2.</p> </li> <li> <p>Update <code>wasm-bindgen@latest</code> to 0.2.127.</p> </li> <li> <p>Update <code>uv@latest</code> to 0.12.3.</p> </li> <li> <p>Update <code>osv-scanner@latest</code> to 2.5.0.</p> </li> <li> <p>Update <code>mise@latest</code> to 2026.8.3.</p> </li> <li> <p>Update <code>kingfisher@latest</code> to 1.112.0.</p> </li> <li> <p>Update <code>editorconfig-checker@latest</code> to 3.10.0.</p> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <p>All notable changes to this project will be documented in this file.</p> <p>This project adheres to <a href="https://semver.org">Semantic Versioning</a>.</p> <!-- raw HTML omitted --> <h2>[Unreleased]</h2> <h2>[2.85.12] - 2026-08-12</h2> <ul> <li> <p>Update <code>zola@latest</code> to 0.23.3.</p> </li> <li> <p>Update <code>wasm-tools@latest</code> to 1.256.0.</p> </li> <li> <p>Update <code>tombi@latest</code> to 1.2.10.</p> </li> <li> <p>Update <code>syft@latest</code> to 1.51.0.</p> </li> <li> <p>Update <code>prek@latest</code> to 0.4.13.</p> </li> <li> <p>Update <code>mise@latest</code> to 2026.8.4.</p> </li> <li> <p>Update <code>editorconfig-checker@latest</code> to 3.11.1.</p> </li> <li> <p>Update <code>cargo-tarpaulin@latest</code> to 0.37.1.</p> </li> <li> <p>Update <code>cargo-rdme@latest</code> to 2.2.1.</p> </li> <li> <p>Update <code>biome@latest</code> to 2.5.8.</p> </li> </ul> <h2>[2.85.11] - 2026-08-09</h2> <ul> <li> <p>Update <code>zola@latest</code> to 0.23.2.</p> </li> <li> <p>Update <code>wasm-bindgen@latest</code> to 0.2.127.</p> </li> <li> <p>Update <code>uv@latest</code> to 0.12.3.</p> </li> <li> <p>Update <code>osv-scanner@latest</code> to 2.5.0.</p> </li> <li> <p>Update <code>mise@latest</code> to 2026.8.3.</p> </li> <li> <p>Update <code>kingfisher@latest</code> to 1.112.0.</p> </li> <li> <p>Update <code>editorconfig-checker@latest</code> to 3.10.0.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/taiki-e/install-action/commit/7f4eb899022d8fe70b20c4f3de697aa85c309026"><code>7f4eb89</code></a> Release 2.85.11</li> <li><a href="https://github.com/taiki-e/install-action/commit/c17da6245a7fe549cefa05b31e3614ce0b16c2af"><code>c17da62</code></a> Update <code>zola@latest</code> to 0.23.2</li> <li><a href="https://github.com/taiki-e/install-action/commit/97e8291c2ba440a7119c03ebe3ed1e584a1f9b7f"><code>97e8291</code></a> Update <code>wasm-bindgen@latest</code> to 0.2.127</li> <li><a href="https://github.com/taiki-e/install-action/commit/91f9e5c61a2dc7936a8f404d01b7c1551b9c581a"><code>91f9e5c</code></a> Update <code>uv@latest</code> to 0.12.3</li> <li><a href="https://github.com/taiki-e/install-action/commit/bd0cb00440414f36db2f79bca8e27971bb63b2a3"><code>bd0cb00</code></a> Update <code>osv-scanner@latest</code> to 2.5.0</li> <li><a href="https://github.com/taiki-e/install-action/commit/4def957aa80c252e2d4c61387c6a429d377907d1"><code>4def957</code></a> Update <code>mise@latest</code> to 2026.8.3</li> <li><a href="https://github.com/taiki-e/install-action/commit/3d149dc3890afe4774d158d353b5a3e55fe90f60"><code>3d149dc</code></a> Update <code>kingfisher@latest</code> to 1.112.0</li> <li><a href="https://github.com/taiki-e/install-action/commit/20d4381a5cf6917520fde30f9ff52387410bfb6e"><code>20d4381</code></a> Update <code>editorconfig-checker@latest</code> to 3.10.0</li> <li><a href="https://github.com/taiki-e/install-action/commit/583939ec0c8ee9c523cc60342d3d979ce6730f38"><code>583939e</code></a> codegen: Ignore clippy::assert_is_empty lint</li> <li>See full diff in <a href="https://github.com/taiki-e/install-action/compare/6c6fd71fe4fb72c3697d269963d0e15df8adedad...7f4eb899022d8fe70b20c4f3de697aa85c309026">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…wasmtest/datafusion-wasm-app (apache#24302) Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 5.1.4 to 7.2.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/webpack/webpack-cli/releases">webpack-cli's releases</a>.</em></p> <blockquote> <h2>webpack-cli@7.2.2</h2> <h3>Patch Changes</h3> <ul> <li>perf: enable the Node.js compile cache (<code>module.enableCompileCache</code>, available on Node.js >= 22.8.0) to speed up CLI startup (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4818">#4818</a>)</li> </ul> <h2>webpack-cli@7.2.1</h2> <h3>Patch Changes</h3> <ul> <li>fix: <code>CLIPlugin</code> dynamic import interop under Bun (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4799">#4799</a>)</li> </ul> <h2>webpack-cli@7.2.0</h2> <h3>Minor Changes</h3> <ul> <li> <p>feat: allow <code>webpack-dev-server</code> v6 as an optional peer dependency (<code>^5.0.0 || ^6.0.0</code>) (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4793">#4793</a>)</p> </li> <li> <p>Support <code>tsx</code> as a fallback loader for TypeScript and JSX configuration files (<code>.ts</code>, <code>.tsx</code>, <code>.cts</code>, <code>.mts</code> and <code>.jsx</code>), used when none of the loaders known to <code>interpret</code> (such as <code>ts-node</code>) are installed. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4796">#4796</a>)</p> </li> </ul> <h2>webpack-cli@7.1.0</h2> <h3>Minor Changes</h3> <ul> <li> <p>feat(cli): refresh the <code>--help</code> output using commander's <code>configureHelp</code> API — branded headers, section dividers, colorized terms and a clearer footer. Colors and chrome collapse to plain text when output is piped or <code>--no-color</code> is used, so scripts keep working. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4779">#4779</a>)</p> </li> <li> <p>feat: support <code>.json5</code>, <code>.yaml</code>/<code>.yml</code> and <code>.toml</code> configuration files by parsing them directly, with the parser package (<code>json5</code>, <code>js-yaml</code>, <code>toml</code>) installed on demand by the user and declared as optional <code>peerDependencies</code> so the parsers resolve correctly under Yarn PnP (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4777">#4777</a>)</p> </li> </ul> <h2>webpack-cli@7.0.3</h2> <h3>Patch Changes</h3> <ul> <li> <p>Improved CLI startup performance and reduced memory usage. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4765">#4765</a>)</p> </li> <li> <p>Reduced CLI startup CPU and memory usage by caching schema-derived argument metadata, registering only the options present in the arguments, and reading config directories once during default-config discovery. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4760">#4760</a>)</p> </li> <li> <p>Replace the <code>fastest-levenshtein</code> dependency with a small in-tree implementation used for command/option "did you mean" suggestions. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4762">#4762</a>)</p> </li> </ul> <h2>webpack-cli@7.0.2</h2> <h3>Patch Changes</h3> <ul> <li>Resolve configuration path for cache build dependencies. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4707">#4707</a>)</li> </ul> <h2>webpack-cli@7.0.1</h2> <h3>Patch Changes</h3> <ul> <li>The <code>file</code> protocol for configuration options (<code>--config</code>/<code>--extends</code>) is supported. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4702">#4702</a>)</li> </ul> <h2>webpack-cli@7.0.0</h2> <h3>Major Changes</h3> <ul> <li> <p>The minimum supported version of Node.js is <code>20.9.0</code>. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4677">#4677</a>)</p> </li> <li> <p>Use dynamic import to load <code>webpack.config.js</code>, fallback to interpret only when configuration can't be load by dynamic import. Using dynamic imports allows you to take advantage of Node.js's built-in TypeScript support. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4677">#4677</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/webpack/webpack-cli/blob/main/CHANGELOG.md">webpack-cli's changelog</a>.</em></p> <blockquote> <h2>7.2.2</h2> <h3>Patch Changes</h3> <ul> <li>perf: enable the Node.js compile cache (<code>module.enableCompileCache</code>, available on Node.js >= 22.8.0) to speed up CLI startup (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4818">#4818</a>)</li> </ul> <h2>7.2.1</h2> <h3>Patch Changes</h3> <ul> <li>fix: <code>CLIPlugin</code> dynamic import interop under Bun (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4799">#4799</a>)</li> </ul> <h2>7.2.0</h2> <h3>Minor Changes</h3> <ul> <li> <p>feat: allow <code>webpack-dev-server</code> v6 as an optional peer dependency (<code>^5.0.0 || ^6.0.0</code>) (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4793">#4793</a>)</p> </li> <li> <p>Support <code>tsx</code> as a fallback loader for TypeScript and JSX configuration files (<code>.ts</code>, <code>.tsx</code>, <code>.cts</code>, <code>.mts</code> and <code>.jsx</code>), used when none of the loaders known to <code>interpret</code> (such as <code>ts-node</code>) are installed. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4796">#4796</a>)</p> </li> </ul> <h2>7.1.0</h2> <h3>Minor Changes</h3> <ul> <li> <p>feat(cli): refresh the <code>--help</code> output using commander's <code>configureHelp</code> API — branded headers, section dividers, colorized terms and a clearer footer. Colors and chrome collapse to plain text when output is piped or <code>--no-color</code> is used, so scripts keep working. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4779">#4779</a>)</p> </li> <li> <p>feat: support <code>.json5</code>, <code>.yaml</code>/<code>.yml</code> and <code>.toml</code> configuration files by parsing them directly, with the parser package (<code>json5</code>, <code>js-yaml</code>, <code>toml</code>) installed on demand by the user and declared as optional <code>peerDependencies</code> so the parsers resolve correctly under Yarn PnP (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4777">#4777</a>)</p> </li> </ul> <h2>7.0.3</h2> <h3>Patch Changes</h3> <ul> <li> <p>Improved CLI startup performance and reduced memory usage. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4765">#4765</a>)</p> </li> <li> <p>Reduced CLI startup CPU and memory usage by caching schema-derived argument metadata, registering only the options present in the arguments, and reading config directories once during default-config discovery. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4760">#4760</a>)</p> </li> <li> <p>Replace the <code>fastest-levenshtein</code> dependency with a small in-tree implementation used for command/option "did you mean" suggestions. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4762">#4762</a>)</p> </li> </ul> <h2>7.0.2</h2> <h3>Patch Changes</h3> <ul> <li>Resolve configuration path for cache build dependencies. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4707">#4707</a>)</li> </ul> <h2>7.0.1</h2> <h3>Patch Changes</h3> <ul> <li>The <code>file</code> protocol for configuration options (<code>--config</code>/<code>--extends</code>) is supported. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack-cli/pull/4702">#4702</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/webpack/webpack-cli/commit/191fa9ffdc82268e430c10824ac7ba3b8138e287"><code>191fa9f</code></a> chore(release): new release (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4820">#4820</a>)</li> <li><a href="https://github.com/webpack/webpack-cli/commit/1082235f97fecd77a716ac0cc3564669798729a8"><code>1082235</code></a> chore(deps-dev): bump js-yaml from 5.2.1 to 5.2.2 (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4821">#4821</a>)</li> <li><a href="https://github.com/webpack/webpack-cli/commit/e36ae82bf116c50fe6da341291c93d596fcb8bf2"><code>e36ae82</code></a> chore: add publish workflow and script for pkg.pr.new integration (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4819">#4819</a>)</li> <li><a href="https://github.com/webpack/webpack-cli/commit/b0a2024a5790446ea07610ad27fd5abc65f5b875"><code>b0a2024</code></a> perf: enable the Node.js compile cache (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4818">#4818</a>)</li> <li><a href="https://github.com/webpack/webpack-cli/commit/53f6d722c4093a387e23413d79e6cf67b5a867ba"><code>53f6d72</code></a> chore(deps): bump actions/checkout in the dependencies group (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4816">#4816</a>)</li> <li><a href="https://github.com/webpack/webpack-cli/commit/8856346f50b472ba448c4e3a8f7f8f5781c69fb2"><code>8856346</code></a> chore: add allowscripts to work with npm 12 (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4811">#4811</a>)</li> <li><a href="https://github.com/webpack/webpack-cli/commit/0b0f1ee3d4a648e8d1679a73f511277d25bf47aa"><code>0b0f1ee</code></a> chore(deps): bump fast-uri from 3.1.2 to 3.1.4 (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4815">#4815</a>)</li> <li><a href="https://github.com/webpack/webpack-cli/commit/d60a777303fdd34eb1e5e6901ab39c7370ce5fef"><code>d60a777</code></a> chore(deps-dev): bump postcss from 8.5.10 to 8.5.22 (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4814">#4814</a>)</li> <li><a href="https://github.com/webpack/webpack-cli/commit/8c1719aeab0efe0a5f13649d407c425b14ba4216"><code>8c1719a</code></a> chore(deps): bump shell-quote from 1.8.4 to 1.10.0 (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4813">#4813</a>)</li> <li><a href="https://github.com/webpack/webpack-cli/commit/8c2473c23ff926772f8d7719777236ab113be591"><code>8c2473c</code></a> chore(deps): bump immutable from 5.1.5 to 5.1.9 (<a href="https://redirect.github.com/webpack/webpack-cli/issues/4812">#4812</a>)</li> <li>Additional commits viewable in <a href="https://github.com/webpack/webpack-cli/compare/webpack-cli@5.1.4...webpack-cli@7.2.2">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for webpack-cli since your current version.</p> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) ## Which issue does this PR close? <!-- We generally require a GitHub issue to be filed for all bug fixes and enhancements and this helps us generate change logs for our releases. You can link an issue to this PR using the GitHub syntax. For example `Closes apache#123` indicates that this PR will close issue apache#123. --> - Part of apache#24246 . ## Rationale for this change Bitwise XOR simplifications cancelled repeated nullable operands, which could incorrectly produce a non-NULL result when the operand was NULL. For example: ```sql SELECT i XOR i, (i XOR 7) XOR i, i XOR (7 XOR i) FROM (VALUES (NULL::INT)) AS t(i); ``` These expressions should all return NULL, but simplification could replace them with 0, 7, and 7. <!-- Why are you proposing this change? If this is already explained clearly in the issue then this section is not needed. Explaining clearly why changes are proposed helps reviewers understand your changes and offer better suggestions for fixes. Please explain the problem you are trying to solve in terms of the user-visible behavior, rather than the implementation. For example, "The code in `foo.rs` doesn't handle nulls" is a symptom of the implementation. "COUNT(DISTINCT) returns wrong results when the column contains nulls" is the user-visible problem. --> ## What changes are included in this PR? Only cancel repeated XOR operands when the removed operand is non-nullable. <!-- There is no need to duplicate the description in the issue here, but it is sometimes worth providing a summary of the individual changes in this PR. --> ## Are these changes tested? <!-- We typically require tests for all PRs in order to: 1. Prevent the code from being accidentally broken by subsequent changes 2. Serve as another way to document the expected behavior of the code If tests are not included in your PR, please explain why (for example, are they covered by existing tests)? --> Yes. Added sqllogictests covering results. ## Are there any user-facing changes? Yes. Bitwise XOR expressions with repeated nullable operands now correctly preserve NULLs. <!-- If there are user-facing changes then we may require documentation to be updated before approving the PR. If there are any breaking changes to public APIs, please add the `api change` label. -->
Bumps [pygithub](https://github.com/pygithub/pygithub) from 2.8.1 to 2.9.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pygithub/pygithub/releases">pygithub's releases</a>.</em></p> <blockquote> <h2>v2.9.1</h2> <h3>Bug Fixes</h3> <ul> <li>Fix getting release by tag in lazy mode by <a href="https://github.com/EnricoMi"><code>@EnricoMi</code></a> in <a href="https://redirect.github.com/PyGithub/PyGithub/pull/3469">PyGithub/PyGithub#3469</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/PyGithub/PyGithub/compare/v2.9.0...v2.9.1">https://github.com/PyGithub/PyGithub/compare/v2.9.0...v2.9.1</a></p> <h2>v2.9.0</h2> <h3>Notable changes</h3> <h4>Lazy PyGithub objects</h4> <p>The notion of lazy objects has been added to some PyGithub classes in version 2.6.0. This release now makes all <code>CompletableGithubObject</code>s optionally lazy (if useful). See <a href="https://redirect.github.com/PyGithub/PyGithub/pull/3403">PyGithub/PyGithub#3403</a> for a complete list.</p> <p>In lazy mode, getting a PyGithub object does not send a request to the GitHub API. Only accessing methods and properties sends the necessary requests to the GitHub API:</p> <pre lang="python"><code># Use lazy mode g = Github(auth=auth, lazy=True) <h1>these method calls do not send requests to the GitHub API</h1> <p>user = g.get_user("PyGithub") # get the user repo = user.get_repo("PyGithub") # get the user's repo pull = repo.get_pull(3403) # get a known pull request issue = pull.as_issue() # turn the pull request into an issue</p> <h1>these method and property calls send requests to Github API</h1> <p>issue.create_reaction("rocket") # create a reaction created = repo.created_at # get property of lazy object repo</p> <h1>once a lazy object has been fetched, all properties are available (no more requests)</h1> <p>licence = repo.license </code></pre></p> <p>All PyGithub classes that implement <code>CompletableGithubObject</code> support lazy mode (if useful). This is only useful for classes that have methods creating, changing, or getting objects.</p> <p>By default, PyGithub objects are not lazy.</p> <h4>PyGithub objects with a paginated property</h4> <p>The GitHub API has the "feature" of paginated properties. Some objects returned by the API have a property that allows for pagination. Fetching subsequent pages of that property means fetching the entire object (with all other properties) and the specified page of the paginated property. Iterating over the paginated property means fetching all other properties multiple times. Fortunately, the allowed size of each page (<code>per_page</code> is usually 300, in contrast to the "usual" <code>per_page</code> maximum of 100).</p> <p>Objects with paginated properties:</p> <ul> <li>Commit.files</li> <li>Comparison.commits</li> <li>EnterpriseConsumedLicenses.users</li> </ul> <p>This PR makes iterating those paginated properties use the configured <code>per_page</code> setting.</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/PyGithub/PyGithub/blob/main/doc/changes.rst">pygithub's changelog</a>.</em></p> <blockquote> <h2>Version 2.9.1 (April 14, 2026)</h2> <p>Bug Fixes ^^^^^^^^^</p> <ul> <li>Fix getting release by tag in lazy mode (<code>[apache#3469](PyGithub/PyGithub#3469) <https://github.com/PyGithub/PyGithub/pull/3469></code><em>) (<code>7d1ba281e <https://github.com/PyGithub/PyGithub/commit/7d1ba281e></code></em>)</li> </ul> <h2>Version 2.9.0 (March 22, 2026)</h2> <p>Notable changes ^^^^^^^^^^^^^^^</p> <p>Lazy PyGithub objects """""""""""""""""""""</p> <p>The notion of lazy objects has been added to some PyGithub classes in version 2.6.0. This release now makes all <code>CompletableGithubObject</code>\s optionally lazy (if useful). See <code>[apache#3403](PyGithub/PyGithub#3403) <https://github.com/PyGithub/PyGithub/pull/3403></code>_ for a complete list.</p> <p>In lazy mode, getting a PyGithub object does not send a request to the GitHub API. Only accessing methods and properties sends the necessary requests to the GitHub API:</p> <p>.. code-block:: python</p> <pre><code># Use lazy mode g = Github(auth=auth, lazy=True) <h1>these method calls do not send requests to the GitHub API</h1> <p>user = g.get_user("PyGithub") # get the user repo = user.get_repo("PyGithub") # get the user's repo pull = repo.get_pull(3403) # get a known pull request issue = pull.as_issue() # turn the pull request into an issue</p> <h1>these method and property calls send requests to Github API</h1> <p>issue.create_reaction("rocket") # create a reaction created = repo.created_at # get property of lazy object repo</p> <h1>once a lazy object has been fetched, all properties are available (no more requests)</h1> <p>licence = repo.license </code></pre></p> <p>All PyGithub classes that implement <code>CompletableGithubObject</code> support lazy mode (if useful). This is only useful for classes that have methods creating, changing, or getting objects.</p> <p>By default, PyGithub objects are not lazy.</p> <p>PyGithub objects with a paginated property """"""""""""""""""""""""""""""""""""""""""</p> <p>The GitHub API has the "feature" of paginated properties.</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/PyGithub/PyGithub/commit/73742d410da73e44a477b0e3f05dfba1749022af"><code>73742d4</code></a> Release 2.9.1 (<a href="https://redirect.github.com/pygithub/pygithub/issues/3478">#3478</a>)</li> <li><a href="https://github.com/PyGithub/PyGithub/commit/7d1ba281e4bf02cb6d3772f11b17c7d6088052d8"><code>7d1ba28</code></a> Fix getting release by tag in lazy mode (<a href="https://redirect.github.com/pygithub/pygithub/issues/3469">#3469</a>)</li> <li><a href="https://github.com/PyGithub/PyGithub/commit/3a17ecf4a5a4dc873f2632470a712497b38eea88"><code>3a17ecf</code></a> Release 2.9.0 (<a href="https://redirect.github.com/pygithub/pygithub/issues/3465">#3465</a>)</li> <li><a href="https://github.com/PyGithub/PyGithub/commit/b1a9b7e2a37b515b141e01091b7c964ff883fe1e"><code>b1a9b7e</code></a> Consider per-page settings when iterating paginated properties (<a href="https://redirect.github.com/pygithub/pygithub/issues/3377">#3377</a>)</li> <li><a href="https://github.com/PyGithub/PyGithub/commit/24305f6d60869a849dadd0d271b4753ceac3658d"><code>24305f6</code></a> Update test key pair (<a href="https://redirect.github.com/pygithub/pygithub/issues/3453">#3453</a>)</li> <li><a href="https://github.com/PyGithub/PyGithub/commit/f2540db50423aa124beaeb8c7bfba7098a549c82"><code>f2540db</code></a> Deprecate <code>Reaction.delete</code> (<a href="https://redirect.github.com/pygithub/pygithub/issues/3435">#3435</a>)</li> <li><a href="https://github.com/PyGithub/PyGithub/commit/19e1c5032397a95c58fe25760723ffc24cbe0ec8"><code>19e1c50</code></a> Add <code>throw</code> option to <code>Workflow.create_dispatch</code> to raise exceptions (<a href="https://redirect.github.com/pygithub/pygithub/issues/2966">#2966</a>)</li> <li><a href="https://github.com/PyGithub/PyGithub/commit/646190988f3dd18e790969868b9ffe3c71acf254"><code>6461909</code></a> Add Secret Scanning Alerts and Improve Code Scan Alerts (<a href="https://redirect.github.com/pygithub/pygithub/issues/3307">#3307</a>)</li> <li><a href="https://github.com/PyGithub/PyGithub/commit/95648db4780e977b5bad8c19f669ec3f8c2b1a49"><code>95648db</code></a> Add Python 3.14 to CI and tox (<a href="https://redirect.github.com/pygithub/pygithub/issues/3429">#3429</a>)</li> <li><a href="https://github.com/PyGithub/PyGithub/commit/3716bab10b7a99445ef50d698d6b2d681620ac88"><code>3716bab</code></a> Use <code>GET</code> url or <code>_links.self</code> as object url (<a href="https://redirect.github.com/pygithub/pygithub/issues/3421">#3421</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pygithub/pygithub/compare/v2.8.1...v2.9.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [setuptools](https://github.com/pypa/setuptools) from 83.0.0 to 84.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v84.0.0</h1> <h2>Features</h2> <ul> <li>Newline-separated <code>keywords</code> and <code>platforms</code><code>pypa/setuptools#4887</code><code>old specification <https://peps.python.org/pep-0345/></code>_ separated items with spaces and the current one uses commas. (<a href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li> <li><code>Extension</code><code>pypa/distutils#373</code><a href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li> <li>The C compiler modules now emit log messages through their own <code>compilers.C.*</code> loggers instead of the distutils root logger, part of decoupling the compilers package from distutils. The logger names are normalized to a stable <code>compilers.C.*</code> prefix so they remain constant as the package migrates toward a standalone <code>compilers.C</code> distribution. (<a href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li> <li>The C compilers gained a <code>Compiler.call</code> method -- a thin wrapper over <code>subprocess.check_call</code> (with macOS deployment-target env injection) that is the modern replacement for <code>Compiler.spawn</code>. The compilers no longer depend on <code>distutils.spawn</code>, <code>distutils.dir_util</code>, <code>distutils.file_util</code>, <code>distutils._modified</code>, or <code>distutils.util.execute</code>/<code>split_quoted</code>: the generic <code>newer</code>/<code>newer_group</code> and <code>split_quoted</code> helpers are vendored into the <code>compilers</code> package, and <code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code> are implemented directly on the standard library (<code>os.makedirs</code>/<code>shutil.move</code>). The methods are retained for backward compatibility. (<a href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li> <li>The compilers no longer depend on <code>distutils.util</code>, <code>distutils.version</code>, <code>distutils.compat</code>, or <code>distutils._macos_compat</code>. The platform-identification helpers (<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>) now live in <code>distutils.compilers.platform.detect</code> and the macOS deployment-target logic and <code>compiler_fixup</code> in <code>distutils.compilers.platform.macos</code>; <code>CygwinCCompiler.gcc_version</code> returns a <code>packaging.version.Version</code>. <code>distutils.util</code> re-exports the platform/macOS helpers from their new homes for backward compatibility rather than keeping duplicate copies. (sysconfig lookups still route through distutils pending its own decoupling.) (<a href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li> <li>The compilers now read their build configuration from the standard library's <code>sysconfig</code> instead of <code>distutils.sysconfig</code>. Per-compiler customization -- previously <code>distutils.sysconfig.customize_compiler</code> -- has moved into <code>Compiler.configure_system()</code>: a no-op on the base class, with <code>UnixCCompiler</code> applying the compiler/flag/archiver settings CPython recorded in <code>sysconfig</code> (and the usual <code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment overrides). <code>distutils.sysconfig.customize_compiler</code> is retained as a thin wrapper that calls <code>compiler.configure_system()</code>. (<a href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li> </ul> <h2>Bugfixes</h2> <ul> <li>The MSVC linker now passes its arguments through a response file when the command line would exceed the Windows maximum length, fixing failures when linking a large number of objects. (<a href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li> <li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of a bare <code>-O</code>. The two are equivalent to GCC, but <code>cc1</code> rejected the bare form when building 32-bit extensions with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li> <li><code>copy_file</code><code>pypa/distutils#379</code><a href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li> <li>Setuptools wheels no longer bundled the project's own test modules. -- by :user:<code>itscloud0</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li> <li><code>build_ext</code> no longer fails when cross-compiling with a compiler other than MSVC (such as MinGW). <code>Compiler</code> now provides a no-op <code>initialize()</code><code>pypa/distutils#399</code></li> </ul> <h2>Improved Documentation</h2> <ul> <li>Clarified what "correspond exactly to the directory structure" means in the <code>packages</code> section of the Package Discovery user guide. (<a href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li> <li>Documented how <code>bdist_wheel</code>'s <code>py_limited_api</code> option controls <code>abi3</code> wheel tagging for extension modules -- by :user:<code>Himanshuagrawal4</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li><code>Compiler.spawn</code> is deprecated in favor of the new <code>Compiler.call</code>. <code>call</code> raises native <code>subprocess</code> exceptions; <code>spawn</code> remains as a shim that emits a <code>DeprecationWarning</code> and translates them to <code>DistutilsExecError</code>. The MSVC <code>spawn</code> compatibility shim for third-party monkeypatches predating the <code>env</code> argument (numpy.distutils before 1.19, per <a href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>) has been removed. <code>distutils.spawn.spawn</code> is likewise reduced to a thin wrapper around <code>subprocess.check_call</code>: it no longer resolves <code>cmd[0]</code> via <code>shutil.which</code> (<code>subprocess</code> searches <code>PATH</code> itself) nor injects <code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the compilers, the only callers to which it applied). (<a href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li> <li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code> lower than the interpreter's configured value now raises <code>compilers.errors.PlatformError</code> instead of <code>distutils.errors.DistutilsPlatformError</code> (the macOS deployment-target check moved into the compilers package). <code>CygwinCCompiler.gcc_version</code> returns a <code>packaging.version.Version</code> rather than the removed <code>distutils.version.LooseVersion</code>. Completing the transition begun in <a href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>, <code>UnixCCompiler.runtime_library_dir_option</code> now returns the <code>["-Wl,--enable-new-dtags", "-Wl,-rpath,<dir>"]</code> list directly for GNU ld rather than collapsing it into a single string, and the temporary <code>distutils.compat.consolidate_linker_args</code> shim has been removed. (<a href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li> <li>The compilers now define their own exception vocabulary instead of borrowing distutils' framework errors. Language-agnostic exceptions (<code>Error</code>, <code>UnknownFileType</code>, and a new <code>PlatformError</code>) live at <code>distutils.compilers.errors</code>, leaving room for future <code>compilers.<language></code> siblings; the C/C++-specific <code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code> remain in <code>distutils.compilers.C.errors</code>. The compilers now raise <code>compilers.errors.PlatformError</code> where they previously raised <code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>, and <code>compilers._modified.newer</code> raises the stdlib <code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its own framework exceptions and re-exports the compiler ones (<code>CCompilerError</code>, <code>CompileError</code>, etc.) for backward compatibility; because <code>CCompilerError</code> is <code>compilers.errors.Error</code>, code catching it (as distutils' top-level handlers do) still catches the new <code>PlatformError</code>. (<a href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li> <li><code>customize_compiler</code> now asserts that the compiler-related config variables (<code>CC</code>, <code>CXX</code>, <code>CFLAGS</code>, etc.) resolve to strings, raising <code>AssertionError</code> if any are unexpectedly <code>None</code><code>pypa/distutils#363</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a> from pypa/bugfix/integration-pip-flit-backend</li> <li><a href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a> Select the top-level pyproject.toml when reading build requirements</li> <li><a href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a> Bump version: 83.0.0 → 84.0.0</li> <li><a href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a> Sync with distutils @ e8eb87855 (<a href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li> <li><a href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a> Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li> <li><a href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a> Merge <a href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li> <li><a href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a> from Avasam/Configuring-lint.flake8-comprehensions.a...</li> <li><a href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a> Configure C408 to allow dict(a=1) rather than disabling it</li> <li><a href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a> Configuring lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li> <li><a href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a> Match the distutils sdist base type for the user_options override</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v83.0.0...v84.0.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [rich](https://github.com/Textualize/rich) from 14.3.2 to 15.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Textualize/rich/releases">rich's releases</a>.</em></p> <blockquote> <h2>The So Long 3.8 Release</h2> <p>A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024</p> <h2>[15.0.0] - 2026-04-12</h2> <h3>Changed</h3> <ul> <li>Breaking change: Dropped support for Python3.8</li> </ul> <h3>Fixed</h3> <ul> <li>Fixed empty print ignoring the <code>end</code> parameter <a href="https://redirect.github.com/Textualize/rich/pull/4075">Textualize/rich#4075</a></li> <li>Fixed <code>Text.from_ansi</code> removing newlines <a href="https://redirect.github.com/Textualize/rich/pull/4076">Textualize/rich#4076</a></li> <li>Fixed <code>FileProxy.isatty</code> not proxying <a href="https://redirect.github.com/Textualize/rich/pull/4077">Textualize/rich#4077</a></li> <li>Fixed inline code in Markdown tables cells <a href="https://redirect.github.com/Textualize/rich/pull/4079">Textualize/rich#4079</a></li> </ul> <h2>The Faster Startup Release</h2> <p>No new features in this release, but there should be improved startup time for Rich apps, and potentially improved runtime if you have a lot of links.</p> <h2>[14.3.4] - 2026-04-11</h2> <h3>Changed</h3> <ul> <li>Improved import time with lazy loading <a href="https://redirect.github.com/Textualize/rich/pull/4070">Textualize/rich#4070</a></li> <li>Changed link id generation to avoid random number generation at runtime <a href="https://redirect.github.com/Textualize/rich/pull/3845">Textualize/rich#3845</a></li> </ul> <h2>The infinite Release</h2> <p>Fixed a infinite loop in split_graphemes</p> <h2>[14.3.3] - 2026-02-19</h2> <h3>Fixed</h3> <ul> <li>Fixed infinite loop with <code>cells.split_graphemes</code> <a href="https://redirect.github.com/Textualize/rich/pull/4006">Textualize/rich#4006</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Textualize/rich/blob/main/CHANGELOG.md">rich's changelog</a>.</em></p> <blockquote> <h2>[15.0.0] - 2026-04-12</h2> <h3>Changed</h3> <ul> <li>Breaking change: Dropped support for Python3.8</li> </ul> <h3>Fixed</h3> <ul> <li>Fixed empty print ignoring the <code>end</code> parameter <a href="https://redirect.github.com/Textualize/rich/pull/4075">Textualize/rich#4075</a></li> <li>Fixed <code>Text.from_ansi</code> removing newlines <a href="https://redirect.github.com/Textualize/rich/pull/4076">Textualize/rich#4076</a></li> <li>Fixed <code>FileProxy.isatty</code> not proxying <a href="https://redirect.github.com/Textualize/rich/pull/4077">Textualize/rich#4077</a></li> <li>Fixed inline code in Markdown tables cells <a href="https://redirect.github.com/Textualize/rich/pull/4079">Textualize/rich#4079</a></li> </ul> <h2>[14.3.4] - 2026-04-11</h2> <h3>Changed</h3> <ul> <li>Improved import time with lazy loading <a href="https://redirect.github.com/Textualize/rich/pull/4070">Textualize/rich#4070</a></li> <li>Changed link id generation to avoid random number generation at runtime <a href="https://redirect.github.com/Textualize/rich/pull/3845">Textualize/rich#3845</a></li> </ul> <h2>[14.3.3] - 2026-02-19</h2> <h3>Fixed</h3> <ul> <li>Fixed infinite loop with <code>cells.split_graphemes</code> <a href="https://redirect.github.com/Textualize/rich/pull/4006">Textualize/rich#4006</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Textualize/rich/commit/6ac483cbea39cab124dfd3483bba70ffafb71050"><code>6ac483c</code></a> correction</li> <li><a href="https://github.com/Textualize/rich/commit/458a9109c8b7da81c17b2270ea8a88f3e8c0465a"><code>458a910</code></a> Merge pull request <a href="https://redirect.github.com/Textualize/rich/issues/4080">#4080</a> from Textualize/bump1500</li> <li><a href="https://github.com/Textualize/rich/commit/82e06e0d9985fd8cce456dc3977e0d2d9e84b4d8"><code>82e06e0</code></a> changelog</li> <li><a href="https://github.com/Textualize/rich/commit/d6556bc44881b9904f29f5d9d69a0812b30675d1"><code>d6556bc</code></a> bump to 15.0.0</li> <li><a href="https://github.com/Textualize/rich/commit/ffe2edc5968eac19d5493c2d7b27965031a692e9"><code>ffe2edc</code></a> Merge pull request <a href="https://redirect.github.com/Textualize/rich/issues/4079">#4079</a> from Textualize/inline-table-code</li> <li><a href="https://github.com/Textualize/rich/commit/cf3b5a16f7a76b2e8c4921d3314021bb72a6c5c1"><code>cf3b5a1</code></a> changelog</li> <li><a href="https://github.com/Textualize/rich/commit/77f0edbdef71f2a895cd0ab1481e9a1fc79d42e6"><code>77f0edb</code></a> remove comments</li> <li><a href="https://github.com/Textualize/rich/commit/7ef2d05ca8aa3cb405dab2fdf3282e69cf8089e3"><code>7ef2d05</code></a> fix inline code in table cells</li> <li><a href="https://github.com/Textualize/rich/commit/19c67b9a3479841e9133bea94607c89ee931d3fc"><code>19c67b9</code></a> Merge pull request <a href="https://redirect.github.com/Textualize/rich/issues/4077">#4077</a> from Textualize/isattry</li> <li><a href="https://github.com/Textualize/rich/commit/494b795031782c694297d2db78bd04fb8c82f590"><code>494b795</code></a> changelog</li> <li>Additional commits viewable in <a href="https://github.com/Textualize/rich/compare/v14.3.2...v15.0.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…wasmtest/datafusion-wasm-app in the all-npm-deps group across 1 directory (apache#24300) Bumps the all-npm-deps group with 1 update in the /datafusion/wasmtest/datafusion-wasm-app directory: [webpack](https://github.com/webpack/webpack). Updates `webpack` from 5.105.0 to 5.109.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/webpack/webpack/releases">webpack's releases</a>.</em></p> <blockquote> <h2>v5.109.2</h2> <h3>Patch Changes</h3> <ul> <li> <p>Resolve aliases pointing at a package directory whose name ends with <code>.js</code> again. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21542">#21542</a>)</p> </li> <li> <p>Name CSS sources in source maps by their resource path, without the <code>css </code> prefix. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21536">#21536</a>)</p> </li> <li> <p>Delete no longer referenced files from the filesystem cache directory after storing the cache, age them by recorded time so restored caches are cleaned too, and collect every fully expired pack in one store instead of one per build. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21528">#21528</a>)</p> </li> <li> <p>Report <code>"universal"</code> as the loader context target for the universal target. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21540">#21540</a>)</p> </li> <li> <p>Skip <code>require().prop</code> in dead branches gated by inlined imported constants. (by <a href="https://github.com/hai-x"><code>@hai-x</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21517">#21517</a>)</p> </li> <li> <p>Annotate configuration options and public hooks in the generated types with the <code>@SInCE</code> JSDoc tag. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21473">#21473</a>)</p> </li> </ul> <h2>v5.109.1</h2> <h3>Patch Changes</h3> <ul> <li> <p>Fix stray semicolon emitted before an imported call following a parenthesized sequence element. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21533">#21533</a>)</p> </li> <li> <p>Make <code>require(esm)</code> <code>module.exports</code> re-export analysis independent of module processing order. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21521">#21521</a>)</p> </li> <li> <p>Ignore ERR_SERVER_NOT_RUNNING on lazy-compilation backend dispose so <code>compiler.close()</code> succeeds on Bun. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21521">#21521</a>)</p> </li> <li> <p>Name the failing key when DefinePlugin fails to evaluate a <code>typeof</code> value. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21503">#21503</a>)</p> </li> <li> <p>Improve Deno compatibility: guard <code>setNoDelay</code> and force-close connections on lazy-compilation backend dispose, and return a real <code>ArrayBuffer</code> from the Node async/sync wasm loader so <code>WebAssembly.instantiate</code> accepts it. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21524">#21524</a>)</p> </li> <li> <p>Speed up the HTML parser and cut its peak memory: module-scope helpers/state and tokenizer callbacks, plus exact AST column pre-sizing. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21492">#21492</a>)</p> </li> <li> <p>Track CommonJS build dependencies by parsing sources when <code>require.cache</code> children are unavailable (e.g. Bun). (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21531">#21531</a>)</p> </li> <li> <p>Cook common string-literal escapes on the JS parser fast path and own the tokenizer's cold-path readers. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21500">#21500</a>)</p> </li> <li> <p>Build the CSS <code>parseA*</code> AST on the SoA store instead of node classes, cutting parse memory and time. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21498">#21498</a>)</p> </li> <li> <p>Speed up and cut memory of the experimental CSS and HTML parsers: drop two derivable AST node columns, and scan long string, url, comment, and plaintext token bodies natively. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21504">#21504</a>)</p> </li> <li> <p>Speed up non-modules CSS parsing: skip redundant token re-reads, drop selector-prelude tokens without materializing nodes, allocate rule preludes lazily, and fast-path empty list seals. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21511">#21511</a>)</p> </li> <li> <p>Speed up stats generation and cut its peak memory: reuse cached sort comparators instead of thrashing the comparator caches on every sort, and drop redundant module-graph lookups and allocations in the extractors. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21506">#21506</a>)</p> </li> <li> <p>Speed up CSS parsing: byte-range function-name checks, indexed sibling lookahead. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21520">#21520</a>)</p> </li> <li> <p>Reduce allocations and redundant work across the code-generation, module-concatenation, exports/usage-analysis, hashing, and chunk-splitting hot paths. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21516">#21516</a>)</p> </li> <li> <p>Enable the Node.js compile cache in the webpack CLI entry point. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21523">#21523</a>)</p> </li> <li> <p>Encode the persistent cache with V8's value serializer. (by <a href="https://github.com/avivkeller"><code>@avivkeller</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21514">#21514</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/webpack/webpack/blob/main/CHANGELOG.md">webpack's changelog</a>.</em></p> <blockquote> <h2>5.109.2</h2> <h3>Patch Changes</h3> <ul> <li> <p>Resolve aliases pointing at a package directory whose name ends with <code>.js</code> again. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21542">#21542</a>)</p> </li> <li> <p>Name CSS sources in source maps by their resource path, without the <code>css </code> prefix. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21536">#21536</a>)</p> </li> <li> <p>Delete no longer referenced files from the filesystem cache directory after storing the cache, age them by recorded time so restored caches are cleaned too, and collect every fully expired pack in one store instead of one per build. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21528">#21528</a>)</p> </li> <li> <p>Report <code>"universal"</code> as the loader context target for the universal target. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21540">#21540</a>)</p> </li> <li> <p>Skip <code>require().prop</code> in dead branches gated by inlined imported constants. (by <a href="https://github.com/hai-x"><code>@hai-x</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21517">#21517</a>)</p> </li> <li> <p>Annotate configuration options and public hooks in the generated types with the <code>@SInCE</code> JSDoc tag. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21473">#21473</a>)</p> </li> </ul> <h2>5.109.1</h2> <h3>Patch Changes</h3> <ul> <li> <p>Fix stray semicolon emitted before an imported call following a parenthesized sequence element. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21533">#21533</a>)</p> </li> <li> <p>Make <code>require(esm)</code> <code>module.exports</code> re-export analysis independent of module processing order. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21521">#21521</a>)</p> </li> <li> <p>Ignore ERR_SERVER_NOT_RUNNING on lazy-compilation backend dispose so <code>compiler.close()</code> succeeds on Bun. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21521">#21521</a>)</p> </li> <li> <p>Name the failing key when DefinePlugin fails to evaluate a <code>typeof</code> value. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21503">#21503</a>)</p> </li> <li> <p>Improve Deno compatibility: guard <code>setNoDelay</code> and force-close connections on lazy-compilation backend dispose, and return a real <code>ArrayBuffer</code> from the Node async/sync wasm loader so <code>WebAssembly.instantiate</code> accepts it. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21524">#21524</a>)</p> </li> <li> <p>Speed up the HTML parser and cut its peak memory: module-scope helpers/state and tokenizer callbacks, plus exact AST column pre-sizing. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21492">#21492</a>)</p> </li> <li> <p>Track CommonJS build dependencies by parsing sources when <code>require.cache</code> children are unavailable (e.g. Bun). (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21531">#21531</a>)</p> </li> <li> <p>Cook common string-literal escapes on the JS parser fast path and own the tokenizer's cold-path readers. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21500">#21500</a>)</p> </li> <li> <p>Build the CSS <code>parseA*</code> AST on the SoA store instead of node classes, cutting parse memory and time. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21498">#21498</a>)</p> </li> <li> <p>Speed up and cut memory of the experimental CSS and HTML parsers: drop two derivable AST node columns, and scan long string, url, comment, and plaintext token bodies natively. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21504">#21504</a>)</p> </li> <li> <p>Speed up non-modules CSS parsing: skip redundant token re-reads, drop selector-prelude tokens without materializing nodes, allocate rule preludes lazily, and fast-path empty list seals. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21511">#21511</a>)</p> </li> <li> <p>Speed up stats generation and cut its peak memory: reuse cached sort comparators instead of thrashing the comparator caches on every sort, and drop redundant module-graph lookups and allocations in the extractors. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21506">#21506</a>)</p> </li> <li> <p>Speed up CSS parsing: byte-range function-name checks, indexed sibling lookahead. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21520">#21520</a>)</p> </li> <li> <p>Reduce allocations and redundant work across the code-generation, module-concatenation, exports/usage-analysis, hashing, and chunk-splitting hot paths. (by <a href="https://github.com/alexander-akait"><code>@alexander-akait</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21516">#21516</a>)</p> </li> <li> <p>Enable the Node.js compile cache in the webpack CLI entry point. (by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/webpack/webpack/pull/21523">#21523</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/webpack/webpack/commit/6a24bd65b72c43207c36ce61b54e1f5833486906"><code>6a24bd6</code></a> chore(release): new release (<a href="https://redirect.github.com/webpack/webpack/issues/21534">#21534</a>)</li> <li><a href="https://github.com/webpack/webpack/commit/d1b5b6d1d75b6dc04248ed98420a838a00fda221"><code>d1b5b6d</code></a> fix: resolve aliases pointing at a package directory ending in .js (<a href="https://redirect.github.com/webpack/webpack/issues/21542">#21542</a>)</li> <li><a href="https://github.com/webpack/webpack/commit/9cdcc577c7a1971fa07a2b38828d1c61145597a3"><code>9cdcc57</code></a> fix(target): report "universal" as the loader target (<a href="https://redirect.github.com/webpack/webpack/issues/21540">#21540</a>)</li> <li><a href="https://github.com/webpack/webpack/commit/774e7e4b3d525e00bc7698c518b89e44eba7230d"><code>774e7e4</code></a> feat: annotate schema options with added keywords (<a href="https://redirect.github.com/webpack/webpack/issues/21473">#21473</a>)</li> <li><a href="https://github.com/webpack/webpack/commit/ff07bdc72f875868dd33cd00dfeae61392c01ded"><code>ff07bdc</code></a> fix(css): name CSS sources in source maps by their resource path (<a href="https://redirect.github.com/webpack/webpack/issues/21536">#21536</a>)</li> <li><a href="https://github.com/webpack/webpack/commit/d56d82dd2f98f7ed6dcb3b14260ea7c53ddf2145"><code>d56d82d</code></a> fix(cache): reclaim stale filesystem cache files reliably (<a href="https://redirect.github.com/webpack/webpack/issues/21539">#21539</a>)</li> <li><a href="https://github.com/webpack/webpack/commit/ae67e2a9225115e998607e180e2ef226b255ca34"><code>ae67e2a</code></a> chore(readme): add codspeed (<a href="https://redirect.github.com/webpack/webpack/issues/21497">#21497</a>)</li> <li><a href="https://github.com/webpack/webpack/commit/964bbfad0ea01916ae78ab7d81cb1b544bea90f0"><code>964bbfa</code></a> fix: delete no longer referenced files from the filesystem cache directory (#...</li> <li><a href="https://github.com/webpack/webpack/commit/075d0cd8fa989752014f20988d95116b5235b997"><code>075d0cd</code></a> feat: skip <code>require().prop</code> in dead branches (<a href="https://redirect.github.com/webpack/webpack/issues/21517">#21517</a>)</li> <li><a href="https://github.com/webpack/webpack/commit/ec3908838175b79c004f61f9bf53d57a6d0e52f8"><code>ec39088</code></a> chore(release): new release (<a href="https://redirect.github.com/webpack/webpack/issues/21493">#21493</a>)</li> <li>Additional commits viewable in <a href="https://github.com/webpack/webpack/compare/v5.105.0...v5.109.2">compare view</a></li> </ul> </details> <br /> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typing-extensions](https://github.com/python/typing_extensions) from 4.15.0 to 4.16.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/python/typing_extensions/releases">typing-extensions's releases</a>.</em></p> <blockquote> <h2>4.16.0</h2> <p>No changes since 4.16.0rc2.</p> <p>Changes since 4.15.0:</p> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> <li>Add support for <code>AsyncIterator</code>, <code>io.Reader</code>, <code>io.Writer</code> and <code>os.PathLike</code> protocols as bases for other protocols.</li> <li>Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling <code>isinstance</code> with <code>typing_extensions.Concatenate[...]</code> or <code>typing_extensions.Unpack[...]</code> as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using <code>sys.setprofile</code>. This affected both CPython and PyPy implementations. Patch by Brian Schubert.</li> <li>Fix <code>__init_subclass__()</code> behavior in the presence of multiple inheritance involving an <code>@deprecated</code>-decorated base class. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/138210">#138210</a> by Brian Schubert.</li> <li>Raise <code>TypeError</code> when attempting to subclass <code>typing_extensions.ParamSpec</code> on Python 3.9. The <code>typing</code> implementation has always raised an error, and the <code>typing_extensions</code> implementation has raised an error on Python 3.10+ since <code>typing_extensions</code> v4.6.0. Patch by Brian Schubert.</li> <li>Add the <code>bound</code>, <code>covariant</code>, <code>contravariant</code>, and <code>infer_variance</code> parameters to <code>TypeVarTuple</code>.</li> <li>Officially support the <code>bound</code>, <code>covariant</code>, <code>contravariant</code> and <code>infer_variance</code> parameters to <code>ParamSpec</code>. Improve the validation of these parameters at runtime.</li> <li>Rename <code>typing_extensions.Sentinel</code> to <code>typing_extensions.sentinel</code>, following the name that has been adopted for <code>builtins.sentinel</code> on Python 3.15. <code>typing_extensions.Sentinel</code> is retained as a soft-deprecated alias for backwards compatibility.</li> <li>Add support for pickling sentinels.</li> <li>Sentinels now preserve their identity when copied or deep-copied.</li> <li>Deprecate passing <code>name</code> as a keyword argument or <code>repr</code> as a positional argument to the <code>sentinel</code> constructor.</li> <li>The default repr of a sentinel <code>X = sentinel("X")</code> is now <code>X</code> rather than <code><X></code>.</li> <li>Deprecate arbitrary attribute assignments to sentinels.</li> <li>Deprecate subclassing sentinels.</li> <li>Add support for Python 3.15.</li> <li>Avoid a <code>DeprecationWarning</code> when <code>deprecated</code> is applied to a coroutine function on Python 3.14.0.</li> </ul> <h2>4.16.0rc2</h2> <p>Changes since 4.16.0rc1:</p> <ul> <li>Avoid a <code>DeprecationWarning</code> when <code>deprecated</code> is applied to a coroutine function on Python 3.14.0.</li> </ul> <p>Changes since 4.15.0:</p> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> <li>Add support for <code>AsyncIterator</code>, <code>io.Reader</code>, <code>io.Writer</code> and <code>os.PathLike</code> protocols as bases for other protocols.</li> <li>Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling <code>isinstance</code> with <code>typing_extensions.Concatenate[...]</code> or <code>typing_extensions.Unpack[...]</code> as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using <code>sys.setprofile</code>. This affected both CPython and PyPy implementations. Patch by Brian Schubert.</li> <li>Fix <code>__init_subclass__()</code> behavior in the presence of multiple inheritance involving an <code>@deprecated</code>-decorated base class. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/138210">#138210</a> by Brian Schubert.</li> <li>Raise <code>TypeError</code> when attempting to subclass <code>typing_extensions.ParamSpec</code> on Python 3.9. The <code>typing</code> implementation has always raised an error, and the <code>typing_extensions</code> implementation has raised an error on Python 3.10+ since <code>typing_extensions</code> v4.6.0. Patch by Brian Schubert.</li> <li>Add the <code>bound</code>, <code>covariant</code>, <code>contravariant</code>, and <code>infer_variance</code> parameters to <code>TypeVarTuple</code>.</li> <li>Officially support the <code>bound</code>, <code>covariant</code>, <code>contravariant</code> and <code>infer_variance</code> parameters to <code>ParamSpec</code>. Improve the validation of these parameters at runtime.</li> <li>Rename <code>typing_extensions.Sentinel</code> to <code>typing_extensions.sentinel</code>, following the name that has been adopted for <code>builtins.sentinel</code> on Python 3.15. <code>typing_extensions.Sentinel</code> is retained as a soft-deprecated alias for backwards compatibility.</li> <li>Add support for pickling sentinels.</li> <li>Sentinels now preserve their identity when copied or deep-copied.</li> <li>Deprecate passing <code>name</code> as a keyword argument or <code>repr</code> as a positional argument to the <code>sentinel</code> constructor.</li> <li>The default repr of a sentinel <code>X = sentinel("X")</code> is now <code>X</code> rather than <code><X></code>.</li> <li>Deprecate arbitrary attribute assignments to sentinels.</li> <li>Deprecate subclassing sentinels.</li> <li>Add support for Python 3.15.</li> </ul> <h2>4.16.0rc1</h2> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python/typing_extensions/blob/main/CHANGELOG.md">typing-extensions's changelog</a>.</em></p> <blockquote> <h1>Release 4.16.0 (July 2, 2025)</h1> <p>No user-facing changes since 4.16.0rc2.</p> <h1>Release 4.16.0rc2 (June 25, 2026)</h1> <ul> <li>Avoid a <code>DeprecationWarning</code> when <code>deprecated</code> is applied to a coroutine function on Python 3.14.0.</li> </ul> <h1>Release 4.16.0rc1 (June 24, 2026)</h1> <ul> <li>Make <code>typing_extensions.TypeAliasType</code>'s <code>__module__</code> attribute writable. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/149172">#149172</a>.</li> <li>Fix setting of <code>__required_keys__</code> and <code>__optional_keys__</code> when inheriting keys with the same name.</li> <li>Add support for <code>AsyncIterator</code>, <code>io.Reader</code>, <code>io.Writer</code> and <code>os.PathLike</code> protocols as bases for other protocols.</li> <li>Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling <code>isinstance</code> with <code>typing_extensions.Concatenate[...]</code> or <code>typing_extensions.Unpack[...]</code> as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using <code>sys.setprofile</code>. This affected both CPython and PyPy implementations. Patch by Brian Schubert.</li> <li>Fix <code>__init_subclass__()</code> behavior in the presence of multiple inheritance involving an <code>@deprecated</code>-decorated base class. Backport of CPython PR <a href="https://redirect.github.com/python/cpython/pull/138210">#138210</a> by Brian Schubert.</li> <li>Raise <code>TypeError</code> when attempting to subclass <code>typing_extensions.ParamSpec</code> on Python 3.9. The <code>typing</code> implementation has always raised an error, and the <code>typing_extensions</code> implementation has raised an error on Python 3.10+ since <code>typing_extensions</code> v4.6.0. Patch by Brian Schubert.</li> <li>Add the <code>bound</code>, <code>covariant</code>, <code>contravariant</code>, and <code>infer_variance</code> parameters to <code>TypeVarTuple</code>.</li> <li>Officially support the <code>bound</code>, <code>covariant</code>, <code>contravariant</code> and <code>infer_variance</code> parameters to <code>ParamSpec</code>. Improve the validation of these parameters at runtime.</li> <li>Rename <code>typing_extensions.Sentinel</code> to <code>typing_extensions.sentinel</code>, following the name that has been adopted for <code>builtins.sentinel</code> on Python 3.15. <code>typing_extensions.Sentinel</code> is retained as a soft-deprecated alias for backwards compatibility.</li> <li>Add support for pickling sentinels.</li> <li>Sentinels now preserve their identity when copied or deep-copied.</li> <li>Deprecate passing <code>name</code> as a keyword argument or <code>repr</code> as a positional argument to the <code>sentinel</code> constructor.</li> <li>The default repr of a sentinel <code>X = sentinel("X")</code> is now <code>X</code> rather than <code><X></code>.</li> <li>Deprecate arbitrary attribute assignments to sentinels.</li> <li>Deprecate subclassing sentinels.</li> <li>Add support for Python 3.15.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python/typing_extensions/commit/f29cd28d8ed7642cafb1d18daf5aa41be6a5c0aa"><code>f29cd28</code></a> Prepare relase 4.16.0 (<a href="https://redirect.github.com/python/typing_extensions/issues/774">#774</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/43174610ec0c407ce05ad750077c4e62b9192b2b"><code>4317461</code></a> Bump version to 4.16.0rc2.dev (<a href="https://redirect.github.com/python/typing_extensions/issues/772">#772</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/4f71098e5be84798d36416bbca0e776223ee40f9"><code>4f71098</code></a> Prepare release 4.16.0rc2 (<a href="https://redirect.github.com/python/typing_extensions/issues/771">#771</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/37ed08a11f3b7c05234f8963ab97e3ebdbdc16a2"><code>37ed08a</code></a> Remove use of <code>asyncio.coroutines.iscoroutinefunction()</code> (<a href="https://redirect.github.com/python/typing_extensions/issues/769">#769</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/8dcc5594cbe5a4e348245fea6ce160ce93ed6601"><code>8dcc559</code></a> Improve <code>TypedDict</code> documentation (<a href="https://redirect.github.com/python/typing_extensions/issues/770">#770</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/224f8d50551d26f0d603093596c3a47a7302a46f"><code>224f8d5</code></a> Post-release followups for 3.16.0rc1 (<a href="https://redirect.github.com/python/typing_extensions/issues/767">#767</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/777de3eb5f4562e2054d1d7ce707f098b1f4fd2f"><code>777de3e</code></a> Prepare release 4.16.0rc1 (<a href="https://redirect.github.com/python/typing_extensions/issues/766">#766</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/890be90f1545e7d5fa904dfa3154d5f03c96782c"><code>890be90</code></a> Type variable tuple variance (<a href="https://redirect.github.com/python/typing_extensions/issues/741">#741</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/0e0545866d78458b668dc52d2edc411f6e39540d"><code>0e05458</code></a> Pin SQLAlchemy third-party tests to pytest==9.0.3 (<a href="https://redirect.github.com/python/typing_extensions/issues/765">#765</a>)</li> <li><a href="https://github.com/python/typing_extensions/commit/d2777468c274202ec290103b34313e50cf040229"><code>d277746</code></a> docs: add version compatibility table (<a href="https://redirect.github.com/python/typing_extensions/issues/733">#733</a>)</li> <li>Additional commits viewable in <a href="https://github.com/python/typing_extensions/compare/4.15.0...4.16.0">compare view</a></li> </ul> </details> <br /> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [requests](https://github.com/psf/requests) from 2.33.0 to 2.34.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/releases">requests's releases</a>.</em></p> <blockquote> <h2>v2.34.2</h2> <h2>2.34.2 (2026-05-14)</h2> <ul> <li>Moved <code>headers</code> input type back to <code>Mapping</code> to avoid invariance issues with <code>MutableMapping</code> and inferred dict types. Users calling <code>Request.headers.update()</code> may need to narrow typing in their code. (<a href="https://redirect.github.com/psf/requests/issues/7441">#7441</a>)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14">https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14</a></p> <h2>v2.34.1</h2> <h2>2.34.1 (2026-05-13)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>Widened <code>json</code> input type from <code>dict</code> and <code>list</code> to <code>Mapping</code> and <code>Sequence</code>. (<a href="https://redirect.github.com/psf/requests/issues/7436">#7436</a>)</li> <li>Changed <code>headers</code> input type to MutableMapping and removed <code>None</code> from <code>Request.headers</code> typing to improve handling for users. (<a href="https://redirect.github.com/psf/requests/issues/7431">#7431</a>)</li> <li><code>Response.reason</code> moved from <code>str | None</code> to <code>str</code> to improve handling for users. (<a href="https://redirect.github.com/psf/requests/issues/7437">#7437</a>)</li> <li>Fixed a bug where some bodies with custom <code>__getattr__</code> implementations weren't being properly detected as Iterables. (<a href="https://redirect.github.com/psf/requests/issues/7433">#7433</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/k223kim"><code>@k223kim</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/7433">psf/requests#7433</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13">https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13</a></p> <h2>v2.34.0</h2> <h2>2.34.0 (2026-05-11)</h2> <p><strong>Announcements</strong></p> <ul> <li> <p>Requests 2.34.0 introduces inline types, replacing those provided by typeshed. Public API types should be fully compatible with mypy, pyright, and ty. <strong>We believe types are comprehensive but if you find issues, please report them to the <a href="https://redirect.github.com/psf/requests/issues/7271">pinned tracking issue</a>.</strong></p> <p>Special thanks to <a href="https://github.com/bastimeyer"><code>@bastimeyer</code></a>, <a href="https://github.com/cthoyt"><code>@cthoyt</code></a>, <a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a>, and <a href="https://github.com/srittau"><code>@srittau</code></a> for helping review and test the types ahead of the release. (<a href="https://redirect.github.com/psf/requests/issues/7272">#7272</a>)</p> </li> </ul> <p><strong>Improvements</strong></p> <ul> <li>Digest Auth hashing algorithms have added <code>usedforsecurity=False</code> to clarify security considerations. (<a href="https://redirect.github.com/psf/requests/issues/7310">#7310</a>)</li> <li>Requests added support for Python 3.15 based on beta1. Downstream projects should be able to start testing prior to its release in October. (<a href="https://redirect.github.com/psf/requests/issues/7422">#7422</a>)</li> <li>Requests added support for Python 3.14t. (<a href="https://redirect.github.com/psf/requests/issues/7419">#7419</a>)</li> </ul> <p><strong>Bugfixes</strong></p> <ul> <li><code>Response.history</code> no longer contains a reference to itself, preventing accidental looping when traversing the history list. (<a href="https://redirect.github.com/psf/requests/issues/7328">#7328</a>)</li> <li>Requests no longer performs greedy matching on no_proxy domains. The</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/blob/main/HISTORY.md">requests's changelog</a>.</em></p> <blockquote> <h2>2.34.2 (2026-05-14)</h2> <ul> <li>Moved <code>headers</code> input type back to <code>Mapping</code> to avoid invariance issues with <code>MutableMapping</code> and inferred dict types. Users calling <code>Request.headers.update()</code> may need to narrow typing in their code. (<a href="https://redirect.github.com/psf/requests/issues/7441">#7441</a>)</li> </ul> <h2>2.34.1 (2026-05-13)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>Widened <code>json</code> input type from <code>dict</code> and <code>list</code> to <code>Mapping</code> and <code>Sequence</code>. (<a href="https://redirect.github.com/psf/requests/issues/7436">#7436</a>)</li> <li>Changed <code>headers</code> input type to MutableMapping and removed <code>None</code> from <code>Request.headers</code> typing to improve handling for users. (<a href="https://redirect.github.com/psf/requests/issues/7431">#7431</a>)</li> <li><code>Response.reason</code> moved from <code>str | None</code> to <code>str</code> to improve handling for users. (<a href="https://redirect.github.com/psf/requests/issues/7437">#7437</a>)</li> <li>Fixed a bug where some bodies with custom <code>__getattr__</code> implementations weren't being properly detected as Iterables. (<a href="https://redirect.github.com/psf/requests/issues/7433">#7433</a>)</li> </ul> <h2>2.34.0 (2026-05-11)</h2> <p><strong>Announcements</strong></p> <ul> <li> <p>Requests 2.34.0 introduces inline types, replacing those provided by typeshed. Public API types should be fully compatible with mypy, pyright, and ty. We believe types are comprehensive but if you find issues, please report them to the pinned tracking issue.</p> <p>Special thanks to <a href="https://github.com/bastimeyer"><code>@bastimeyer</code></a>, <a href="https://github.com/cthoyt"><code>@cthoyt</code></a>, <a href="https://github.com/edgarrmondragon"><code>@edgarrmondragon</code></a>, and <a href="https://github.com/srittau"><code>@srittau</code></a> for helping review and test the types ahead of the release. (<a href="https://redirect.github.com/psf/requests/issues/7272">#7272</a>)</p> </li> </ul> <p><strong>Improvements</strong></p> <ul> <li>Digest Auth hashing algorithms have added <code>usedforsecurity=False</code> to clarify security considerations. (<a href="https://redirect.github.com/psf/requests/issues/7310">#7310</a>)</li> <li>Requests added support for Python 3.15 based on beta1. Downstream projects should be able to start testing prior to its release in October. (<a href="https://redirect.github.com/psf/requests/issues/7422">#7422</a>)</li> <li>Requests added support for Python 3.14t. (<a href="https://redirect.github.com/psf/requests/issues/7419">#7419</a>)</li> </ul> <p><strong>Bugfixes</strong></p> <ul> <li><code>Response.history</code> no longer contains a reference to itself, preventing accidental looping when traversing the history list. (<a href="https://redirect.github.com/psf/requests/issues/7328">#7328</a>)</li> <li>Requests no longer performs greedy matching on no_proxy domains. The proxy_bypass implementation has been updated with CPython's fix from bpo-39057. (<a href="https://redirect.github.com/psf/requests/issues/7427">#7427</a>)</li> <li>Requests no longer incorrectly strips duplicate leading slashes in URI paths. This should address user issues with specific presigned URLs. Note the full fix requires urllib3 2.7.0+. (<a href="https://redirect.github.com/psf/requests/issues/7315">#7315</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3"><code>6e83187</code></a> v2.34.2</li> <li><a href="https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b"><code>84d10f0</code></a> Move Request.headers back to Mapping (<a href="https://redirect.github.com/psf/requests/issues/7441">#7441</a>)</li> <li><a href="https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224"><code>b7b549b</code></a> v2.34.1</li> <li><a href="https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe"><code>e511bc7</code></a> Fix mutability issues with headers input types (<a href="https://redirect.github.com/psf/requests/issues/7431">#7431</a>)</li> <li><a href="https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61"><code>5691f59</code></a> Update JsonType containers to read-based collections (<a href="https://redirect.github.com/psf/requests/issues/7436">#7436</a>)</li> <li><a href="https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035"><code>2144213</code></a> Constrain Response.reason to str (<a href="https://redirect.github.com/psf/requests/issues/7437">#7437</a>)</li> <li><a href="https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232"><code>6404f34</code></a> Fix <code>prepare_body</code> stream detection for <code>__getattr__</code>-based file wrappers (<a href="https://redirect.github.com/psf/requests/issues/7">#7</a>...</li> <li><a href="https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca"><code>0b401c7</code></a> v2.34.0</li> <li><a href="https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4"><code>86b378d</code></a> Align Session.get parameters with requests.get (<a href="https://redirect.github.com/psf/requests/issues/7429">#7429</a>)</li> <li><a href="https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f"><code>a4f9a59</code></a> Port bpo-39057 to Requests (<a href="https://redirect.github.com/psf/requests/issues/7427">#7427</a>)</li> <li>Additional commits viewable in <a href="https://github.com/psf/requests/compare/v2.33.0...v2.34.2">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Which issue does this PR close? N/A — documentation-only correction; no open issue tracks it. ## Rationale for this change The user guide for `signum` says "Zero and positive numbers return `1`", but `signum(0)` returns `0` — the documented return value for zero is the opposite of what the function does. The repository's own tests already pin the real behavior: - `datafusion/sqllogictest/test_files/scalar.slt`: `select signum(-2), signum(0), signum(2);` → `-1 0 1` - The unit tests in `signum.rs` assert `signum(±0.0) == 0.0` That behavior is intentional: it matches PostgreSQL `sign()` and Spark `signum()`, and was changed on purpose in apache#11580 (issue apache#11557). Only the docs were left describing the pre-apache#11580 behavior, so this PR updates the docs, not the code. ## What changes are included in this PR? Documentation only: - Update the `#[user_doc]` description in `datafusion/functions/src/math/signum.rs` to state that zero returns `0`. - Regenerate `docs/source/user-guide/sql/scalar_functions.md` via `dev/update_function_docs.sh`. ## Are these changes tested? No new tests: the corrected wording describes behavior the existing tests above already assert, and those are what it was checked against. - `cargo test -p datafusion-functions --lib math::signum` → 2 passed - `cargo fmt --all -- --check` and `./ci/scripts/doc_prettier_check.sh` → clean ## Are there any user-facing changes? Yes, documentation only. No API or runtime behavior change. --- Prepared with AI assistance; every claim above was verified locally against the repository's existing tests before opening this PR. Co-authored-by: codeAnqiang-ma <273298913+codeAnqiang-ma@users.noreply.github.com>
…apache#24279) `datafusion-proto-models` now depends on `datafusion-common` and hosts the `From` / `TryFrom` conversions between the generated proto types and their `datafusion-common` counterparts, but the crate README still claimed it had no DataFusion dependencies beyond `datafusion-proto-common` and exposed only the generated structs. Describe the conversions and why they live in this crate, and spell out the narrowness that still holds: `datafusion-common` and `datafusion-proto-common` are the only DataFusion dependencies. --------- Co-authored-by: Claude <noreply@anthropic.com>
## Which issue does this PR close? N/A ## Rationale for this change `datafusion-spark` pulls unnecessary crates into its production dependency graph, increasing compilation time and artifact size for downstream users. ## What changes are included in this PR? - Replace compatibility re-exports with the narrower crates that define `TableFunction` and `FunctionRegistry`. - Remove the unused `crypto_expressions` activation; Spark provides its own SHA-1, SHA-2, and CRC32 implementations. - Fix the `quote` import so builds without the optional `core` feature continue to compile. These changes reduce the production dependency graph from 279 to 257 packages. Cargo Machete does not report these dependencies because they are referenced in source through re-exports or activated through Cargo features. ## Are these changes tested? Yes ## Are there any user-facing changes? No. Public APIs and default behavior remain unchanged.
## Which issue does this PR close? * Part of apache#23393 ## Rationale for this change `ArrowBytesViewMap::size()` can underreport memory retained by the map. It previously omitted the initial allocation of the hash table, counted `views` by length rather than capacity, counted completed buffers by used length rather than retained capacity, and did not include the backing allocation of the `completed` vector. Because this value is used for memory accounting, it should reflect heap allocations owned by the map while continuing to exclude `self` and external input-array buffers. ## What changes are included in this PR? * Initialize `map_size` from the hash table's initial allocated capacity. * Account for `views` and the in-progress buffer using their allocated sizes. * Include the allocation backing the `completed` vector. * Account for each completed Arrow `Buffer` by retained capacity rather than used length. * Clarify that `size()` excludes both `self` and input-array buffers. ## Are these changes tested? Yes. This PR adds: * `test_size_counts_initial_hash_table_capacity`, which verifies that a newly created map reports the initial hash table allocation. * `test_size_counts_retained_buffer_capacities`, which verifies unused `views` capacity, `completed` vector storage, retained completed-buffer capacity, and that re-inserting duplicate values does not increase the reported size. ## Are there any user-facing changes? No public API or query-result behavior changes. This fixes internal memory accounting so `ArrowBytesViewMap::size()` more accurately reports allocations retained by the map. ## LLM-generated code disclosure This PR includes LLM-generated code and comments. All LLM-generated content has been manually reviewed.
…ts from re-reading already-delivered row groups (apache#24352) (apache#24354) ## Which issue does this PR close? - Closes apache#24352. ## Rationale for this change With `datafusion.execution.parquet.pushdown_filters = true` and TopK dynamic filter pushdown (both on by default), a query of the shape `SELECT b FROM t WHERE <predicate on a> ORDER BY b LIMIT k` can silently return **wrong results** — one source row emitted several times and the true tail of the top-k missing — with no error or warning. Root cause (thanks to @hhhizzz's very detailed report + fixture in apache#24352): a row group whose post-predicate selection is empty is silently finished by arrow-rs **without handing back a reader**. `PushDecoderStreamState` pops its `rg_plan` **only** when a reader is returned, so after a silently-finished RG the plan trails the decoder by one. When the runtime row-group pruner then rebuilds the decoder (`into_builder().with_row_groups(...)`) from the stale `rg_plan`, it re-includes an already-delivered row group, whose rows are emitted a second time and displace the genuine top-k in the heap. ## What changes are included in this PR? - `push_decoder.rs`: before each boundary prune/rebuild, `rg_plan` is synced to the row group the decoder will actually emit next via `peek_next_row_group()` (`sync_rg_plan_to_decoder_frontier` / `advance_rg_plan_to`), dropping entries for silently-finished row groups so a rebuild can never re-include a delivered group. A rebuild frontier naming an RG not in the plan is now an internal error instead of a silent plan drain. ## Are these changes tested? - Adds @hhhizzz's fixture as an slt regression test in `dynamic_row_group_pruning.slt` (filter column `search_phrase` differs from the sort column `event_time`, one row group has an empty post-predicate selection invisible to statistics). It now returns the correct `p0 p4096 p4097 … p4104` (was the buggy `p0 p4096 p4096 …`). - clippy clean; `datasource-parquet` unit tests and the sqllogictest suite pass locally. ## Are there any user-facing changes? Fixes silently-wrong query results; no API change. ## Note This is the standalone bug fix extracted from apache#23696 (per review discussion in apache#24352): the same `rg_plan` ↔ decoder-frontier sync, on its own so it merges fast and is easy to backport. apache#23696 will rebase on top so it carries only the fully-matched `RowFilter` skip performance optimization. cc @alamb @adriangb @hhhizzz
Contributor
Author
|
@Jefffrey Can you approve the workflows ? Sorry, I messed up the merging, |
Contributor
|
thanks @imtherealnaska |
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Which issue does this PR close?
What changes are included in this PR?
There are 2 PR's for this issue. This one contains the changes for sitemap.xml
Are these changes tested?
Yes. Tested by building the docs and verifying the files getting generated in the build/
Are there any user-facing changes?
No.