Skip to content

Release 1.4.0 - #79

Open
turegjorup wants to merge 46 commits into
mainfrom
release/1.4.0
Open

turegjorup wants to merge 46 commits into
mainfrom
release/1.4.0

Conversation

@turegjorup

Copy link
Copy Markdown
Contributor

Release 1.4.0: the quarterly update (PR-70 to PR-78).

Changes

  • Move the [Unreleased] entries to ## [1.4.0] - 2026-11-08, and open a new [Unreleased] section.
  • Update the links at the end of the changelog ([Unreleased] → 1.4.0...HEAD, add [1.4.0] from 1.3.0).
  • Remove a blank line between the PR-71 and PR-70 entries.

The release contains:

Why

This is the quarterly update (cybersikkerhedsaftale). main has no commits that are missing in develop, so the release branch needs no merge.

Changes that consumers can see

  • Content type: API responses are application/ld+json without ; charset=utf-8 (API Platform 4.4, chore: update API Platform to 4.4 #76).
  • OpenAPI: the spec is OpenAPI 3.2.0 instead of 3.1.0.
  • Vocabulary.tags: the spec has items: type: string instead of string, null.

After the deploy

  1. Make sure that the server uses the new images (itkdev/php8.5-fpm:alpine, nginx/nginx-unprivileged:alpine).
  2. Make sure that static assets under /api/v2/ load, for example /api/v2/docs. The APP_PATH_PREFIX rewrite is now in .docker/templates/server.d/app-path-prefix.conf.template (chore: update docker compose template and PHP 8.5 #70).
  3. Make sure that https://<domain>/cron-metrics shows the statistics from event-database-imports. This app's metrics router has priority 1 (chore: update docker compose template and PHP 8.5 #70).
  4. Make sure that APP_PROJECT_URI is correct in the server .env.local. The new DEFAULT_URI uses COMPOSE_DOMAIN in the same way (chore: update Symfony Flex recipes #77).
  5. No re-index is necessary. This release does not change the Elasticsearch indices.

Remaining work (not in this release)

  • #[ApiFilter] → #[QueryParameter]: API Platform 4.4 deprecates #[ApiFilter], and API Platform 6.0 removes it. The change needs application code changes in the 7 DTOs and in AbstractProvider::getFilters(). A commented ignore rule in phpstan.dist.neon documents it (chore: add PHPStan deprecation rules #78).
  • Test log output: the tests write expected [error] and [critical] log lines for 401, 404 and 406 responses to stderr. This is not new.
  • Template include: the nginx server.d include line comes from feat: include project nginx config from server.d in templates devops_itkdev-docker#163, which is still open. Until it is merged, a new template:update removes the include line.

Restore the APP_PATH_PREFIX rewrite in nginx and the php-cs-fixer exclusions. Remove the JavaScript and styles workflows, because the project has no assets. Give the cron-metrics router the lowest priority on the server, because the importer uses the same domain.
Rector changes are syntax only: new without parentheses and #[\Override] on overridden properties.
Keep the APP_PATH_PREFIX rewrite in .docker/templates/server.d/, the same as event-database-imports, so template updates do not remove it. The include line matches itk-dev/devops_itkdev-docker#163.
Keep require.php at >=8.3, so that Rector does not apply the PHP 8.5 rules in this PR.
Rector changes are syntax only: new without parentheses and #[\Override] on overridden properties.
…pdate

chore: update docker compose template and PHP 8.5
chore: require PHP 8.5 and apply Rector PHP 8.5 rules
Elasticsearch 8.19.23 is the same version as in event-database-imports. The API does not use RabbitMQ (no messenger or amqp).
Add pb30/phpstan-composer-analysis to report packages used directly but only installed transitively, and add the 10 missing requirements at their installed versions. composer.lock adds only the analysis packages.
chore: update Elasticsearch image and remove unused RabbitMQ
chore: require all directly used packages
Symfony 7.4.23 fixes 18 security advisories. Run with COMPOSER_POLICY_COOLDOWN_PERIOD='4 days', because 7.4.23 is still in the 7-day cooldown and all older 7.4 versions have advisories. Rector and PHPStan stay at their versions; they are updated in a separate PR.
chore: update dependencies in-constraint
Rector 2.8 adds ParamAndEnvAttributeRector and DirnameDirConcatStringToDirectStringPathRector. Both changes are equivalent code. The PHPStan baseline does not change.
chore: update Rector and PHPStan and apply new Rector rules
API Platform 4.4 exports OpenAPI 3.2.0 and no longer adds charset to the application/ld+json content type (api-platform/core#8226). Update the content-type assertions in the tests. Vocabulary.tags has no element type, so the spec now has no item type for it.
API Platform 4.4 does not guess an item type for untyped arrays, so the spec had 'items: {}' and oasdiff reported a breaking change. The tags are keyword strings in Elasticsearch.
Keep the ITK Dev .php-cs-fixer.dist.php. It already excludes config/reference.php, which is the only change in the recipe.
debug:router output is unchanged.
Keep the project api_user_provider.
Do not add the FrankenPHP hot-reload block to templates/base.html.twig. The project uses php-fpm.
PHPStan strict rules do not allow the short ternary from the framework-bundle recipe.
Use the same pattern as APP_PROJECT_URI.
Add phpstan/phpstan-deprecation-rules. Put the 20 #[ApiFilter] deprecations (API Platform 4.4) in the baseline, because the change to #[QueryParameter] needs application code changes. CI now finds new deprecations.
Use an ignoreErrors rule in phpstan.dist.neon instead of baseline entries, so the reason is documented.
chore: add PHPStan deprecation rules
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@6ac841f). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #79   +/-   ##
=======================================
  Coverage        ?   74.39%           
  Complexity      ?      264           
=======================================
  Files           ?       30           
  Lines           ?      738           
  Branches        ?        0           
=======================================
  Hits            ?      549           
  Misses          ?      189           
  Partials        ?        0           
Flag Coverage Δ
unittests 74.39% <100.00%> (?)

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

☔ View full report in Codecov by Harness.
📢 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.

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.

2 participants