chore(deps): update all non-major dependencies - #235
Open
laurigates-renovate[bot] wants to merge 1 commit into
Open
laurigates-renovate[bot] wants to merge 1 commit into
laurigates-renovate[bot] wants to merge 1 commit into
Conversation
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.
This PR contains the following updates:
v0.8.0→v0.9.00.7→0.80.46→0.490.10→0.110.10→0.110.22→0.23Release Notes
Connorrmcd6/surface (Connorrmcd6/surface)
v0.9.0Compare Source
huggingface/safetensors (safetensors)
v0.8.0Compare Source
News
safetensors joins the PyTorch foundation!
Read more on that: https://huggingface.co/blog/safetensors-joins-pytorch-foundation
What's changed
Safetensors 0.8.0 brings direct to Metal loading on Apple Silicon, GIL-free serialization, broader hardware and dtype coverage, and a stronger Python API.
Breaking
The
serializeandserialize_filefunctions now release the GIL during writes, enabling true multithreaded saves from Python. Their input contract has also changed: tensor metadata is now passed via aTensorSpecclass (exported from safetensors) instead of plain dicts, making API more explicit and robust to misinputs. This is a breaking change for anyone calling the low-levelserialize/serialize_fileAPI directly; the high-level wrappers (safetensors.torch,safetensors.numpy,safetensors.paddle) are updated internally and their public API is unchanged.The minimum supported Python version is now 3.10 (was 3.9). Python 3.9 reached end-of-life in October 2025.
TensorIndexer::Narrownow carries astep: NonZeroUsizeparameter, so a slice is nowstart:stop:step. This is a fix as this silent error was hidden behind theStorage::Torchvariant which offloaded slicing logic to torch directly.CI
On the platform side, this release adds Windows ARM64 wheel builds, riscv64 Linux wheels, and CI has been hardened with pinned GitHub Actions SHAs.
Also dropped the anaconda CI we had as there's already an automatic tracker via conda-forge.
New features
MTLBufferand handed to the frameworks that support it (only torch atm) via DLPack, skipping needless copies.backendparameter introduced, for the addition of thepreadbackend. We now support loading files viapread(2)syscall instead of just mmap. Useful for specific archs/platforms.get_slicenow handles ellipsis[...]and strided slices[:, ::8]wherever safetensors does the slicing itself (preadfor any framework, MPS, andmmapoutside torch/paddle), which silently dropped the step or rejected...before.float8_e4m3fnuzandfloat8_e5m2fnuz(AMD FNUZ FP8 formats).Improvements/perf
F_NOCACHEfor direct I/O, yielding roughly 30% fastersave_fileon Apple Silicon.[torch]extra, replaced by a simplehasattrprobe for efficiency.What's Changed
2.4by @McPatate in safetensors#710packagingfor Torch 2.3.0+ datatype support by @akx in safetensors#705__version__as str in the stub by @tarekziade in safetensors#730TensorSpecparam toserialize*fns by @McPatate in safetensors#7380.8.0-dev.0by @McPatate in safetensors#7403.9in conda release by @McPatate in safetensors#741convert.pyscript by @McPatate in safetensors#746backendwith pread file by @McPatate in safetensors#760_host_alias_storagew/MTLBufferby @McPatate in safetensors#7670.9.0-dev.0by @McPatate in safetensors#777New Contributors
Full Changelog: safetensors/safetensors@v0.7.0...v0.8.0
getsentry/sentry-rust (sentry)
v0.49.3Compare Source
Features
sentry-minidumpintegration, which captures native crashes as minidumps in a separate process and sends them to Sentry as attachments. Enable it with theminidumpfeature onsentry. Linux, macOS and Windows only (#1315).transport_channel_capacityoption toClientOptions, making the transport's channel capacity configurable. TheStdTransportThreadOptions::with_channel_capacityandTokioTransportThreadOptions::with_channel_capacitymethods provide the same configuration when constructing transport threads. When unset, each transport uses its own default (currently30), which is subject to change (#1311).SentryHttpLayernow records thehttp.response.status_codeattribute on transactions (#1253).Deprecations
Transaction::is_sampled,Span::is_sampled, andTransactionOrSpan::is_sampled. These methods cannot distinguish between an unsampled transaction or span and a deferred sampling decision when tracing is disabled (#1293).Fixes
sentry-traceheaders without enabling local capture. An explicit0.0trace sample rate remains distinct from disabled tracing and continues to generate client reports for locally unsampled transactions (#1286).v0.49.2Compare Source
Fixes
Deprecations
ClientOptions::enable_logs. The option no longer disables manually captured logs (via the logging APIs); it now only disables automatic log capture by the log-capturing integrations (tracingandlogwith thelogsfeature). To stop an integration from sending logs, configure it via its own options (#1299).ClientOptions::enable_metrics. The option is now a no-op; metrics are always enabled. To stop sending metrics, stop calling the metrics APIs (#1300).v0.49.1Compare Source
Fixes
v0.49.0Compare Source
Breaking Changes
ClientOptionsis now#[non_exhaustive](#1230). The struct must now be constructed with the builder-style setters:Updated the
sentry-opentelemetryintegration to support OpenTelemetry 0.32. Users of the integration must update their OpenTelemetry dependencies from 0.29 to 0.32 (#1262).The
logsandmetricsfeatures are now enabled by default in thesentrycrate. This does not break the API, but may cause new telemetry to be sent to Sentry: log and tracing integrations can send structured logs, and applications can send metrics without adding the feature flags. Disable these features explicitly if this additional telemetry is not desired (#1251).Removed the public
ClientOptions::sample_ratefield. UseClientOptions::event_sampling_strategyto inspect the configured event sampling strategy, and use the existingClientOptions::sample_rate(...)builder setter to configure fixed-rate sampling.Removed the public
ClientOptions::sample_ratefield. UseClientOptions::event_sampling_strategyto inspect the configured event sampling strategy, and use the existingClientOptions::sample_rate(...)builder setter to configure fixed-rate sampling (#1228).Removed the public
ClientOptions::traces_sample_rateandClientOptions::traces_samplerfields. UseClientOptions::traces_sampling_strategyto inspect the configured traces sampling strategy, and use the existingClientOptions::traces_sample_rate(...)andClientOptions::traces_sampler(...)builder setters to configure fixed-rate and callback-based sampling (#1227).EnvelopeItemnow storesEventandTransactionpayloads inBoxvalues. Code that constructs or pattern-matches these variants must account for the additional indirection (#1255).The
sentry_log::RecordMappingenum'sEventnow stores the event in aBox(#1269).sentry_slog::RecordMappingis now#[non_exhaustive]and theEventvariant now stores a boxedEvent<'static>(#1270)The
sentry_tracing::EventMappingenum'sEventvariant is now stored in aBox(#1272)New Features
TracePropagationContextas the preferred type for Sentry trace propagation metadata. The existingSentryTracetype remains available for backwards compatibility (#1212).Dsn::org_id, which parses the Sentry SaaS organization ID from DSN hosts such aso123.ingest.sentry.io(#1202).ClientOptions::org_idandClientOptions::strict_trace_continuation(#1203). These options control how traces are continued and can help prevent traces from third-party services, which happen to be instrumented with Sentry, from being continued.Improvements
sentry-org_idvalues when starting transactions, according to strict trace continuation rules (#1218).Fixes
EnvelopeErroris now#[non_exhaustive]to allow adding new error variants without a breaking change (#1254).v0.48.5Compare Source
Fixes
v0.48.4Compare Source
New Features
Added builder-style setters to
ClientOptions(#1221):Deprecations
ClientOptionswith struct-literal syntax, including..Default::default()functional update syntax, is deprecated and will stop compiling in the next breaking release, as we will markClientOptionsas#[non_exhaustive](#1221). Reading and assigning individual public fields will remain supported. Please migrate to the builder-style setters introduced in this release.v0.48.3Compare Source
The Sentry Rust SDK now reports data discarded by the SDK to Sentry’s Stats page. The SDK reports approximate counts for drops from transports, queues, rate-limit backoff, sampling, event processors, and
before_send*callbacks, including span counts for dropped transactions and byte counts for dropped logs and metrics.New Features
EnvelopeFilterandEnvelopeFilterCallbacks, which let callers observe envelope items removed byEnvelope::filter, including attachments removed after their event or transaction is filtered out. ExistingEnvelope::filterclosure callers continue to work, although some closures may require an explicit item type annotation (#1182).LossSourcetrait, which provides the client report data categories and quantities to report when supported Sentry data is dropped (#1170).TransportFactory::create_transport_with_options, which constructs transports fromTransportOptionsinstead of fullClientOptions(#1142).with_optionsconstructors for built-in HTTP transports, includingReqwestHttpTransportOptions,CurlHttpTransportOptions,UreqHttpTransportOptions, andEmbeddedSVCHttpTransportOptions(#1142).StdTransportThreadOptionsandTokioTransportThreadOptions(#1142).sentry-types, includingClientReport,client_report::Item,client_report::Category, andclient_report::Reason, plus support for serializingclient_reportenvelope items (#1144).Recordertype, which modernTransportFactoryimplementations receive viaTransportOptions. Transports can use this recorder to record discarded Sentry data; the SDK aggregates these reported losses and automatically sends them in a future envelope (#1158).Deprecations
Hub::with. UseHub::currentinstead (#1126).Fixes
ureqtransport handling for HTTP error statuses so429rate limits and413payload-too-large responses are processed correctly (#1177).Behavior Changes
TransportFactory::create_transportnow receiveClientOptionsreconstructed fromTransportOptions. The reconstructed options include only transport-relevant fields, such as DSN, user agent, proxy settings, and TLS certificate validation settings. This may affect code that reads non-transport fields increate_transport, but the API remains source-compatible and this change is included in a minor/patch release (#1142).v0.48.2Compare Source
New Features
rustls-no-providerfeature flag in thesentrycrate to allow using therustlstransport with a different crypto provider (#1103).Fixes
v0.48.1Compare Source
Fixes
ClientOptions::enable_metricsto default totrue, aligning metrics behavior with other Sentry SDKs (#1106). Metric capture APIs still require themetricsfeature flag at compile time.v0.48.0Compare Source
Breaking Changes
ClientOptionsstruct insentry-core. Both fields are no-ops, unless themetricsfeature flag is enabled:enable_metrics, used to enable sending metrics to Sentry (#1073).before_send_metric, used to define a callback for filtering/pre-processing metrics before sending to Sentry (#1064).sentry_core::ClientOptionsfieldsbefore_send_log,enable_logs,auto_session_tracking, andsession_modeare no longer gated behind thelogsandrelease-healthfeature flags (#1091). Code that constructsClientOptionswith a full struct literal (without..Default::default()), or which exhaustively matches against it, must now include all four fields regardless of enabled features.sentry_core::Scopecan no longer be publicly constructed or exhaustively matched against, even when theclientfeature is disabled (#1094). Previously, both of these were possible whenclientwas disabled.sentry_core::Scope::add_event_processornow requires passed closures to beRefUnwindSafe(#1093). Thanks to this change,sentry_core::Scopeis nowUnwindSaferegardless of feature flag configuration; previously,Scopewas onlyUnwindSafewhen theclientfeature was disabled.sentry_tracing::EventMappingis now#[non_exhaustive](#1097).sentry_log::RecordMappingis now#[non_exhaustive](#1098).New Features
📊📈💯 The Sentry-Rust SDK now supports emitting Sentry Metrics (#1073)!
To get started, you will need to add the
metricsfeature flag when compiling thesentrycrate. You will also need to enable metrics when initializing the SDK, like so:You can then capture metrics as follows:
Fixes
v0.47.0Compare Source
Breaking Changes
RequestHttpTransport::with_clientmethod.sentry_core::HubSwitchGuardis now!Send, preventing it from being moved across threads (#957).New Features
Envelope::into_itemsmethod, which returns an iterator over ownedEnvelopeItems in theEnvelope(#983).Fixes
HubSwitchGuardcould be dropped on wrong thread (#957).Hubevery time a span is entered. This prevents data from leaking across spans (#957).RustCrypto/hashes (sha2)
v0.11.0Compare Source
huggingface/tokenizers (tokenizers)
v0.23.2Compare Source
This is the last v0 release, we are moving to v1!!
More details coming soon 👀
What's Changed
decodeAPI by @SBrandeis in #2099New Contributors
Full Changelog: huggingface/tokenizers@v0.23.1...v0.23.2
v0.23.1Compare Source
TL;DR
tokenizers 0.23.1is the first proper stable release in the0.23line —0.23.0only ever shipped asrc0because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was onpyo3 0.27without free-threaded support).0.23.1is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular and free-threaded3.14t), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.There is no functional
0.23.0published — we tag0.23.1directly so users don't accidentally pull a never-shipped version.🚨 Breaking changes
requires-python = ">=3.10"; 3.9 users stay on0.22.x.add_tokensnormalizescontentat insertion (#1995) — re-savedtokenizer.jsonmay differ in theadded_tokensblock. Existing files load unchanged.Anynow return real types;mypy --strictmay surface previously-hidden errors. Stub layout also moved fromtokenizers/<sub>/__init__.pyitotokenizers/<sub>.pyi. This breaks the surface of some of the processors likeRobertaProcessign's__init__.PyResult<T>because ofArc<RwLock<Tokenizer>>; a poisoned lock surfaces asPyExceptioninstead of a panic.⚡ Performance — measured locally on this Mac, not lifted from PRs
Run with
cargo bench --bench <name> -- --save-baseline v0_22_2onv0.22.2, then--baseline v0_22_2onv0.23.1. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.Added-vocabulary deserialize — the headline win (#1995, #1999)
bench: improve added_vocab_deserialize to reflect real-world workloads(#2000) is now representative of how transformers actually loads tokenizer.json files. The combined effect ofdaachorsefor the matching automaton plus the normalize-on-insert refactor is enormous on this workload:Real-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from "noticeable pause" to "instant".
BPE encode
BPE GPT2 encode batch, no cacheBPE GPT2 encode batch(cached)BPE GPT2 encode(single)BPE Train (small)BPE Train (big)The BPE per-thread cache PR (#2028) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.
Llama-3 encode
llama3-encode(single)llama3-batchllama3-offsetsTruncation early exit (#1990)
Right-direction truncation no longer pre-tokenizes past
max_length. The newtruncation_benchmarkdoesn't exist on v0.22.2 so there's no apples-to-apples here, but the PR's own measurements on the same machine showed −20–28% across a range ofmax_lengthvalues for right-truncation; left-truncation unchanged.Other perf improvements (no direct comparable bench)
BPE::Builder::buildno longer formats strings in a hot loop (#2010) — ~45% fasterTokenizer::from_fileon Llama-3 in the PR's profile.🔄 Serialization / deserialization
The
tokenizer.jsonformat is forward-compatible: existing files load on 0.23 unchanged. Two things to know if you re-save:added_tokensentries created viaadd_tokens(..., normalized=True)will have theircontentnormalized at save time — see breaking-change note above.tokenizer.train(...)no longer keeps a redundantadded_tokens/special_tokensVecseparate from theadded_tokens_map_r. Public API surface unchanged; only the internal struct shape moved.bench: improve added_vocab_deserialize to reflect real-world workloads(#2000) lands a more realistic micro-benchmark for this surface; if you're tracking deserialize perf in your own CI, the new bench is the one to compare against.🐍 Python: free-threaded 3.14t support
Dedicated wheels for
python3.14t(the free-threaded build introduced in PEP 703). The wheel:Py_MOD_GIL_NOT_USED, so importingtokenizersdoes not force the GIL back on.abi3cargo feature (free-threaded Python doesn't expose the limited API).Arc<RwLock<Tokenizer>>for the inner state so concurrent setters and encoders don't race PyO3's per-pyclass borrow check.A new stress-test module
tests/test_freethreaded.pyexercises N-encoder × M-setter races on a singleTokenizerand asserts noRuntimeError: Already borrowed, noRwLockpoisoning, and thatsys._is_gil_enabled() is Falsepost-import.For the regular CPython wheel everything is unchanged.
📦 Node.js bindings: first proper multi-platform release since 2023
The npm package now ships 13 platforms (macOS x64/arm64/universal, Windows x64/i686/arm64, Linux x64/arm64/armv7 in both glibc and musl, Android arm64/armv7) — previous workflows only built 3 of those, leaving Apple Silicon / Linux ARM / Alpine users with
package-not-founderrors since 2023 (#1365, #1703, #1922). Fixed via #1970 + #2034, which also bumps@napi-rs/clito v3 and switches cross-builds tocargo-zigbuild.🧷 Type hints & typing for all classes (#1928, #1997)
Every class in the python bindings now ships proper
.pyistubs —Tokenizer,AddedToken,Encoding, every decoder / model / normalizer / pre-tokenizer / processor / trainer. Editors and type checkers (mypy,pyright,ty) see real signatures with types and docstrings instead of falling back toAny.The stubs are generated automatically from the compiled extension via
tools/stub-gen(Rust binary usingpyo3-introspection). Re-runningmake styleregenerates them; CI guards against regenerated-vs-checked-in drift. If the generator ever returns 0 docstrings (e.g. because the[patch.crates-io]pin in.cargo/config.tomlfalls out of sync with the pyo3 dep version), it now hard-aborts with a precise diagnostic instead of silently emitting bare-Configuration
📅 Schedule: (in timezone Europe/Helsinki)
* * * * 0,6)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate.