Announcement

Kipchak v3 is generally available

Mamluk · · 5 min read
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/http 13.x. Public API unchanged.
  • Anthropic driver 2.0 — now on anthropic-ai/sdk ^0.36, with a fix so max_retries is passed correctly via RequestOptions.
  • 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 meta envelope makes structured, consistent API responses easier without any boilerplate of your own.

How to upgrade

For most projects, upgrading is straightforward:

  1. Update the base image. In your Dockerfile, switch the FrankenPHP base image from 8.4 to 8.5 (optional — 8.4 is still supported).
  2. Bump the framework. Require kipchak/core: ^3 and update the refreshed drivers (kipchak/driver-http, kipchak/driver-anthropic, kipchak/driver-openai) to ^2 if you use them.
  3. 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.

Share
← Back to the Journal

More from the Journal