dependabot[bot] opened a new pull request, #4230:
URL: https://github.com/apache/iceberg-python/pull/4230

   Bumps [gcsfs](https://github.com/fsspec/gcsfs) from 2026.8.1 to 2026.10.1.
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/fsspec/gcsfs/releases";>gcsfs's releases</a>.</em></p>
   <blockquote>
   <h2>2026.10.1</h2>
   <h3>Bug Fix</h3>
   <p><strong>Fixed event-loop mismatch in</strong> 
<code>AdaptiveReadaheadCache</code> <strong>after</strong> 
<code>fsspec.asyn.reset_lock()</code> <strong>or with a custom</strong> 
<code>loop</code>. When <code>fsspec</code> initializes 
<code>BackgroundPrefetcher</code> on a loop that differs from 
<code>gcsfs.loop</code>, <code>GCSFile</code> and <code>ZonalFile</code> now 
rebind the prefetcher to <code>gcsfs.loop</code>.</p>
   <h2>2026.10.0</h2>
   <p><strong>New Features</strong></p>
   <p><strong>Mutual TLS (mTLS) for HTTP requests when a client certificate is 
configured.</strong> When <code>google-auth</code> is configured to use a 
client certificate (<code>GOOGLE_API_USE_CLIENT_CERTIFICATE=true</code>, or a 
certificate config with a <code>workload</code> section) and a default client 
certificate source exists, GCSFS now presents that certificate on its HTTP 
session and, for the default <code>googleapis.com</code> universe, defaults to 
<code>https://storage.mtls.googleapis.com</code>, as 
<code>google-cloud-storage</code> does. This is needed for access tokens bound 
to a client certificate (e.g. Agent Identity), which GCS accepts only over 
mTLS.</p>
   <ul>
   <li><code>endpoint_url</code> and <code>STORAGE_EMULATOR_HOST</code> still 
take precedence over the mTLS endpoint. If <code>session_kwargs</code> provides 
a <code>connector</code>, it is used as-is and the certificate is not 
presented.</li>
   <li>Set <code>GOOGLE_API_USE_MTLS_ENDPOINT=never</code> to keep the regular 
endpoint (the certificate is still presented).</li>
   <li>No behavior change when no client certificate is configured.</li>
   <li><strong>Known limitations:</strong> gRPC connections (used for Rapid 
bucket reads/writes, bucket-type detection, and hierarchical namespace folder 
operations) do not present the client certificate and stay on the regular 
endpoint. The certificate is loaded when the HTTP session is created and is not 
reloaded if it rotates.</li>
   </ul>
   <p>(<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1080";>#1080</a>)</p>
   <p><strong>Migrate adaptive prefetcher to native fsspec</strong> 
<code>AdaptiveReadaheadCache</code>: The internal <code>gcsfs.prefetcher</code> 
module has been removed from GCSFS and upstreamed into 
<code>fsspec&gt;=2026.9.0</code>, and GCSFS now uses 
<code>cache_type=&quot;adaptive&quot;</code> as its default streaming read 
caching policy. The prefetcher is still enabled by default when 
<code>cache_type</code> is not set, and <code>max_prefetch_size</code> and 
<code>concurrency</code> passed to <code>open()</code> still apply. To use a 
different cache or disable prefetching, pass <code>cache_type</code> explicitly 
(e.g. <code>cache_type=&quot;none&quot;</code>). For configuration options, 
architecture, and benchmarks, see <a 
href="https://github.com/fsspec/gcsfs/blob/main/docs/source/prefetcher.rst";>https://github.com/fsspec/gcsfs/blob/main/docs/source/prefetcher.rst</a></p>
   <ul>
   <li>Removed experimental configuration flags 
<code>USE_EXPERIMENTAL_ADAPTIVE_PREFETCHING</code> and 
<code>use_experimental_adaptive_prefetching</code>. <strong>(Warning)</strong> 
They are now silently ignored: if you used them to turn prefetching off, set 
<code>cache_type</code> explicitly instead.</li>
   <li>Bumped minimum <code>fsspec</code> dependency to 
<code>&gt;=2026.9.0</code>.</li>
   </ul>
   <p>(<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/993";>#993</a>)</p>
   <p><strong>Bug Fixes &amp; Improvements</strong></p>
   <ul>
   <li><strong>401 Invalid Credentials responses are now retried in 
single-request</strong> <code>get_file()</code> <strong>downloads.</strong> The 
error body was previously not read before validation, so the retry check never 
saw the &quot;Invalid Credentials&quot; message. Additionally, 401 responses 
whose message contains lowercase &quot;invalid&quot; (e.g. 
<code>invalid_token</code>) now raise <code>HttpError</code> instead of 
<code>ValueError</code>, so requests that GCSFS retries are retried on them 
when the message contains &quot;Invalid Credentials&quot;. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1084";>#1084</a>)</li>
   <li><strong>Fixed errors and deadlocks when files are closed from the event 
loop thread or by the garbage collector.</strong> Previously this could raise 
<code>NotImplementedError</code> or deadlock the fsspec I/O event loop. Files 
closed in those situations are now torn down on a dedicated background worker 
thread; errors during these deferred closes are logged rather than raised. 
<code>ZonalFile</code> read-pool and write-stream teardown now run 
independently, each bounded by a timeout (default 60 s), so a read-side failure 
no longer skips write finalization. Files should still be closed explicitly 
(e.g. <code>with fs.open(...)</code>): a file still open at interpreter 
shutdown is marked closed without being flushed. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1009";>#1009</a>, <a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1025";>#1025</a>, <a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1031";>#1031</a>, <a 
href="https://redirect.github.com/fsspec
 /gcsfs/issues/1040">#1040</a>)</li>
   <li><strong>Fixed paths for objects whose names start with</strong> 
<code>/</code>. Listing and <code>info()</code> results previously dropped the 
bucket name for such objects (returning <code>/name</code>); they now return 
<code>bucket//name</code>. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1044";>#1044</a>)</li>
   <li><code>rm()</code> <strong>now raises the original error when a whole 
delete batch fails</strong>, instead of an unrelated <code>TypeError</code>. 
Aggregation of batch results is also linear instead of quadratic. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1060";>#1060</a>)</li>
   <li><strong>Lower CPU overhead in recursive</strong> <code>find()</code> 
(also used by <code>glob()</code>, <code>du()</code>, and recursive 
<code>rm()</code>/<code>get()</code>/<code>copy()</code> path expansion): 
directory entries are now built once per unique directory. In an in-memory 
benchmark that excludes network time, this step was up to 14x faster on deep 
hierarchies. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1046";>#1046</a>)</li>
   <li><strong>Opening an existing object for reading no longer calls</strong> 
<code>mimetypes.guess_type()</code> when GCS metadata already provides 
<code>contentType</code>. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1059";>#1059</a>)</li>
   <li><strong>Rapid (zonal) bucket gRPC reads now report the cache 
type</strong> in request metadata (<code>x-goog-api-client</code>), as HTTP 
reads already do in the <code>User-Agent</code>. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1019";>#1019</a>)</li>
   <li><strong>Bumped minimum</strong> <code>google-cloud-storage</code> 
<strong>dependency to</strong> <code>&gt;=3.14.1</code>. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1039";>#1039</a>, <a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1050";>#1050</a>)</li>
   </ul>
   <p><strong>Contributor Tooling: Agent Skills</strong></p>
   <p>The repository now includes AI coding-agent skills under 
<code>_agents/skills/</code> (<a 
href="https://github.com/fsspec/gcsfs/tree/main/_agents/skills";>https://github.com/fsspec/gcsfs/tree/main/_agents/skills</a>)
 for performance work on GCSFS:</p>
   <ul>
   <li><code>create-microbenchmark</code>: instructions for scaffolding a new 
microbenchmark for a given method under 
<code>gcsfs/tests/perf/microbenchmarks</code>. The agent first checks that no 
benchmark for that method exists yet, and asks for confirmation if a method it 
calls is already benchmarked. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1012";>#1012</a>)</li>
   <li><code>autoresearch-profiling</code>: instructions for profile-guided 
performance optimization. The agent picks a profiler (py-spy, cProfile, or 
memory_profiler) to find bottlenecks, then runs modify → verify → keep/discard 
iterations against microbenchmark or subsystem-benchmark metrics. The iteration 
loop requires the separate <code>autoresearch</code> skill, which is not 
included in this repository. (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1071";>#1071</a>)</li>
   </ul>
   <h2>2026.8.2</h2>
   <p>Fix <code>NotImplementedError</code> and deadlocks when a file is closed 
from the event loop thread or by the garbage collector (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1009";>#1009</a>, <a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1025";>#1025</a>, <a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1031";>#1031</a>, <a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1040";>#1040</a>). Such 
closes now run on a background thread, and prefetcher/zonal teardown is bounded 
by a timeout.</p>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/22cb947018737ba62eb96ceae2bf5dad7886d49e";><code>22cb947</code></a>
 chore: release 2026.10.1</li>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/e3646f5fc452064c5f6056b8fd3dc6cfb232f73a";><code>e3646f5</code></a>
 fix: bind AdaptiveReadaheadCache prefetcher to gcsfs.loop after reset_lock 
(#...</li>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/07427a256c150a7b796cd1017b2c425453747bcc";><code>07427a2</code></a>
 chore: release 2026.10.0 (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1041";>#1041</a>)</li>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/6089cd65a9c05f6d5d663b9cbb729e935627aa75";><code>6089cd6</code></a>
 docs(prefetcher): document max_prefetch_size default and how to set it (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1092";>#1092</a>)</li>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/a0bbf46582ca7a36965d022f22a82cf3134e00d3";><code>a0bbf46</code></a>
 fix(subsystembenchmarks): skip checkpoint_write rows in amplification scrape 
...</li>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/8b1f7f11c608b3464a3afa22ad6cdbcbebc7da71";><code>8b1f7f1</code></a>
 refactor(macrobench): rename hf-pytorch-lightning-cpu workload to 
hf-datasets...</li>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/4cbb2e29427a4638bc6a0164e45533bc6359b7f7";><code>4cbb2e2</code></a>
 feat: use fsspec adaptive-readahead cache and remove internal prefetcher (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/993";>#993</a>)</li>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/04f9945dc36a5c173e08292ad46922af367c362f";><code>04f9945</code></a>
 feat(subsystembenchmarks): deliver data-loading benchmark batches to GPU on 
C...</li>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/c406e1dca0fa720385846493742aeb3d2837cf9f";><code>c406e1d</code></a>
 fix: read error response body in _get_file_request to enable 401 retry (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1084";>#1084</a>)</li>
   <li><a 
href="https://github.com/fsspec/gcsfs/commit/c7fbdb3028d39a8a7da34442e4b99e6706af36af";><code>c7fbdb3</code></a>
 perf(subsystembenchmarks): trim default WebDataset sweep to 11 cases (<a 
href="https://redirect.github.com/fsspec/gcsfs/issues/1079";>#1079</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/fsspec/gcsfs/compare/2026.8.1...2026.10.1";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gcsfs&package-manager=uv&previous-version=2026.8.1&new-version=2026.10.1)](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>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to