Skip to content

Release 1.2.0 - #48

Merged
tonytonycoder11 merged 2 commits into
mainfrom
release/1.2.0
Jul 31, 2026
Merged

Release 1.2.0#48
tonytonycoder11 merged 2 commits into
mainfrom
release/1.2.0

Conversation

@tonytonycoder11

@tonytonycoder11 tonytonycoder11 commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Cuts 1.2.0 with the whole of Tier 6: the work that merged in #47, plus the measured benchmark numbers
that were the last thing M30 was missing.

Upgrading from 1.1.0 is a recompile, not a jar swap. apiCheck reads the release as additive,
but new members on QdrantClient and QdrantTransport break a class that implemented them against
1.1.0, and the fields added to CollectionInfo, ScrollRequest and Record change their generated
copy. Source stays compatible. STABILITY.md now states this as what a 1.x upgrade guarantees,
which is the reading this version number depends on.

The benchmark numbers

The Benchmarks workflow ran against qdrant/qdrant:v1.18.2
(run 30616391635) and produced
~18 000 samples per benchmark: search p50 1.97 ms / p99 5.40 ms, upsert p50 3.37 ms / p99 9.81 ms.

They are published with the conditions that make them a floor rather than a capacity figure: client and
server share a host so there is no network in the number, 1 000 points barely exercises HNSW, and
nothing here measures concurrency, which is where gRPC wins. The run's AverageTime rows are left out
because their error bars are wider than their scores.

What moved

  • Version 1.1.01.2.0, CHANGELOG.md [Unreleased][1.2.0] - 2026-07-31 with fresh compare
    links, README status blockquote and install coordinate.
  • The reconciliation against git log v1.1.0..HEAD found two changes that had merged with an empty
    [Unreleased]: the ktlint 12.1.214.2.0 bump, which changed .editorconfig and rewrote two
    files, and the detekt LongParameterList threshold that moved with M28. Both are recorded under
    Internal.
  • Two pre-existing drifts from library-template/STANDARD.md, both flagged by audit-library.sh: the
    status blockquote used Status: where the standard uses Status —, and the Roadmap section had
    grown a fourth label by keeping the 1.1.0 paragraph next to the new one. The standard allows three
    (Shipped (X.Y.Z), Next, Later), and versions are the changelog's fact to own, so the roadmap
    now carries one Shipped paragraph and links to the changelog for the history. The audit reports
    At standard.

After the merge

The tag is mine to create once this lands: git tag -a v1.2.0 -m "Tier 6 — Adoption gaps". The release
workflow then publishes to Maven Central and GitHub Packages, now with a SLSA provenance attestation
over the assembled jars. The Tier 6 · Adoption gaps milestone can close with it.

Closes #22.

Everything in Tier 6 except the published benchmark numbers, which is why the
tier's milestone stays open and M30 keeps its board item.

The release note leads with the upgrade cost rather than burying it. apiCheck
reads this as additive, but a class that implemented QdrantClient or
QdrantTransport against 1.1.0 breaks, and the fields added to CollectionInfo,
ScrollRequest and Record change their generated copy. Source still compiles;
STABILITY.md says in as many words that a 1.x upgrade is a recompile.

Two things the reconciliation turned up. The ktlint 12 to 14 bump merged with an
empty Unreleased section although it changed .editorconfig and rewrote two files,
and the detekt threshold moved with M28; both are recorded under Internal now.
The README status blockquote used a colon where the standard uses an em dash, and
the Roadmap had grown a fourth label by keeping the 1.1.0 paragraph alongside the
new one. Versions are the changelog's to own, so the roadmap keeps one Shipped
paragraph and links there.
@tonytonycoder11
tonytonycoder11 requested a review from a team as a code owner July 31, 2026 08:34
The Benchmarks workflow ran against Qdrant v1.18.2 and produced roughly eighteen
thousand samples per benchmark, which is enough to quote: search p50 1.97 ms and
p99 5.40 ms, upsert p50 3.37 ms and p99 9.81 ms.

They are published with the conditions that make them a floor rather than a
capacity figure. Client and server share a host, so there is no network in the
number. A thousand points barely exercises HNSW. Nothing measures concurrency,
which is exactly where gRPC wins and where the official client is the better
tool. The run's AverageTime rows are left out because with five iterations their
error bars are wider than their scores, and a number whose error exceeds it is
not a measurement.

M30 is complete with this, so 1.2.0 carries the whole of Tier 6.
@tonytonycoder11
tonytonycoder11 merged commit 1020e7d into main Jul 31, 2026
6 checks passed
@tonytonycoder11
tonytonycoder11 deleted the release/1.2.0 branch July 31, 2026 08:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

M30 · Lowering the switching cost: docs and published numbers

1 participant