Skip to content

chore(main): release 0.26.0 - #668

Open
cachekit-release-bot[bot] wants to merge 2 commits into
mainfrom
release-please--branches--main--components--cachekit
Open

cachekit-release-bot[bot] wants to merge 2 commits into
mainfrom
release-please--branches--main--components--cachekit

Conversation

@cachekit-release-bot

@cachekit-release-bot cachekit-release-bot Bot commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

0.26.0 (2026-11-08)

⚠ BREAKING CHANGES

  • decorators: an L1-only cache (@cache(backend=None), @cache.local(), or any plaintext, non-interop decorator that finds no backend configured) times its TTLs and its stale-while-revalidate refresh on the OS monotonic clock that the Rust extension reads, not on time.monotonic(). Patching time.monotonic (pytest's monkeypatch, freezegun's freeze_time or tick) no longer expires its entries or brings a refresh due: a test that needs an entry gone calls fn.invalidate_cache(...) or fn.cache_clear(). Caches with a backend are unchanged.

Features

  • cachekitio: report L1 hit latency and add a telemetry off switch (LAB-12079) (#691) (0cc1a9c)
  • decorators: let async @cache opt out of the miss-path distributed lock (LAB-7166) (#667) (1e2295d)

Bug Fixes

  • decorators: build an L1-only memoised key from one read of the names (LAB-12946) (#720) (7b06953)
  • decorators: clear an L1-only cache whole on invalidate-all and let the memo own the kill (LAB-12024) (#677) (5aeaa63)
  • decorators: clear every @cache.local() entry on a no-args invalidate_cache() (LAB-12618) (#714) (720a5d1)
  • decorators: drop a fill's store when an invalidation in this process overlaps it (LAB-12149) (#713) (d99bf24)
  • decorators: scope the L2 invalidation gate by tenant (LAB-12617) (#715) (a6f8f76)
  • metrics: skip thread-state retirement once the interpreter is exiting (LAB-12087) (#679) (42d7aea)
  • monitoring: make enable_prometheus_metrics=False stop recording (LAB-12038) (#681) (3d81a93)
  • perf: name the cachekit, Python and CPU a terrain recording ran (LAB-11993) (#687) (251a2fa)
  • perf: terrain canary records the L2 label without its padding (LAB-11993) (#676) (4b2c65c)
  • rust: decode StandardSerializer MessagePack in safe Rust (LAB-12250) (#694) (53bd1f3)
  • serializers: bound AutoSerializer set revival against hash floods (LAB-12954) (9e3a3e7)
  • serializers: refuse AutoSerializer datetimes that read back as another value (LAB-12972) (#723) (53591b6)

Performance Improvements

  • decorators: a backed L1 hit skips the stats context and log kwargs (LAB-12115) (#686) (9c1bd7f)
  • decorators: answer a @cache.local() hit in one lock-free HitMemo call (LAB-12916) (#718) (487d042)
  • decorators: answer the L1-only hit in one lock-free call into the extension (LAB-12024) (#673) (8b17e51)
  • deps: bump cachekit-core to 0.7.4 (LAB-12129) (#684) (9485ca8)
  • ir: make measured startup the same in every run and re-record every budget (LAB-12297) (#699) (7146959)
  • ir: run the 2,600 Ir/op paths over 300,000 calls (LAB-12245) (#697) (0e15cb6)
  • l1: auto and orjson L1 hits skip re-verification and the per-read copy (LAB-12119) (#696) (9ce58b6)
  • l1: skip the structure walk and object hook on a kept L1 entry (LAB-12023) (#671) (7fbdfbe)
  • l1: sweep expired entries from a deadline heap in short lock holds (LAB-12117) (#683) (63cf745)
  • memcached: pick the server natively, as pymemcache's rendezvous hash does (LAB-12116) (#680) (a79cc90)
  • object-cache: compact dead records a batch per store, not in one lock hold (LAB-12920) (#717) (140a078)
  • redis: an uncontended async miss waits on 3 round trips, not 5 (LAB-12118) (#682) (1ef1d05)
  • serializers: decode AutoSerializer and interop reads in Rust, bounds and decode in one pass (LAB-12917) (#719) (27dfe18)
  • serializers: decode StandardSerializer reads in Rust, bounds and decode in one pass (LAB-12030) (#674) (39b1bdf)
  • write-behind: park an idle writer thread instead of starting one per miss (LAB-12005) (#692) (96141b7)

This PR was generated with Release Please. See documentation.

@coderabbitai

coderabbitai Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@codecov

codecov Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Instruction budget: FAIL

Head dcfb2b93fc6ef0b6a4d6079bcbc1bf92483f2021 measured against base v0.25.1 (312836d), last release on the same runner, on cpython-3.12-x86_64 (3.12.16). Workflow run

Verdict Path Head Ir/op Base Ir/op Delta
FAIL byte_storage_store_40b 2,467 2,433 +1.40%
WARN miss 220,262 218,586 +0.77%
WARN object_cache_put_full 172,742 171,964 +0.45%
WARN serializer_arrow 1,930,591 1,925,630 +0.26%
new l1_hit_backed – – –
new l1_hit_backed_auto – – –
new l1_hit_interop – – –
new local_hit – – –
LOWER l1_hit 2,991 12,082 -75.24%
LOWER l2_hit 168,471 176,382 -4.49%
LOWER l2_hit_async_metrics 168,770 176,468 -4.36%
LOWER minimal_l1_hit 2,991 10,922 -72.61%
LOWER secure_l1_hit 128,121 143,021 -10.42%
LOWER serializer_auto 53,404 65,907 -18.97%
LOWER serializer_default 48,509 58,574 -17.18%
LOWER serializer_default_records 1,026,161 1,456,861 -29.56%
LOWER serializer_encrypted 90,561 100,623 -10.00%
LOWER serializer_orjson 22,030 22,318 -1.29%
ok byte_storage_store_64k 724,199 724,146 +0.01%
ok file_set 77,121 77,053 +0.09%

A path fails at +1% or more against the base. This check is not required: a deliberate cost increase is accepted at merge. Method: docs/performance.md, Instruction budgets.

@cachekit-release-bot
cachekit-release-bot Bot force-pushed the release-please--branches--main--components--cachekit branch 23 times, most recently from 7fb204a to 5834781 Compare November 1, 2026 05:58
@27Bslash6

Copy link
Copy Markdown
Contributor

@kody start-review

@cachekit-release-bot
cachekit-release-bot Bot force-pushed the release-please--branches--main--components--cachekit branch 27 times, most recently from aef7590 to f4affa5 Compare November 7, 2026 19:16
@cachekit-release-bot
cachekit-release-bot Bot force-pushed the release-please--branches--main--components--cachekit branch from 3d7b184 to 39ed50d Compare November 8, 2026 02:22

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant