From 20c9b87d40091a70af4f285ac171f8894dea1194 Mon Sep 17 00:00:00 2001 From: James Maes Date: Mon, 5 Oct 2026 10:19:18 -0500 Subject: [PATCH 1/2] docs: record the 1.0.0-RC.1 release and the orb RC mechanics --- docs/SESSION-STATE.md | 24 +++++++++--------------- docs/TODO.md | 5 ++++- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/docs/SESSION-STATE.md b/docs/SESSION-STATE.md index 19cce04..36a7b35 100644 --- a/docs/SESSION-STATE.md +++ b/docs/SESSION-STATE.md @@ -4,22 +4,16 @@ Updated: 2026-10-05 ## Context -Repo `QRun-IO/qbit-quick-search`, branch `feature/GH-1-0-release-readiness`, pushed; PR #10 to `develop` is open, reviewed and CI-green at `49f20c0`. Goal in flight: ship `1.0.0-RC.1`. +`1.0.0-RC.1` is released (2026-10-05). PR #10 merged as `0cd892d` and PR #8 as `36bc0fb`, both on `develop`. `release/1.0` was cut from `36bc0fb`; the orb's `publish_release_candidate` workflow succeeded, pushed `0b7bc98` ("Bump version to 1.0.0-RC.1 [skip ci]") to `release/1.0`, and published to Maven Central (jar, pom, sources, javadoc, signatures). A clean consumer resolves it with qqq-backend-core 4.1.0-RC.1 and opensearch-java 3.10.0. -## This session +## Release mechanics (qqq-orb 0.6.8, confirmed in its source) -- Recovered after a crash; the prior session had ended cleanly (all 1.0 work committed, verify green). -- Rebased the branch onto `origin/develop` (`000e5bb`, squash of PR #7); the tree was unchanged. Committed `AGENTS.md`. GitHub SSH times out from this machine, so pushes use HTTPS with `git -c credential.helper='!gh auth git-credential' push https://github.com/QRun-IO/qbit-quick-search.git ...`. -- Deep review of PR #10 (search permissions and alias swap, silent failures in the listener and basepull, security of transport and config). Two merge blockers in the full-reindex path and two search paging defects fixed in `45bd1fc`; lower-severity items are in `docs/TODO.md` under "Before 1.0.0 GA". Verify after the fixes: 307 unit, 18 integration, coverage gate passed. Review posted on PR #10; PR #8 reviewed and approved in a comment. Dependabot PR #1 closed as superseded. -- Merging was refused by the Claude Code auto-mode permission classifier ("Merge Without Review") for both #8 and #10, so the merges are left to James. +- RCs publish artifacts only: no git tag and no GitHub release. The GitHub release comes when the release branch merges to `main` and a `vX.Y.Z` tag is pushed. +- Never push a `vX.Y.Z-RC.n` tag: it matches the GA job's `v*` filter, maps back to `release/X.Y.Z`, and would publish a stray `RC.n+1`. +- The next push to `release/1.0` publishes `1.0.0-RC.2`. +- The agent cannot run `gh pr merge` (auto-mode classifier); James merges. GitHub SSH times out from this machine; push over HTTPS with `git -c credential.helper='!gh auth git-credential' push https://github.com/QRun-IO/qbit-quick-search.git `. -## Release mechanics (qqq-orb 0.5.2, confirmed in the orb source) +## Next -Pushing `release/1.0` runs `publish_release_candidate`; the orb derives `1.0.0-RC.1` from the `1.0.0-SNAPSHOT` revision, publishes the artifact, tags and creates a GitHub pre-release. Do not create the tag by hand. The next push to `release/1.0` publishes RC.2. - -## Next (in order) - -1. `gh pr merge 10 --squash --admin` (reviewed; CI green). -2. Rebase `feature/GH-10-public-stack-prep` on `develop` (pom.xml conflict: take assertj 3.27.7), push, `gh pr merge 8 --squash --admin`. -3. `git fetch origin && git checkout -b release/1.0 origin/develop && git push origin release/1.0`; watch the `publish_release_candidate` workflow; confirm the `v1.0.0-RC.1` pre-release. -4. Pin `1.0.0-RC.1` in qqq-all and Voyage (see TODO); their feedback decides RC.2 or GA. +1. Pin `1.0.0-RC.1` in qqq-all and Voyage (see `docs/TODO.md`); their feedback decides RC.2 or GA. +2. Work the "Before 1.0.0 GA" list in `docs/TODO.md` on feature branches into `develop`, then merge `develop` into `release/1.0` for RC.2. diff --git a/docs/TODO.md b/docs/TODO.md index 3e6f8eb..6611c58 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -2,6 +2,8 @@ ## Before tagging 1.0.0 +- [ ] qqq-all and Voyage adopt `1.0.0-RC.1` (items below) and report back. + - [x] PR #10 (`feature/GH-1-0-release-readiness`) opened and reviewed 2026-10-05; `AGENTS.md` kept. - [ ] Re-pin to `qbit-build-parent` 2.1.0 when qbit-bom publishes it, and remove the `activeByDefault` on the `qqq-snapshot` profile (ADR-0007). - [ ] qqq-all follow-up PR: remove the manual `instance.addQBit(...)` for quick-search in `DemoQBits`, pass `withSchedulerName("demoScheduler")`, set `withStartupMode(QuickSearchStartupMode.DEGRADED)` for the full profile test, pin 1.0.0. @@ -9,7 +11,8 @@ - [ ] CI: add a second test job with `-Dopensearch.test.image=opensearchproject/opensearch:3.9.0` (needs a qqq-orb parameter for extra Maven args, or a plain job). - [ ] Open the qqq issue proposing `RecordSearchProviderInterface` (D1); quick-search adapter lands in 1.1. - [ ] Create the GitHub tracking issue for the 1.0 initiative; write its number into the PRD frontmatter. -- [ ] Merge PR #8 (reviewed 2026-10-05, approve); Dependabot PR #1 closed as superseded. +- [x] PR #8 merged 2026-10-05; Dependabot PR #1 closed as superseded. +- [x] PR #10 merged and `1.0.0-RC.1` published to Maven Central from `release/1.0` (2026-10-05). - [ ] Upstream: tell qbit-bom that the published parent POM has `${revision}`, which Maven 3.10 rejects (this repo works around it with the wrapper on 3.9.11). ## Before 1.0.0 GA (from the PR #10 review, 2026-10-05) -- 2.54.0 From 3fb7ea0a9ee104bf53e36a3d41741b29156b1478 Mon Sep 17 00:00:00 2001 From: James Maes Date: Tue, 6 Oct 2026 07:24:16 -0500 Subject: [PATCH 2/2] docs: changelog entry, README version and PRD status for 1.0.0-RC.1 Refs #12. --- CHANGELOG.md | 4 ++++ README.md | 6 ++++-- docs/TODO.md | 4 ++-- docs/initiatives/quick-search-1.0.md | 8 ++++---- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32dd987..4905fd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to this project are documented here. The format follows Keep a Changelog; versions follow semantic versioning. +## [1.0.0-RC.1] - 2026-10-05 + +First release candidate of 1.0, published to Maven Central from `release/1.0`. It contains every change listed under 1.0.0 below. Requires QQQ 4.1 (built against 4.1.0-RC.1). Known gaps before GA are tracked in #12. + ## [1.0.0] - Unreleased Requires QQQ 4.1. Closes every blocker of the 2026-10-04 production-readiness audit (`docs/audits/2026-10-04/README.md`). diff --git a/README.md b/README.md index 5e330f3..b8499f8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # QBit: Quick Search -[![Version](https://img.shields.io/badge/version-1.0.0--SNAPSHOT-blue.svg)](https://github.com/QRun-IO/qbit-quick-search) +[![Version](https://img.shields.io/badge/version-1.0.0--RC.1-blue.svg)](https://github.com/QRun-IO/qbit-quick-search) [![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![Java](https://img.shields.io/badge/java-21+-blue.svg)](https://adoptium.net/) @@ -48,10 +48,12 @@ For `AWS_SIGV4` add these optional dependencies to your host (the QBit declares com.kingsrook.qbits qbit-quick-search - 1.0.0 + 1.0.0-RC.1 ``` +`1.0.0-RC.1` is the current release candidate; `1.0.0` follows once host applications have adopted it (#12). + Annotate entity classes: ```java diff --git a/docs/TODO.md b/docs/TODO.md index 6611c58..b0afdee 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -10,12 +10,12 @@ - [ ] Voyage: pin 1.0.0, set `schedulerName`, switch to `opensearchUrl` and `${env.}` credentials. - [ ] CI: add a second test job with `-Dopensearch.test.image=opensearchproject/opensearch:3.9.0` (needs a qqq-orb parameter for extra Maven args, or a plain job). - [ ] Open the qqq issue proposing `RecordSearchProviderInterface` (D1); quick-search adapter lands in 1.1. -- [ ] Create the GitHub tracking issue for the 1.0 initiative; write its number into the PRD frontmatter. +- [x] Tracking issue #12 created and recorded in the PRD (2026-10-06). - [x] PR #8 merged 2026-10-05; Dependabot PR #1 closed as superseded. - [x] PR #10 merged and `1.0.0-RC.1` published to Maven Central from `release/1.0` (2026-10-05). - [ ] Upstream: tell qbit-bom that the published parent POM has `${revision}`, which Maven 3.10 rejects (this repo works around it with the wrapper on 3.9.11). -## Before 1.0.0 GA (from the PR #10 review, 2026-10-05) +## Before 1.0.0 GA (from the PR #10 review, 2026-10-05; filed as #13 to #17 under #12) - [ ] Listener: if the in-transaction re-read in `fetchCurrentRecords` throws, record a `quickSearchFailedEvent` row from the event's primary keys instead of dropping the update (`QuickSearchRecordChangeListener`). - [ ] Full reindex: deletes that arrive during a rebuild are not replayed into the new index; capture them (failed-event or a delete log) and apply after the swap. diff --git a/docs/initiatives/quick-search-1.0.md b/docs/initiatives/quick-search-1.0.md index 3ef70f2..d578e05 100644 --- a/docs/initiatives/quick-search-1.0.md +++ b/docs/initiatives/quick-search-1.0.md @@ -1,8 +1,8 @@ --- -tracker_key: # fill with the GitHub tracking issue once created +tracker_key: "QRun-IO/qbit-quick-search#12" project: qbit-quick-search -status: implemented-pending-release -updated: 2026-10-04 +status: released-rc +updated: 2026-10-06 --- # Initiative: QBit Quick Search 1.0 on QQQ 4.1 @@ -11,7 +11,7 @@ updated: 2026-10-04 ## Status -Implemented on `feature/GH-1-0-release-readiness` (2026-10-04): all six epics are coded and tested (307 unit, 18 integration, coverage gate met). Decisions D1 to D11 were applied with the recommended answers, with two recorded adjustments: D4 (missing `schedulerName` warns rather than fails) and D5 (single-table full reindex uses the reconcile algorithm). Open before tagging 1.0.0: `qbit-build-parent` 2.1.0 re-pin, qqq-all follow-up PR, CI image matrix, qqq core SPI issue (1.1). +`1.0.0-RC.1` was released to Maven Central on 2026-10-05 from `release/1.0`, after the work merged to `develop` in #10 and #8. All six epics are coded and tested (307 unit, 18 integration, coverage gate met). Decisions D1 to D11 were applied with the recommended answers, with two recorded adjustments: D4 (missing `schedulerName` warns rather than fails) and D5 (single-table full reindex uses the reconcile algorithm). Tracking issue: #12. Open before GA: host adoption in qqq-all and Voyage, the review follow-ups #13 to #17, the `qbit-build-parent` 2.1.0 re-pin, the CI image matrix, and the qqq core SPI issue (1.1). ## Executive Summary -- 2.54.0