Repository navigation
Release kariricode/contract 2.9.0 to 2.11.0 - #42
Merged
Merged
Conversation
Additive release over 2.8.6 (ADR-001 to ADR-003). Every 2.8.6 type keeps its name, namespace and signature; BackwardCompatibilityTest compares the public API with a Reflection snapshot of the 2.8.6 dist. Only docblock tags (@Package, @author, @license) left the inherited source. Added - Resilience\CircuitBreaker and Resilience\CallNotPermittedException, implemented by kariricode/circuit-breaker 4.0.0. - Environment\EnvironmentResolver, Configuration\ValueProcessor and Configuration\ConfigProvider (Configurator ADR-007), without the Interface suffix. - Suites inherited, unit, compatibility and conformance; PHPStan level max and Psalm with baselines limited to inherited files; PER-CS 2.0 for new code. - README, CHANGELOG, docs index, ADR-001 to ADR-003, SPEC-001 and QD-V40-COMPLIANCE. Changed - Requires PHP ^8.4 (interface properties); projects on PHP 8.3 keep resolving 2.8.x. Removed - Inherited tooling: .docker, .github, .vscode, Makefile, docker-compose.yml, .env.example, phpinsights.php, phpcs.xml, .php-cs-fixer.php, phpunit.xml, composer.lock and README.pt-br.md. Tree identical to kariricode-contract-2.9.0.tar.gz (sha256 86b11923ea913650a8c4a3e877be4c734057ace9b40d0e434ba985f1b2946217). Co-authored-by: Walmir Silva <142913591+walmir-silva@users.noreply.github.com>
Resilience ports for the processor pipeline and the other consumers (ADR-004). Additive: the 2.8.6 and 2.9.0 APIs are unchanged. Added - Resilience\RateLimiter and Resilience\RateLimitDecision, with the signatures kariricode/rate-limiter 4.0.0 implements. - Resilience\CallPermit and Resilience\ManualCircuitBreaker (extends CircuitBreaker): acquire a permit, settle it once, or release it. - Resilience\RetryPolicy: whether to retry and how long to wait. - The 2.9.0 API snapshot, unit fixtures for each port, and conformance checks for the documentation criteria and synchronous signatures. - psalm-strict.xml: Psalm error level 1 over the source added since 2.9.0, part of composer check. Tree identical to kariricode-contract-2.10.0.tar.gz (sha256 7197a54377da3aaee7d3c0f82f01ff0686e312cf08a8bd099ac6d9c39bc6cbb4). Co-authored-by: Walmir Silva <142913591+walmir-silva@users.noreply.github.com>
Documentation and conformance only; the API is unchanged and BackwardCompatibilityTest now also guards the 2.10.0 API. - ADR-004 amended: the default RetryPolicy becomes an adapter in kariricode/async-helper (since renamed kariricode/async-primitives); Async's CircuitBreakerBridge is a ManualCircuitBreaker consumer; the rate-limiter codes are RL-8300 to RL-8399. - The five resilience ports document their side effects (criterion C3, Spec V4.3.3 section 17); conformance checks criteria C2 to C5. - composer.json declares extra.asvs next to extra.arfa (gate G4). - ADR-005 proposed for 2.11.0. Tree identical to kariricode-contract-2.10.1.tar.gz (sha256 f70bc53054c28e985e0b6fd4cc21eb9f6e7b4df45e12f8a5c543d169185bf6ed). Co-authored-by: Walmir Silva <142913591+walmir-silva@users.noreply.github.com>
Cross-cutting contracts required by Spec V4.3.3 (ADR-005) and a verifiable supply chain (ADR-006). Additive: BackwardCompatibilityTest checks the 2.8.6, 2.9.0 and 2.10.0 APIs and accepts an added supertype only when it brings no member. Added - Exception\ExceptionInterface and six member-free families: Validation, NotFound, Configuration, Protocol, ContainerFailure and Runtime. - DI\ServiceProvider and DI\BindableContainer. - Security\Identity, Context\ContextStorage and SerializableData. - Committed composer.lock, composer security (composer audit --locked), composer sbom (CycloneDX 1.5) and .github/workflows/ci.yml with actions pinned by commit SHA. Changed - Resilience\CallNotPermittedException extends Exception\Runtime. Deprecated - DI\Provider, DI\Container, DI\Definition and DI\Compiler, for removal in 3.0.0; use DI\ServiceProvider with DI\BindableContainer. Tree identical to kariricode-contract-2.11.0.tar.gz (sha256 8d704cd57716f8079cbc672750d1782e3fc9b00fa1da6f082f09a704ebddf16e). Co-authored-by: Walmir Silva <142913591+walmir-silva@users.noreply.github.com>
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.
Four release commits on top of
v2.8.6(3593541), one per release. Every commit's tree is byte-identical to the release tarball verified when it was cut, and no type of an earlier release loses or changes a member (BackwardCompatibilityTestcompares Reflection snapshots of 2.8.6, 2.9.0 and 2.10.0).c4682f2CircuitBreaker,CallNotPermittedException,EnvironmentResolver,ValueProcessor,ConfigProvider; PHP ^8.4; inherited tooling removed (ADR-001 to ADR-003)86b11923…294621774e3b89RateLimiter,RateLimitDecision,CallPermit,ManualCircuitBreaker,RetryPolicy(ADR-004)7197a543…6cbb400190fbextra.asvsf70bc530…5bf6ed62dea5bServiceProvider+BindableContainer,Identity,ContextStorage,SerializableData; DI deprecations; lock file, SBOM and CI (ADR-005, ADR-006)8d704cd5…ebddf16eVerification before the push
composer audit --lockedon the 2.11.0 lock today: no advisories. The 21 advisories behind the current Dependabot alerts come from the 2.8.6 development lock, which 2.9.0 removes..github/workflows/ci.ymlon GitHub (QD-V40-COMPLIANCE §1).Merging and tags
mainkeeps the SHAs above; "Rebase and merge" rewrites them.git tag -s) come after the merge; tagging onlyv2.11.0is also valid, since^2.9and^2.10accept it.Found after 2.11.0 was cut (no API change)
Conventions the other V4.3.3 components adopted after this release; worth settling before the
v2.11.0tag:extra.kariricode.{arfa, asvs, spec}(Spec V4.3.3 §4, E-044) instead of the V4.0 top-levelextra.arfaandextra.asvs.@PER-CS3x0, the closest set to the PER-CS 3.1 that E-045 and E-046 require, instead of@PER-CS2.0.kariricode/async-helperwas renamedkariricode/async-primitives, and itsRetry\BackoffRetryPolicyalready implementsRetryPolicy; README, SPEC-001, ADR-004 and the QD still describe it as planned.QD-V433-COMPLIANCE.md), and the readonly-hooks erratum cited as E-040.Generated by Claude Code