Skip to content

Release 8.0.0 GA - #3

Merged
ykan821 merged 6 commits into
masterfrom
dev
Jun 30, 2026
Merged

Release 8.0.0 GA#3
ykan821 merged 6 commits into
masterfrom
dev

Conversation

@ykan821

@ykan821 ykan821 commented Jun 30, 2026

Copy link
Copy Markdown
Owner

Summary

First stable release. Promotes 8.0.0 out of beta and freezes the public API: public method parameter names are part of the API (named arguments are supported) and
will not change in 8.x patch/minor releases.

Merges all dev commits since 8.0.0-beta.5 into master and publishes 8.0.0.

Commits in this PR

  • docs(changelog): 8.0.0 — the GA entry + API-freeze declaration
  • fix(index): widen Doc::refresh to bool, fix swapAlias doc, cover bulk/scroll paths
    • Doc::refresh() accepts bool (true/false) alongside string ('wait_for'), matching ES refresh. The old string-only type rejected refresh(true) with
      a TypeError despite the PHPDoc advertising true/false.
    • Docs: swapAlias($alias, $fromIndex) in EN/ZH cheat sheets (was $target — named-arg form would fatal).
    • Tests: Bulk::flush() default-error throw (no onError handler), strengthened scroll() (exact hit count + explicit clear()), added scroll -> next -> clear,
      locked refresh(bool) against regression.
  • test(dsl): add Span/Shape integration contracts
  • test(index): cover Rebuild import/swap failure cleanup
  • docs: drop the long-lived processes section
  • chore: drop phpmd and stop tracking CLAUDE.md

Verification

All gates green locally (Docker, ES 8.15):

  • PHPStan (level 6): 0 errors
  • Unit: 298 tests
  • Integration: 99 tests
  • PHP-CS-Fixer: clean

CI runs the same suite across PHP 8.1/8.2/8.3 + integration on ES 8.17.

ykan821 and others added 6 commits June 28, 2026 21:54
- Remove phpmd: overlaps PHPStan/CS-Fixer, lenient thresholds, mostly
  excluded rules — low value. Drop phpmd/phpmd, phpmd.xml, the pre-push
  checklist step, and the five @SuppressWarnings(PHPMD.*) annotations.
- Untrack CLAUDE.md (local AI-tooling config): gitignore it and remove
  from the repo; the file is kept locally.

Co-Authored-By: Claude <noreply@anthropic.com>
Add two integration tests asserting the orphaned new backing index is
deleted when rebuild fails:
- import source throws mid-import
- alias swap fails because the name is a real index (not an alias)

These exercise the two try/catch cleanup paths in Rebuild::doRun() that
had no coverage.

Co-Authored-By: Claude <noreply@anthropic.com>
Close the gap flagged before a stable release: Span and Shape queries had
only unit DSL tests, which can't catch a self-consistent-but-wrong shape
(the SpanTerm {term} bug was exactly that — its unit test asserted the
wrong key and passed).

- SpanContractTest: span_term / span_near / span_or against the shared
  seeded index's content field.
- ShapeContractTest: the cartesian `shape` query needs a `shape`-typed
  field, so each test builds a dedicated index with two disjoint envelopes
  and exercises INTERSECTS / DISJOINT.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…/scroll paths

- Doc::refresh() accepts bool (true/false) alongside string ('wait_for'),
  matching ES refresh; the string-only type rejected refresh(true) despite
  the PHPDoc advertising true/false.
- docs: swapAlias($alias, $fromIndex) in EN/ZH cheat sheets (was $target;
  named-arg form would fatal).
- tests: cover Bulk::flush() default-error throw, strengthen scroll (exact
  count + clear) and add scroll->next->clear, lock refresh(bool).

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@ykan821
ykan821 merged commit 0ca3d37 into master Jun 30, 2026
5 checks passed
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.

1 participant