feat(transaction): transaction savepoint orchestration integration - #23
Merged
Merged
Conversation
* feat(transaction): add savepoint transaction runner * fix(transaction): tighten savepoint cleanup semantics
* test(transaction): verify savepoints on MySQL * ci: verify transaction savepoint table residue
* docs: Finalize transaction savepoint orchestration implementation * Update and finalize docs regarding SavepointTransactionRunnerInterface * Generate ADR 0003 for transaction savepoint orchestration * Update package reference, README, and CHANGELOG * Add a verification report on local testing * Ensure all tests, PHPStan max, and php-cs-fixer pass * Unrelated fixes left untouched Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * docs: clarify transaction runner distinctions and ADR metadata * Clarify that PdoTransactionRunner and PdoSavepointTransactionRunner are both permanent, public, supported options, and neither replaces the other. * Ensure wording regarding operation-local savepoint orchestration strictly notes that it "does not commit or fully roll back the caller-owned transaction, and the outer transaction remains active." * Add standard metadata (Status, Decision date, Runtime status, Implementation authorization, Related contract) to ADR 0003. * Align verification report with the precise MySQL 8.4 boundary and explicitly mention MySQL residue verification, removing unverified data points. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
* Prepare v1.4.0 release Updates CHANGELOG.md for the new release, updates the transaction savepoint ADR and its index to show Implemented for v1.4.0. No runtime changes. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * Clean up release documentation and migrate domain - Deletes transient phase artifacts. - Adds canonical `PDO_TRANSACTION_ARCHITECTURE.md`. - Synchronizes ADR #3 and its index to point to the new architecture document. - Updates README and Package Reference to link to the new architecture doc. - Performs repository-wide string replacement from `maatify.com` to `maatify.dev`. - Retains existing v1.4.0 preparation state. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * Fix documentation missing items and failure precedence semantics - Adds missing SavepointTransactionRunnerInterface and PdoSavepointTransactionRunner to the public API inventory in PERSISTENCE_PACKAGE_REFERENCE.md. - Corrects PDO_TRANSACTION_ARCHITECTURE.md to detail exact failure precedence for Savepoints, rather than a broad claim that callbacks always return. - Confirms zero stale phase artifacts, `maatify.com` domains, and "pending release" verbiage remain. - Updates metadata preparation description for the PR. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * Update README to accurately reflect both transaction runners This commit ensures the README represents both v1.3.0 and v1.4.0 capabilities symmetrically without duplicating low-level details. It updates Key Features, the Transaction Usage section, and the Critical Runtime Behavior section to include PdoSavepointTransactionRunner. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * Correct PdoSavepointTransactionRunner cleanup wording in README Updates the Critical Runtime Behavior section to accurately reflect that savepoint cleanup can fail, clarifying the exact return value and best-effort rollback semantics without duplicating full architectural details. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * Refine PdoSavepointTransactionRunner fallback wording in README In the transaction usage selection section, this corrects the fallback wording to clarify that it attempts best-effort rollback without fully terminating the caller-owned transaction. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
* chore: adopt pinned standards and close compliance gaps * fix: type consumer harness process pipes * chore: finalize release-facing compliance wording (#29)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
النطاق النهائي
هذا هو Integration Draft النهائي لإصدار
v1.4.0منmaatify/persistence.يدمج العمل المكتمل التالي:
v1.4.0وإزالة transient phase artifacts وتوحيدmaatify.dev.Maatify/php-engineering-standardsوإغلاق فجوات Composer/CI/Testing/Presentation/Schema وConsumer Verification Harness.Runtime contract
TransactionRunnerInterfaceلم يتغير.PdoTransactionRunnerيظل Public / Supported / Not Deprecated وسلوكه المنشور في v1.3.0 لم يتغير.SavepointTransactionRunnerInterfaceإضافة جديدة تمتد منTransactionRunnerInterface.PdoSavepointTransactionRunnerيوفّر operation-local savepoint isolation داخل caller-owned transactions ويحافظ على normal owned transaction behavior عند عدم وجود transaction نشطة.TransactionExecutionExceptionيغطي package-detected non-throwing transaction-control failures.Standards adoption
الـAdoption مثبت حصريًا على:
Maatify/php-engineering-standards@44c8827095ab4007c355aa21c56b853f3b49d795Active Profiles على Scope
/:composer-packagerepository-governanceجميع ملفات Standards/Profile المحلية تم التحقق منها byte-for-byte مقابل الـpinned upstream commit، بدون mixed-commit adoption.
Release state
v1.4.02026-09-18versionfield.composer.lock.v1.4.0tag أو GitHub Release قبل الدمج.main.Fresh Final Review
Final Draft HEAD:
ea43ed5707c61d00539fac4686bd12336ccb9259Latest
mainreviewed:e5157e8e40044684ba482153d82092a568e2e504النتيجة:
main.main.docs/standards/غير موجود بعد selective adoption migration.v1.4.0.Final CI evidence
CI run على نفس Final Draft HEAD انتهى
success، ويشمل:Final Review: PASS — Ready for owner-controlled Squash Merge to
main, followed immediately by publishingv1.4.0.