Announcement
Kipchak v3 is generally available
We’re delighted to announce the release of Kipchak 3 — the latest major version of the Kipchak API Development Kit. Kipchak 3 brings first-class PHP 8.5 support, refreshes two core dependencies to their newest major versions, and adds a handful of quality-of-life improvements — all while keeping the framework you already know intact.
The headline: upgrading is easy. Kipchak 3 is a major release because we bumped bundled dependencies across a major boundary, not because we broke your code. For the vast majority of projects, the upgrade is a dependency bump and a Docker base image change.
What’s new in Kipchak 3
PHP 8.5 support — without dropping 8.4
Kipchak 3 runs on PHP 8.5 and ships against the PHP 8.5 FrankenPHP worker image, so you get the latest runtime performance and language improvements out of the box. Crucially, PHP 8.4 remains fully supported — Kipchak 3 is a dual 8.4/8.5 release. You can upgrade the framework today and move your runtime to 8.5 on your own schedule.
We audited the entire codebase — core, every driver, and every middleware — for PHP 8.5 deprecations and cleared them all. Every module runs on PHP 8.5.8 with zero deprecation warnings.
Modern object mapping with Valinor 2
The core now bundles CuyZ Valinor 2.x, the powerful, type-safe object mapper behind Kipchak’s DTOs. Valinor 2 is a faster, cleaner, more strictly-typed release. The standard mapping flow Kipchak projects rely on is unchanged, so your DTOs keep working as they always have.
OpenAPI generation with Swagger-PHP 6
OpenAPI generation is now powered by Zircote Swagger-PHP 6.x. The starter project already uses the attribute-based style, which is the fully supported path going forward. Your generated API documentation keeps flowing with no changes required.
An optional response meta envelope
The core Response component now accepts an optional meta array on build() and json(), giving you a clean, consistent place to attach pagination details, request context, or any other envelope metadata to your JSON responses. JSON output also now uses JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES for cleaner, more readable payloads. Both are additive — existing responses are unaffected.
Refreshed drivers
Alongside the core, we’ve released new majors for the drivers whose upstream SDKs moved forward:
- HTTP driver 2.0 — now on
illuminate/http13.x. Public API unchanged. - Anthropic driver 2.0 — now on
anthropic-ai/sdk^0.36, with a fix somax_retriesis passed correctly viaRequestOptions. - OpenAI driver 2.0 — now on
openai-php/client^0.20. Public API unchanged.
Every other driver and middleware has been widened to accept kipchak/core: ^2 || ^3, so you can adopt core 3 without waiting on the rest of your dependency graph.
Why you should upgrade
- Stay current, stay fast. PHP 8.5 brings runtime and language improvements. Kipchak 3 lets you get there with a trivial upgrade path.
- No forced rewrites. This is a major version driven by dependency majors, not API breakage. The framework surface you build against is stable.
- Upgrade at your own pace. Dual 8.4/8.5 support means you can bump Kipchak now and switch runtimes later — or run 8.4 indefinitely.
- Modern foundations. Valinor 2 and Swagger-PHP 6 keep the parts of Kipchak you depend on most — DTO mapping and API docs — on actively maintained, modern releases.
- A cleaner response contract. The optional
metaenvelope makes structured, consistent API responses easier without any boilerplate of your own.
How to upgrade
For most projects, upgrading is straightforward:
- Update the base image. In your
Dockerfile, switch the FrankenPHP base image from8.4to8.5(optional — 8.4 is still supported). - Bump the framework. Require
kipchak/core: ^3and update the refreshed drivers (kipchak/driver-http,kipchak/driver-anthropic,kipchak/driver-openai) to^2if you use them. - Run composer update and run your test suite.
That’s it for the common case. If you call the Anthropic or OpenAI clients directly via raw(), or reach into the underlying HTTP client, review the respective upstream SDK changelogs.
A full, step-by-step guide is available in the Upgrade Guide under “Upgrading from 2.x to 3.x”, and you can read more about how we version Kipchak on the Versioning page.
A note on versioning
As a reminder, Kipchak follows a Kubernetes-style versioning strategy rather than strict semver: we increment the minor version for non-breaking changes and only increment the major version when there’s a breaking change. In practice, that means you can move from 3.0 to 3.1 — or 3.20 — without any code changes. Kipchak 3 earns its major bump because of the bundled dependency majors, but the day-to-day upgrade experience remains as smooth as ever.
Kipchak 3 is available now. Grab it via Composer, check the documentation, and let us know what you build.