Skip to content

Commit 79d31e1

Browse files
committed
Merge 4.3
2 parents 61c6dee + a149397 commit 79d31e1

58 files changed

Lines changed: 1237 additions & 945 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 36 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,18 @@ name: CI
22

33
on:
44
push:
5+
branches:
6+
- main
7+
- '[0-9]+.[0-9]+'
8+
paths-ignore:
9+
- '**.md'
10+
- '**.rst'
11+
- 'docs/**'
512
pull_request:
13+
paths-ignore:
14+
- '**.md'
15+
- '**.rst'
16+
- 'docs/**'
617

718
concurrency:
819
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
@@ -235,15 +246,8 @@ jobs:
235246
timeout-minutes: 20
236247
strategy:
237248
matrix:
238-
php:
239-
- '8.2'
240-
- '8.3'
241-
- '8.4'
242-
- '8.5'
249+
php: ${{ fromJSON(github.event_name == 'pull_request' && '["8.2","8.5"]' || '["8.2","8.3","8.4","8.5"]') }}
243250
include:
244-
- php: '8.2'
245-
- php: '8.3'
246-
- php: '8.4'
247251
- php: '8.5'
248252
coverage: true
249253
fail-fast: false
@@ -311,16 +315,7 @@ jobs:
311315
timeout-minutes: 20
312316
strategy:
313317
matrix:
314-
php:
315-
- version: '8.2'
316-
- version: '8.3'
317-
- version: '8.4'
318-
- version: '8.5'
319-
coverage: true
320-
- version: '8.5'
321-
lowest: true
322-
- version: '8.5'
323-
minimal-changes: true
318+
php: ${{ fromJSON(github.event_name == 'pull_request' && '[{"version":"8.2"},{"version":"8.5","coverage":true},{"version":"8.5","lowest":true},{"version":"8.5","minimal-changes":true}]' || '[{"version":"8.2"},{"version":"8.3"},{"version":"8.4"},{"version":"8.5","coverage":true},{"version":"8.5","lowest":true},{"version":"8.5","minimal-changes":true}]') }}
324319
component:
325320
- api-platform/doctrine-common
326321
- api-platform/doctrine-orm
@@ -459,21 +454,20 @@ jobs:
459454
./vendor/bin/phpunit --fail-on-deprecation --display-deprecations --log-junit "/tmp/build/logs/phpunit/junit.xml"
460455
461456
behat:
462-
name: Behat (PHP ${{ matrix.php }})
457+
name: Behat (PHP ${{ matrix.php }} ${{ matrix.shard }})
463458
runs-on: ubuntu-latest
464459
timeout-minutes: 20
465460
strategy:
466461
matrix:
467-
php:
468-
- '8.2'
469-
- '8.3'
470-
- '8.4'
471-
- '8.5'
462+
php: ${{ fromJSON(github.event_name == 'pull_request' && '["8.2","8.5"]' || '["8.2","8.3","8.4","8.5"]') }}
463+
shard:
464+
- main
465+
- ld-api-hal-hydra
466+
- graphql-doctrine
467+
- misc
472468
include:
473-
- php: '8.2'
474-
- php: '8.3'
475-
- php: '8.4'
476469
- php: '8.5'
470+
shard: main
477471
coverage: true
478472
fail-fast: false
479473
steps:
@@ -506,10 +500,20 @@ jobs:
506500
run: composer require phpunit/phpunit:^11.5 --dev --with-all-dependencies
507501
- name: Clear test app cache
508502
run: tests/Fixtures/app/console cache:clear --ansi
509-
- name: Run Behat tests (PHP ${{ matrix.php }})
503+
- name: Resolve shard paths
504+
id: shard
505+
run: |
506+
case "${{ matrix.shard }}" in
507+
main) paths="features/main" ;;
508+
ld-api-hal-hydra) paths="features/jsonld features/jsonapi features/hal features/hydra" ;;
509+
graphql-doctrine) paths="features/graphql features/doctrine" ;;
510+
misc) paths="features/authorization features/filter features/issues features/security features/serializer features/http_cache features/sub_resources features/json features/xml features/push_relations features/mercure" ;;
511+
esac
512+
echo "paths=$paths" >> $GITHUB_OUTPUT
513+
- name: Run Behat tests (PHP ${{ matrix.php }} ${{ matrix.shard }})
510514
run: |
511515
mkdir -p build/logs/behat
512-
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --no-interaction ${{ matrix.coverage && '--profile=default-coverage' || '--profile=default' }}
516+
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --no-interaction ${{ matrix.coverage && '--profile=default-coverage' || '--profile=default' }} ${{ steps.shard.outputs.paths }}
513517
- name: Merge code coverage reports
514518
if: matrix.coverage
515519
run: |
@@ -522,15 +526,15 @@ jobs:
522526
if: always()
523527
uses: actions/upload-artifact@v6
524528
with:
525-
name: behat-logs-php${{ matrix.php }}
529+
name: behat-logs-php${{ matrix.php }}-shard${{ matrix.shard }}
526530
path: build/logs/behat
527531
continue-on-error: true
528532
- name: Upload coverage results to Codecov
529533
if: matrix.coverage
530534
uses: codecov/codecov-action@v5
531535
with:
532536
directory: build/logs/behat
533-
name: behat-php${{ matrix.php }}
537+
name: behat-php${{ matrix.php }}-shard${{ matrix.shard }}
534538
flags: behat
535539
fail_ci_if_error: true
536540
continue-on-error: true
@@ -1406,15 +1410,8 @@ jobs:
14061410
timeout-minutes: 20
14071411
strategy:
14081412
matrix:
1409-
php:
1410-
- '8.2'
1411-
- '8.3'
1412-
- '8.4'
1413-
- '8.5'
1413+
php: ${{ fromJSON(github.event_name == 'pull_request' && '["8.2","8.5"]' || '["8.2","8.3","8.4","8.5"]') }}
14141414
include:
1415-
- php: '8.2'
1416-
- php: '8.3'
1417-
- php: '8.4'
14181415
- php: '8.5'
14191416
coverage: true
14201417
fail-fast: false

