Skip to content

v3.3

Choose a tag to compare

@njoubert-cleverage njoubert-cleverage released this 21 Oct 13:00
· 25 commits to main since this release

Changes

  • Require cleverage/process-bundle ^5.4.
  • Please follow UPGRADE.md v3.3
  • #73 Document that a client, shared, keeps its state between two process executions in a long-running worker: a base URI changed with setUri() is not reset.
  • #71 The configuration key of the bundle (its extension alias) is cleverage_rest_process, instead of clever_age_rest_process (no option could be configured there). Configuring a key under cleverage_rest_process is deprecated: the bundle has no configuration and the keys were ignored without notice (new internal Configuration, empty; notice when the container is compiled). They will be rejected in 4.0. Update documentation, add tests.
  • #69 The bundle throws exceptions implementing ProcessExceptionInterface of the process bundle instead of raw SPL exceptions (as cleverage/process-bundle#317): new Exception\UnexpectedValueException, extending the SPL exceptions thrown before (same messages, the existing catch keep working). RestException (and so RestRequestException and MissingClientException) implements ProcessExceptionInterface; RequestTask throws a RestRequestException instead of a raw \Exception for an invalid response code (same message). Add tests.
  • #67 Composer: require PHP ^8.2 instead of >=8.2 (PHP 9 is no longer accepted before being tested), remove the authorization of the symfony/flex plugin, which is not required (the CI installs it globally), as cleverage/process-bundle#319.
  • #62 Define the public API (Symfony BC promise, as cleverage/process-bundle#279): RequestTask, ClientRegistry and CleverAgeRestProcessBundle are marked @final since 3.3, they will be final in 4.0: extending them triggers a deprecation with the Symfony DebugClassLoader. Client (extended by the applications) and the exceptions stay open. CleverAgeRestProcessExtension and RegisterClientsPass are marked @internal.
  • #61 CleverAgeRestProcessExtension::findServices() loads the service definition files with a glob pattern instead of a Finder (same files, as cleverage/process-bundle#271), symfony/finder is no longer required. Add tests.
  • #58 ClientRegistry: the clients are loaded lazily from a service locator indexed by code: a client is only instantiated when a task uses it (an error in a client that a process does not use no longer makes it fail). The code is given by the new code attribute of the cleverage.rest.client tag, or by the new #[AsRestClient(code: '...')] attribute (autoconfiguration); it must be the one returned by getCode(). Duplicate or empty codes fail the container compilation. A client tagged without code is still registered eagerly, with ClientRegistry::addClient(), which is deprecated (the code will be required in 4.0). New optional ClientRegistry constructor argument (the locator); ClientRegistry is autowirable by its class name. Require symfony/service-contracts. Update documentation, add tests.
  • #56 Require symfony/polyfill-php83, symfony/polyfill-php84 and symfony/polyfill-php85 (cleverage/process-bundle#299): the functions of PHP 8.3 to 8.5 can be used while supporting PHP 8.2. Rector targets PHP 8.2 (withPhpVersion(), withPhpSets() read from composer.json) and applies the rules using a newer function when its polyfill is required (no change needed in the current code).
  • #52 Give a code to the task (cleverage/process-bundle#91): rest_request (task: rest_request, with cleverage/process-bundle 5.4 or later, referencing it by service being deprecated there). The task has its class name as service id; fetching it directly from the service container is deprecated (container.private), it will be private in 4.0. The former id cleverage_rest_process.task.request is a deprecated alias, removed in 4.0. Update documentation, add tests.
  • #50 CI: test the lowest versions allowed by composer.json (--prefer-lowest, PHP 8.2). Raise psr/log to ^2 || ^3: cleverage/process-bundle loggers and the test loggers use the typed log() signature, a fatal error with psr/log 1.
  • #48 Client::geUri() (deprecated since v3.2, use getUri()) triggers a deprecation at runtime with trigger_deprecation() (symfony/deprecation-contracts, now required). Add tests.
  • #46 Add a .gitattributes: the development files (.docker/, .github/, tests/, quality tools and PHPUnit configurations, Makefile) are no longer part of the archive installed by Composer (dist).
  • #44 Require psr/log, used directly by Client and RequestTask but only installed through cleverage/process-bundle.