Skip to content

Release 4.1.2#39

Merged
turegjorup merged 9 commits into
mainfrom
release/4.1.2
May 11, 2026
Merged

Release 4.1.2#39
turegjorup merged 9 commits into
mainfrom
release/4.1.2

Conversation

@turegjorup
Copy link
Copy Markdown
Collaborator

Summary

Roll up the accumulated [Unreleased] changes since 4.1.1 into a tagged release.

PATCH-level per strict SemVer reading: every change is a bug fix, documentation accuracy correction, or CI/tooling improvement. No new public API; no removed, renamed, or re-typed public API. The runtime behaviour change ($previous chained at five catch sites) is strictly additive — consumers that traverse getPrevious() now see the originating Guzzle/firebase/PSR exception where they previously saw null.

What's in 4.1.2

Fixed

  • Consistent $previous chaining in OpenIdConfigurationProvider catch blocks (validateIdToken, getJwtVerificationKeys, fetchJsonResource ×2, getConfiguration).
  • Broken CI build-status badge in README.md (was pointing at non-existent pr.yaml and stale "Test & Code Style Review" workflow name).

Changed (documentation accuracy)

  • Tightened @throws PHPDoc on validateIdToken, getIdToken, getBaseAuthorizationUrl to enumerate the actual transitive exceptions. Removed the inaccurate @throws ClientExceptionInterface declaration on getIdToken (the body's catch-all wraps it as CodeException with the original chained — that exception never actually escaped this method).

Documentation

  • Documented HTTP timeout / proxy / verify configuration via constructor $options in README.md. Capability already provided by league/oauth2-client; no code change.

Tooling / CI

  • Bumped actions/checkout v5 → v6 across all workflows.
  • Added ci profile to docker-compose matrix services so they don't start during local dev.
  • Fixed test:coverage to run via docker-compose with XDEBUG_MODE=coverage.
  • Fixed test:run to remove stale composer.lock before composer update.
  • Fixed test:matrix:reset to use --profile ci.
  • Removed unused .markdownlint.json.

Backward compatibility

Every existing consumer that compiled and ran against 4.1.1 continues to work against 4.1.2 unchanged. Consumers reading $e->getPrevious() on exceptions thrown from these five catch sites will now see a non-null cause where they previously saw null — strict improvement.

Test plan

  • task lint:markdown — CHANGELOG and README clean
  • task test:coverage — 100% coverage maintained (24/24 methods, 148/148 lines)
  • task analyze:php — PHPStan max, no errors
  • task lint:php — clean
  • CI matrix on PR

🤖 Generated with Claude Code

turegjorup and others added 9 commits March 20, 2026 11:53
Bump actions/checkout to v6, add docker-compose ci profile to keep
matrix services from starting during local development, fix coverage
command to run via docker-compose, and remove stale .markdownlint.json.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Improve CI workflows and local dev tooling
Catch blocks in OpenIdConfigurationProvider (validateIdToken, getJwks,
fetchJsonResource, getConfiguration) now pass the original exception as
`previous` so consumers can walk back to the underlying Guzzle/firebase/PSR
cause via getPrevious(). Previously only getIdToken did this.

Tightened @throws phpdoc on validateIdToken, getIdToken, and
getBaseAuthorizationUrl to enumerate actual transitive exceptions instead
of declaring only the ItkOpenIdConnectException parent. Removed the
inaccurate ClientExceptionInterface declaration on getIdToken — the
catch-all wraps Guzzle exceptions as CodeException with the original
chained.

README adds a section documenting the existing timeout/proxy/verify
support already provided by league/oauth2-client via constructor $options,
plus a short note explaining why the stack uses Guzzle rather than Symfony
HttpClient.

BC-safe: all changes are additive (third constructor arg on the wrapped
exceptions is optional; phpdoc tightening is a stricter declaration of
existing behavior).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts:
#	CHANGELOG.md
Point at the actual `php.yaml` workflow on `develop` instead of the non-existent `pr.yaml` and the stale "Test & Code Style Review" workflow name.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Roll up the [Unreleased] section into 4.1.2 dated 2026-05-11. PATCH-level: all changes are strictly additive (consistent `$previous` chaining across the four `OpenIdConfigurationProvider` catch sites), documentation accuracy fixes on `@throws` PHPDoc for three public methods (the `ClientExceptionInterface` declaration on `getIdToken` was always wrong — the catch-all already wraps it as `CodeException`), README docs for the HTTP transport options that league/oauth2-client already forwards to Guzzle, and CI / Taskfile housekeeping. No new public API, no removed/renamed/re-typed public API, no required behaviour change for existing consumers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@turegjorup turegjorup self-assigned this May 11, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (6aa46d4) to head (2df37c3).

Additional details and impacted files
@@             Coverage Diff             @@
##                main       #39   +/-   ##
===========================================
  Coverage     100.00%   100.00%           
  Complexity        62        62           
===========================================
  Files              1         1           
  Lines            172       172           
===========================================
  Hits             172       172           
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@turegjorup turegjorup merged commit f19b9a3 into main May 11, 2026
16 checks passed
@turegjorup turegjorup deleted the release/4.1.2 branch May 11, 2026 12:03
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