.php-cs-fixer.dist.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
'phpdoc_trim_consecutive_blank_line_separation' => true,
110110
'phpdoc_var_annotation_correct_order' => true,
111111
'return_assignment' => true,
112+
'declare_strict_types' => true,
112113
'strict_param' => true,
113114
'visibility_required' => [
114115
'elements' => [

CHANGELOG.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Changelog
22

3+
## v4.3.3
4+
5+
### Bug fixes
6+
7+
* [4ad230247](https://github.com/api-platform/core/commit/4ad23024747d59ea2483bbe693b498a6b08873fc) fix(openapi): default explode to true for form and cookie style param… (#7891)
8+
9+
## v4.3.2
10+
11+
### Bug fixes
12+
13+
* [2d6e47460](https://github.com/api-platform/core/commit/2d6e47460c1d0e4e79fda9cec8783b5277835a3c) fix(openapi)!: oauth scopes with dashes in name (#7853)
14+
* [892c1c796](https://github.com/api-platform/core/commit/892c1c796a1cc5f498f8dd981eb57055c4a49bcf) fix(openapi): uri variable default description (#7884)
15+
* [a0daa07f9](https://github.com/api-platform/core/commit/a0daa07f953fe1930a9e0ce30489ecada501e1f7) fix(openapi): fallback description on summary (#7874)
16+
* [a7072be4a](https://github.com/api-platform/core/commit/a7072be4a461fe5f2205cbf20a3a5baba3f42d0c) fix(metadata): nested filtering only on resource classes (#7864)
17+
* [e14ae87fa](https://github.com/api-platform/core/commit/e14ae87fa31fd1103f715816eb8185a5ca339400) fix(laravel): resolve casts defined via casts() method (#7859)
18+
19+
### Notes
20+
21+
* The fix for oauth scopes with dashes in name (#7853) may change the current OpenAPI description but the risk is low.
22+
323
## v4.3.1
424

525
### Bug fixes
@@ -97,6 +117,25 @@
97117
* **LDP-compliant response headers** (#6917): API responses now include `Allow` and `Accept-Post` headers per the Linked Data Platform specification. These are informational headers that help clients discover API capabilities and should not break existing integrations.
98118
* **Scalar API Reference UI** (#7817): Scalar is now available as an alternative documentation UI alongside Swagger UI. It is enabled by default when TwigBundle is available. Access it via `?ui=scalar`. To disable it, set `enable_scalar: false` in your API Platform configuration.
99119

120+
## v4.2.24
121+
122+
### Bug fixes
123+
124+
* [8cb5a6044](https://github.com/api-platform/core/commit/8cb5a6044b9ccea34a2ba67fb613d40e19560955) fix(state): do not map to input class in ObjectMapperProvider (#7892)
125+
126+
## v4.2.23
127+
128+
### Bug fixes
129+
130+
* [1bddff82f](https://github.com/api-platform/core/commit/1bddff82f7853a253bd257e70525b2b4eea53653) fix(doctrine): inject nameConverter into AbstractFilter via QueryParameter (#7877)
131+
* [5a3a7dc4b](https://github.com/api-platform/core/commit/5a3a7dc4b24060f9a9d9adb2e33a83026ed23154) fix(state): prioritize input class over output in ObjectMapperProvider (#7879)
132+
* [7c562a51f](https://github.com/api-platform/core/commit/7c562a51ff13c6c4626301f4ccaef93f47f57268) fix(laravel): partial patch validation config to replace required with sometimes (#7882)
133+
* [9c2810b08](https://github.com/api-platform/core/commit/9c2810b08767bcaef418c239ce190e88ab4bbf2b) fix(metadata): read operation tags from OpenAPI context in XML (#7865)
134+
* [a1292592e](https://github.com/api-platform/core/commit/a1292592e879ebb5e825cc7821b8d6cfa3cea6c9) fix(doctrine): skip links with no join info when fromClass differs from entityClass (#7878)
135+
* [aefeca529](https://github.com/api-platform/core/commit/aefeca529351f089822d5d427526204fb36a8356) fix(symfony): remove json stream conflicting service (#7867)
136+
* [e447ab1fc](https://github.com/api-platform/core/commit/e447ab1fc4feb5d389224eba364e304ea52ee408) fix(serializer): disable normalizer cache to prevent wrong normalizer in worker mode (#7868) (#7873)
137+
* [fff8213b2](https://github.com/api-platform/core/commit/fff8213b2059aff14b0e165c814357ef79b0c764) fix(serializer): handle nullable constructor params without default value (#7883)
138+
100139
## v4.2.22
101140

102141
### Bug fixes

0 commit comments

Comments
 (0)